ocp-triage-mcp
ocp-triage-mcp
Ein MCP-Server, der OpenShift-Alerts triagiert, indem er einen Upstream-OCP-MCP-Server orchestriert (den, der oc get nodes, get namespaces, describe pods usw. bereitstellt). Dieser Server ist sowohl ein MCP-Server (für den, der triagiert) als auch ein MCP-Client (des OCP-MCP) — das nutzende Team greift nie direkt auf den Upstream-Server zu.
LLM / agent ──MCP──▶ ocp-triage-mcp ──MCP (Streamable HTTP)──▶ OCP MCP ──▶ cluster
│
└── runbooks/*.yaml (one file per alert code)Jeder Alert-Code ist einem Runbook zugeordnet: einer in YAML definierten Sequenz von Upstream-Tool-Aufrufen. Die Triage ist deterministisch — kein LLM in diesem Server — daher ist die Beweissammlung wiederholbar, auditierbar und kostengünstig. Das darüberliegende LLM interpretiert das Beweisbündel.
Verfügbare Tools
Tool | Zweck |
| Unterstützte Alert-Codes, erforderliche/optionale Eingaben, Schritte |
| Führt das vollständige Runbook aus und liefert das Beweisbündel |
| Führt einen einzelnen Schritt eines Runbooks erneut aus |
| Prüft alle Runbooks gegen die aktuelle Upstream-Tool-Liste |
Das Beweisbündel meldet den Status pro Schritt (ok / error / skipped / aborted), sodass Teilfehler sichtbar sind, nie stillschweigend.
Passthrough-Ermittlungstools
Aufrufer müssen normalerweise zuerst die Runbook-Eingaben finden — welche Cluster, Namespaces und Pods existieren. Setzen Sie TRIAGE_PASSTHROUGH_TOOLS auf eine kommaseparierte Allowlist von Upstream-Toolnamen (fnmatch-Muster erlaubt):
TRIAGE_PASSTHROUGH_TOOLS=get_clusters,get_namespaces,get_pods,list_*Passende Upstream-Tools werden auf diesem Server unverändert erneut bereitgestellt — gleicher Name, gleiches Eingabeschema, gleiche Beschreibung — und Aufrufe werden an das OCP-MCP weitergeleitet. Standardmäßig wird nichts durchgereicht; die Oberfläche bleibt kuratiert. Die Toolliste wird bei Bedarf (lazy) vom Upstream abgerufen und zwischengespeichert; validate_runbooks aktualisiert sie und meldet, welche Namen aktuell übereinstimmen.
Related MCP server: OpenShift SRE Copilot
Einrichtung
Vollständige Anleitung — Installation, Verifizierung, Hosting für ein anderes Team, Containerbereitstellung, Fehlerbehebung: docs/setup.md
Schnellstart:
pip install -e .Die Konfiguration erfolgt über Umgebungsvariablen:
Variable | Bedeutung | Standard |
| Upstream-OCP-MCP-Streamable-HTTP-Endpunkt, z. B. | (erforderlich) |
| Zusätzliche Upstream-Header, | keine |
| Upstream-Tools, die hier erneut bereitgestellt werden (kommasepariert, fnmatch-Muster) | keine |
| Verzeichnis der Runbook-YAMLs |
|
| Transport dieses Servers: |
|
| Bindeadresse für die HTTP-Transporte |
|
Variablen können auch in einer .env-Datei neben dem Server liegen (kopieren Sie .env.example); echte Umgebungsvariablen haben Vorrang.
Ausführen:
ocp-triage-mcpRegistrierung in Claude Code (stdio):
{
"mcpServers": {
"ocp-triage": {
"command": "ocp-triage-mcp",
"env": {
"OCP_MCP_URL": "https://ocp-mcp.example.com/mcp",
"OCP_MCP_HEADERS": "Authorization: Bearer <token>",
"TRIAGE_RUNBOOKS_DIR": "C:/GIT/mcp-runbook/runbooks"
}
}
}
}Um sie stattdessen einem anderen Team über HTTP bereitzustellen, setzen Sie TRIAGE_MCP_TRANSPORT=streamable-http und stellen Sie sie wie jeden Webservice bereit.
Runbooks schreiben
Eine YAML-Datei pro Alert-Code in runbooks/:
alert: KubePodCrashLooping # the alert code callers pass to triage_alert
description: What this runbook collects and why.
inputs:
required: [namespace, pod] # must be present in params
optional: [cluster]
steps:
- id: describe_pod # unique id; defaults to the tool name
tool: describe_pod # tool name ON THE UPSTREAM OCP MCP
args:
namespace: "{{namespace}}" # template from params...
pod: "{{pod}}"
- id: node_status
tool: describe_node
when: "{{describe_pod.spec.nodeName}}" # skip unless resolvable & truthy
continue_on_error: true # don't abort the runbook on failure
args:
node: "{{describe_pod.spec.nodeName}}" # ...or from earlier step resultsTemplating-Regeln:
{{name}}wird zuerst überparamsaufgelöst, dann über frühere Schrittergebnisse anhand der Schritt-ID.Gepunktete Pfade (
{{describe_pod.spec.nodeName}}) navigieren in das Ergebnis eines Schritts — das erfordert, dass das Upstream-Tool JSON zurückgibt (strukturierten Inhalt oder einen JSON-Textblock). Reine Textausgabe wird wörtlich beibehalten und kann nicht per Pfad referenziert werden.Eine Zeichenkette, die genau aus einem Template besteht, behält den Typ des referenzierten Werts bei (Zahlen, Booleans, Objekte); gemischte Zeichenketten werden als Text ersetzt.
Schritte laufen sequenziell. Schlägt ein Schritt fehl, wird der Rest des Runbooks abgebrochen, es sei denn, der fehlgeschlagene Schritt hat
continue_on_error: true.
Die Beispiel-Runbooks verwenden Platzhalter-Toolnamen. Nachdem Sie OCP_MCP_URL auf Ihren echten Server gerichtet haben, rufen Sie validate_runbooks auf — es listet die tatsächlichen Tools des Upstreams auf und markiert jeden Runbook-Schritt, der auf ein Tool verweist, das der Upstream nicht bereitstellt.
Designhinweise
Neue Upstream-Verbindung pro Aufruf. Jedes
triage_alertöffnet eine eigene Streamable-HTTP-Sitzung zum Upstream und schließt sie nach Abschluss. Remote-Sitzungen werden durch Idle-Timeouts/Proxys verworfen; die Wiederverbindung pro Lauf macht jede Triage in sich abgeschlossen — und das zu vernachlässigbaren Handshake-Kosten.Runbooks werden bei jedem Aufruf neu von der Festplatte gelesen, sodass eine Änderung an einem YAML ohne Neustart des Servers wirksam wird. Falls die Ladekosten jemals eine Rolle spielen, fügen Sie mtime-Caching in
server._loadhinzu.Kein LLM im Inneren. Sollte ein Runbook eines Tages eine Entscheidungsfindung während der Ausführung benötigen, versuchen Sie zuerst, die
when:-Bedingungen zu erweitern; das Einbetten eines Agenten ist die letzte Option.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to investigate backend incidents by executing runbooks that gather evidence from observability and storage systems.59MIT
- FlicenseAqualityDmaintenanceAI-powered MCP server for enterprise OpenShift/Kubernetes cluster management, providing diagnostic tools, RAG knowledge retrieval, and autonomous remediation recommendations.9
- AlicenseBqualityBmaintenanceA comprehensive Model Context Protocol (MCP) server that exposes 216 tools, 7 resources, and 10 runbook prompts for every OpenShift 4 cluster operation an SRE, developer, or operator could need — all driven by an LLM.100Apache 2.0
- AlicenseBqualityAmaintenanceGoverned Prometheus + Grafana operations — firing-alert and scrape-target RCA, alert noise/flapping analysis, silences, and dashboards, with unbypassable audit logging (MCP + CLI), budget/runaway guards, dry-run, and undo/rollback.39MIT
Related MCP Connectors
Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Remote MCP for A2A failure replay MCP, structured receipts, audit logs, and reviewer-ready evidence.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/aasthapit/mcp-runbook'
If you have feedback or need assistance with the MCP directory API, please join our Discord server