← The evidence ledger
Evidence row 29901
Observed , by baseline/1.
- Kind
- listing
- About
- source_record mcp_registry:io.github.NanaGyamfiPrempeh30/k8s-troubleshoot-mcp
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- ea6b074ab6726b5be308ffbcbee2531dfbc8c26531880dde162d7f858270a941
- Leaf
- 0x72d4076dcef774c84ee1e397bd180fbc2968f6ee0df0c7e9a8a03eae161bc1e5
What was observed
{
"endpoints": [
[
"web",
"https://github.com/NanaGyamfiPrempeh30/k8s-troubleshoot-mcp"
]
],
"name": "Kubernetes Troubleshoot",
"owner_address": null,
"raw": {
"_meta": {
"io.modelcontextprotocol.registry/official": {
"isLatest": true,
"publishedAt": "2026-08-24T20:12:54.510649Z",
"status": "active",
"statusChangedAt": "2026-08-24T20:12:54.510649Z",
"updatedAt": "2026-08-24T20:12:54.510649Z"
}
},
"server": {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"description": "Read-only Kubernetes diagnostics: pods, logs, events, workloads, services, PVCs and nodes.",
"name": "io.github.NanaGyamfiPrempeh30/k8s-troubleshoot-mcp",
"packages": [
{
"environmentVariables": [
{
"default": "/kubeconfig",
"description": "Path to the kubeconfig inside the container. Must match the mount destination. There is no fallback to ~/.kube/config and no in-cluster config: a missing, unreadable or malformed file is a startup failure rather than a silent downgrade to an ambient credential.",
"isRequired": true,
"name": "KUBECONFIG"
},
{
"description": "Comma-separated namespaces the server may read, e.g. staging,production. Wildcards (* and all) are rejected at startup, and kube-system and kube-public are stripped even if listed. This is defense-in-depth, not the security boundary — the boundary is the ServiceAccount's RBAC bindings.",
"format": "string",
"isRequired": true,
"name": "ALLOWED_NAMESPACES"
},
{
"default": "INFO",
"description": "DEBUG, INFO, WARNING or ERROR. All logging goes to stderr; stdout carries the JSON-RPC stream exclusively.",
"name": "LOG_LEVEL"
},
{
"default": "30",
"description": "Kubernetes API request timeout. Must be a positive integer.",
"name": "API_TIMEOUT_SECONDS"
},
{
"default": "200",
"description": "Maximum log lines any single get_pod_logs call may return. Must be a positive integer; clamped to a hard ceiling of 1000 with a warning.",
"name": "MAX_LOG_LINES"
}
],
"identifier": "docker.io/yawgyamfiprem32/k8s-troubleshoot-mcp:1.0.0",
"registryType": "oci",
"runtimeArguments": [
{
"description": "Mount the kubeconfig read-only. This server performs no writes of any kind, so a writable mount would grant privilege it has no use for.",
"isRequired": true,
"name": "--mount",
"type": "named",
"value": "type=bind,src={kubeconfig_path},dst=/kubeconfig,readonly",
"variables": {
"kubeconfig_path": {
"description": "Absolute path on the host to a kubeconfig scoped to the diagnostic ServiceAccount. Generate it with scripts/generate-kubeconfig.sh — do not mount an admin kubeconfig. The file must be readable by UID 10001, which the container runs as.",
"format": "filepath",
"isRequired": true
}
}
}
],
"runtimeHint": "docker",
"transport": {
"type": "stdio"
}
}
],
"repository": {
"source": "github",
"url": "https://github.com/NanaGyamfiPrempeh30/k8s-troubleshoot-mcp"
},
"title": "Kubernetes Troubleshoot",
"version": "1.0.0",
"websiteUrl": "https://github.com/NanaGyamfiPrempeh30/k8s-troubleshoot-mcp#readme"
}
},
"source": "mcp_registry",
"summary": "Read-only Kubernetes diagnostics: pods, logs, events, workloads, services, PVCs and nodes."
}What the leaf hashes
{"body":"ea6b074ab6726b5be308ffbcbee2531dfbc8c26531880dde162d7f858270a941","id":29901,"kind":"listing","method":"baseline/1","observed_us":1793025361840628,"prev":null,"subject":"mcp_registry:io.github.NanaGyamfiPrempeh30/k8s-troubleshoot-mcp","subject_kind":"source_record"}Proof
Its day has not closed yet. A day closes ten minutes after midnight UTC; the proof appears here then.