MCP Host Canary

관리형 호스트 진단 안내서

연결됨은 호출됨이 아닙니다.

관리형 MCP 호스트가 서버를 ‘연결됨’으로 표시해도 서버의 도구 콜백은 한 번도 실행되지 않을 수 있습니다. 연결 상태는 호스트가 보여 주는 정보이고, 콜백 실행은 서버가 직접 관측하는 사건입니다. 따라서 먼저 물어야 할 것은 테스트 서버가 실제로 확인한 마지막 프로토콜 경계가 어디인가입니다.

MCP Host Canary는 일회용 테스트 서버를 만들고 허용된 프로토콜 경계만 기록한 뒤, 개인정보를 최소화한 receipt로 고정합니다. 호스트 내부를 들여다보거나 호환성 점수를 매기지 않습니다.

연결 표시만으로 콜백을 증명할 수 없는 이유

호스트가 MCP URL을 받아들인 뒤 서버에서는 서로 다른 결과가 관측될 수 있습니다.

마지막 경우만 이 테스트 서버에서 콜백이 실행됐음을 증명합니다. 호스트 화면에 도구가 보이는 것은 manifest 전달과 양립하지만, 이후 호출이 전송됐다는 증거는 아닙니다. Canary가 tools/call.requesttools/call.executed를 분리해 기록하는 이유입니다.

프로토콜 버전에 맞게 waterfall 읽기

2026-07-28
server/discover?  (선택)
tools/list.request? → tools/list.response
tools/call.request? → tools/call.executed

2025-11-25 및 이전
initialize.request → initialize.response → initialized
tools/list.request? → tools/list.response
tools/call.request? → tools/call.executed

위 두 흐름은 하나의 필수 순서가 아니라 서로 다른 프로토콜 시대의 경로입니다. MCP 2026-07-28initialize/initialized handshake를 제거했고, server/discover도 클라이언트에게 선택 사항입니다. 따라서 최신 호스트는 이 단계들 없이 바로 tools/list 또는 tools/call로 갈 수 있습니다. MCP 2025-11-25 및 이전 버전은 레거시 initialize 경로를 사용합니다.

tools/list.request는 도구 목록 요청이 도착했다는 뜻입니다. Canary는 성공 응답에 실제 도구 목록이 포함된 뒤에만 더 강한 tools/list.response를 기록하고 안전한 도구 개수를 보존합니다. tools/call.request는 호출 요청의 도착을, 등록된 callback이 실행된 뒤 생기는 tools/call.executed는 실제 서버 실행을 증명합니다.

빠진 단계는 오직 “이 서버가 관측하지 못했다”는 뜻입니다. 특정 캐시, 정책, 파서, 모델 선택, 네트워크 구성요소 또는 제품 버그가 원인이라고 단정할 수 없습니다. 단계별 count 역시 성공률이나 호환성 점수가 아닙니다.

baseline과 limits를 분리해 시험하기

baseline은 일반적인 discovery와 dispatch 경로를 확인하는 간단한 무입력 도구 3개를 제공합니다. 새 baseline run을 만든 뒤 해당 임시 URL만 호스트에 연결하고, 새 대화에서 다음 문장을 정확히 한 번 보냅니다.

Call canary_ping exactly once and return only its tool result.

baseline callback이 실행됐다면 별도의 limits run으로 258개 도구 manifest와 정렬 경계의 sentinel_257을 확인할 수 있습니다. 역시 새 대화에서 다음 문장을 한 번만 보냅니다.

Call sentinel_257 exactly once and return only its tool result.

각 응답 뒤 callback count의 변화를 기록하고, 가능하다면 다른 MCP 연결을 끕니다. 서로 다른 호스트나 profile을 비교할 때는 반드시 각각 새 run을 사용하세요. 한 run의 결과만으로 실제 서버 전체나 호스트 제품 전반을 평가해서는 안 됩니다.

receipt를 공유하기 전에 endpoint 닫기

run은 최대 30분 뒤 만료되며 단일 인메모리 프로세스에만 존재합니다. 배포, 재시작 또는 무료 인스턴스 중단으로 활성 run과 receipt가 사라질 수 있습니다. 결과를 복사하기 전에 finalize하면 MCP endpoint가 닫히고 변경할 수 없는 receipt가 만들어집니다.

finalized receipt에는 profile, 상태, 시각, 단계 count, 안전한 HTTP 상태, 정규화된 client family, 유효한 프로토콜 버전, manifest 도구 개수, 인식된 canary 도구 이름이 포함될 수 있습니다. 활성 MCP URL, owner API URL, session, token, Authorization 값, prompt, response, body, tool argument, IP 주소, 원본 User-Agent는 넣지 않습니다. fingerprint는 비교용 식별자일 뿐 디지털 서명이 아닙니다.

내 관리형 호스트의 마지막 경계 확인하기

가입이나 설치 없이 30분짜리 일회용 endpoint를 만들고 서버가 관측한 단계를 비교하세요.

MCP Host Canary 실행