oncall-router-mcp
oncall-router-mcp
인시던트가 발생했을 때 첫 10분을 삼키는 세 가지 질문에 답하는 MCP 서버입니다: 이건 누가 소유하지, 누구를 깨우고 언제까지 해야 하지, 런북은 무엇부터 하라고 하지. 그리고 대부분 도구들이 틀리는 네 번째 질문: 지금 시계(clock)의 알맞은 위치에 있어야 하는가 — 누군가 티켓을 연 때가 아니리고, 장애가 시작된 시점부터 측정한입니다.
런타임 의존성이 없다임 API 키도, 네트워크 호출도, 텰레메트리도 없습니다. 로컬 파일 단 하나를 읽습니다. pytest는 게이트(gates)를 실헹할 때만 필요합니다.
만든 이유
에스컬레이션 지식은 세 곳에 흐어져 있다: 아무도 갱선하지 않은 위키, 현커 당번만 아는 로테이션 프로그, 그리고 가장 오래 함의 한 사木의 느. 오전 두This 시에 고가한 시간은 문제를 고치 데가 아니다 무엇을 도해서 구출할 get whole자를 정리 with unknown자 총재를 wasted.
이 프로젝트는 그 지식을 어**시스턴도 travel할 수 있는 곳에 두고, 타이밍을 명시적인 것으로 만든다. 코드 안에 담긴 설게 의견은, 에스컬레이션 타이밍은 impact 시각 시작을 기준으로 흐른다는 것. 20분 뒤에 열린 티켓은 response to the report냋 minutes extra 지각 무엇을 더 many 일. But a tool that measure from ticket opening: might that quietly be told in a later tarde.
실용시키기 전의 대답 단, 제일 큰 수순이다.
Related MCP server: runframe-mcp-server
네 가지 도구
tool | 대답하는 것 | 대답할 수 없을 때 |
| 어떤 팀이 서비스를 소유하고, 지금 그 팀에 어떻게 연락한다 | 그렇다고 말하고, 정답이 아니라 근접 일치를 후보로만 안내한다 |
| 누구를, 어떤 순서로, 각 단계(hop)가 예정된 분(or time)과 함께 깨울 것인인지 | 알 수 없는 severity를 “조용한” 기본 값으로 지정하지 않고 거부한다 |
| 런북이 무엇먼저 확인하라고 하는지 | 서비스의 일반 단계로 폴백하고, 호출자가 그 사실을 알 수 있도록 |
| 지금 어느 단계(hop)가 활동하고 있어야 하고, 무엇이 오버되고 있는지 | 명시적인 |
모든 도구는 안전한 쪽으로 닫히고(fail) closed), 근접 일치는 그 자체가 정답인 것처럼 조용히 처리되지 않다. 확직한 데 근응할 것은 정직한 “모르겠다”보다 비용이 크기 때문 않습니다.
docs/TRANSCRIPT.md에서 모든 도구의 실제 출력(실패 경로 포함)을 확인할 수 있다. CI 이 파일을 재생성하고, 단단한 출력이 _실제 코드 출력_과 어긋나면 빌드를 실패를 시킨다.
실행하는 법
git clone <this repo> && cd oncall-router-mcp
python -m pip install "pytest>=7" # the only dependency, and only to run the tests
python -m pytest tests/ -q # 40 tests
PYTHONPATH=src python -m oncall_router.server --catalog catalog.tomlClaude Desktop 또는 Claude Code에 연결하려면 MCP 클라이언트 설정에 이걸 추가하자, 절대 경로를 사용해서:
{
"mcpServers": {
"oncall-router": {
"command": "python",
"args": ["-m", "oncall_router.server", "--catalog", "/abs/path/to/catalog.toml"],
"env": { "PYTHONPATH": "/abs/path/to/oncall-router-mcp/src" }
}
}
}MCP 클라이언트가 그 명령(서버)을 가리키게 하자. 자신의 데이터를 쓰려면 catalog.toml을 복사해 수정한를 수정한 후, --catalog yours.toml를 넘기면 된다. 코드 변경은 필요 없다. catalog는 데이터이고, 어떤 도구를 같은 클라이언트를 두 개의 서로 다른 catalog에 대해 실행하는 테스트가 이 사실을 보여 준다.
catalog
하나의 TOM 파일이 파일이 아닌: 서비스, 각 서비스를만 소유하는 팀, 각 시간이 예약된 escalation chains, 그리고 증상별 런북 단계를 저장한다. YAML쪽 TOM을 하는 선택한 이유는 tomllib이 Python 표준 라이브러리에 포합되어 있기 때문에 catalog가 이 프로젝트에 의종성 비용이 발생하지 않는 것이다.
별명(alias)은 보이는 것보다 더 중요하다. incidencing 중에는 사람들이 기억하는 이름을 그대로 입력합니다. 그래서 gateway, apigw, edge, the gateway도 모두 api-gateway로 귀결된다.
의도적으로 하지 않는 일
No live integrations. incident tool과 rotation tool, monitoring을 읽하지 않습니다. 그런 것은 고객 각기씩우의 결정이며, 경고 boundary 뒤에 속한 일이다.
No write actions. 성행에 전화하기(펴이징), see/any open도 이나 상태 변경지 never full. 그냥 questions and 인간 answer.
동봉된 catalog는 가공이다.
catalog.toml에 있는 need-serving, 팀, 그리고 손들. 테스트는 repo internal if ex-identify가 될 만한 ex-capability appears in Repo을 포함하는 경우 빌드를 실패시킨다.타이밍 모델은 관용이지 표oper되지 종참. impact가 시작된 때부터의 누etadata minutes, 에스컬레이션 체인 두 phase/를 기 다른 팀으로 넘는 시점에도 carry forward. 합리적인 선택이, 합리적인 선택이 유일한 것은 아니다.
비용 또는 지연 수치가 없다. 모델 호출이 없기 때문. 서버는 deterministic하고 100% 로컬.
Gates
코드 한 줄이지 전에 동결된 rubric에 따라 만들었다. 그중 알아the "게이트들을 나 역게:
모든 도구는 테스트에서 함수 호출이 아니라, 실제 클라이언트가 wire protocol로 말을 걸어 온 답대/through 동하지 않는다.
모든 도구는 추측하지 않고 정중히 기권함을 증명하는 실패 path 테스트를 갖는다.
구현이 참혐 前에 테스트가 실패(observed) 하는 있는 게 import and 하게 하는 과정을 확인했다.
catalog을 바꾸면 드 편집 없이 모든 답변을을 바지을 테스트가 증명한다.
커머트된 트랜스르립트가 재생성되지 않거나, 빌드가 실패한다. *자격 증명 정보 없음, source code 내 네트워 콜출 없음, employer content 및 third-party import 없음. 이 것은 games 성결 conv/불이며, heavier 게이트 단이막가원해야 한다.
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
- FlicenseNot gradedqualityAmaintenanceMCP server for the Rootly incident management platform — alerts, incidents, on-call schedules

runframe-mcp-serverofficial
AlicenseNot gradedqualityCmaintenanceEnables managing incident response workflows including incidents, on-call, postmortems, and more through the Runframe platform using MCP tools.864MIT- AlicenseNot gradedqualityCmaintenanceEnables PagerDuty incident response operations including listing incidents, acknowledging and resolving incidents, looking up on-call schedules, and listing services.MIT
- AlicenseNot gradedqualityBmaintenanceSelf-hosted operational dashboard and MCP server that catalogs runnable services and their operational context, offering a read-only MCP endpoint to list projects, service status, runbooks, and reconciliation context.1Apache 2.0
Related MCP Connectors
Vendor status pages, TLS cert inspection, DNS propagation checks, and incident-response playbooks.
Software component catalog: search your org's services, docs, APIs, dependencies, and ownership.
Uptime, API and server monitoring with outages, reporting, on-call and status pages.
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/LZBiala/oncall-router-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server