Skip to main content
Glama
aasthapit

ocp-triage-mcp

by aasthapit

ocp-triage-mcp

업스트림 OCP MCP 서버(oc get nodes, get namespaces, describe pods 등을 노출하는 서버)를 오케스트레이션하여 OpenShift 알림을 트리아지하는 MCP 서버입니다. 이 서버는 (트리아지하는 쪽에게는) MCP 서버이자 (OCP MCP의) MCP 클라이언트입니다 — 소비 팀은 업스트림 서버를 직접 다루지 않습니다.

 LLM / agent ──MCP──▶ ocp-triage-mcp ──MCP (Streamable HTTP)──▶ OCP MCP ──▶ cluster
                        │
                        └── runbooks/*.yaml   (one file per alert code)

각 알림 코드는 **런북(runbook)**에 매핑됩니다. 런북은 YAML로 정의된 업스트림 도구 호출 시퀀스입니다. 트리아지는 결정적입니다 — 이 서버 내부에는 LLM이 없습니다 — 따라서 증거 수집은 반복 가능하고, 감사 가능하며, 비용이 저렴합니다. 그 위에 있는 LLM이 증거 번들을 해석합니다.

노출되는 도구

도구

용도

list_runbooks

지원되는 알림 코드, 필수/선택 입력, 단계

triage_alert(alert_code, params)

전체 런북을 실행하고 증거 번들 반환

run_step(alert_code, step_id, params)

런북의 한 단계를 다시 실행

validate_runbooks

모든 런북을 라이브 업스트림 도구 목록과 대조 검증

증거 번들은 단계별 상태(ok / error / skipped / aborted)를 보고하므로 부분 실패가 드러나며, 결코 조용히 넘어가지 않습니다.

패스스루 검색 도구

호출자는 보통 런북 입력을 먼저 찾아야 합니다 — 어떤 클러스터, 네임스페이스, 파드가 존재하는지. TRIAGE_PASSTHROUGH_TOOLS를 업스트림 도구 이름의 쉼표로 구분된 허용 목록으로 설정하세요(fnmatch 패턴 허용):

TRIAGE_PASSTHROUGH_TOOLS=get_clusters,get_namespaces,get_pods,list_*

일치하는 업스트림 도구는 이 서버에 그대로 다시 노출됩니다 — 동일한 이름, 동일한 입력 스키마, 동일한 설명 — 그리고 호출은 OCP MCP로 전달됩니다. 기본적으로 아무것도 통과되지 않으며, 표면은 큐레이션된 상태로 유지됩니다. 도구 목록은 업스트림에서 지연(lazy) 방식으로 가져와 캐시됩니다. validate_runbooks는 이를 새로고침하고 현재 일치하는 이름을 보고합니다.

Related MCP server: OpenShift SRE Copilot

설정

전체 가이드 — 설치, 검증, 다른 팀을 위한 호스팅, 컨테이너 배포, 문제 해결: docs/setup.md

빠른 시작:

pip install -e .

구성은 환경 변수를 통해 이루어집니다:

변수

의미

기본값

OCP_MCP_URL

업스트림 OCP MCP Streamable HTTP 엔드포인트, 예: https://host/mcp

(필수)

OCP_MCP_HEADERS

추가 업스트림 헤더, ;;로 구분: Authorization: Bearer x;;X-Y: z

없음

TRIAGE_PASSTHROUGH_TOOLS

여기에 다시 노출할 업스트림 도구(쉼표로 구분, fnmatch 패턴)

없음

TRIAGE_RUNBOOKS_DIR

런북 YAML 디렉터리

./runbooks

TRIAGE_MCP_TRANSPORT

이 서버의 전송 방식: stdio, streamable-http, sse

stdio

TRIAGE_HTTP_HOST / TRIAGE_HTTP_PORT

HTTP 전송용 수신 주소

127.0.0.1 / 8000

변수는 서버 옆의 .env 파일에도 넣을 수 있습니다(.env.example 복사); 실제 환경 변수가 이를 덮어씁니다.

실행:

ocp-triage-mcp

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"
      }
    }
  }
}

대신 HTTP로 다른 팀에 제공하려면 TRIAGE_MCP_TRANSPORT=streamable-http로 설정하고 일반 웹 서비스처럼 배포하세요.

런북 작성

runbooks/에 알림 코드당 YAML 파일 하나:

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 results

템플릿 규칙:

  • {{name}}는 먼저 params에서, 그다음 단계 id로 이전 단계 결과에서 해석됩니다.

  • 점 표기 경로({{describe_pod.spec.nodeName}})는 단계 결과 내부로 들어갑니다 — 이를 위해서는 업스트림 도구가 JSON(구조화된 콘텐츠 또는 JSON 텍스트 블록)을 반환해야 합니다. 일반 텍스트 출력은 그대로 유지되며 경로로 참조할 수 없습니다.

  • 정확히 하나의 템플릿으로만 이루어진 문자열은 참조된 값의 타입(숫자, 불리언, 객체)을 유지합니다. 혼합 문자열은 텍스트로 치환됩니다.

  • 단계는 순차적으로 실행됩니다. 단계 실패 시 실패한 단계에 continue_on_error: true가 없으면 나머지 런북이 중단됩니다.

예제 런북은 자리 표시자 도구 이름을 사용합니다. OCP_MCP_URL을 실제 서버로 지정한 후 validate_runbooks를 호출하세요 — 업스트림의 실제 도구를 나열하고 업스트림이 노출하지 않는 도구를 참조하는 모든 런북 단계를 표시합니다.

설계 노트

  • 호출마다 새로운 업스트림 연결.triage_alert는 업스트림에 자체 Streamable HTTP 세션을 열고 완료되면 닫습니다. 원격 세션은 유휴 타임아웃/프록시로 끊길 수 있습니다. 실행마다 재연결하면 무시할 수 있는 핸드셰이크 비용으로 모든 트리아지가 자체 완결적이 됩니다.

  • 런북은 호출할 때마다 디스크에서 다시 읽히므로 YAML을 수정하면 서버를 재시작하지 않아도 적용됩니다. 로드 비용이 문제가 된다면 server._load에 mtime 캐싱을 추가하세요.

  • 내부에 LLM 없음. 런북이 언젠가 실행 중 추론이 필요해지면 먼저 when: 조건을 확장해 보세요. 에이전트를 내장하는 것은 최후의 수단입니다.

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    B
    quality
    B
    maintenance
    A 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.
    100
    Apache 2.0
  • A
    license
    B
    quality
    A
    maintenance
    Governed 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.
    39
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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