Skip to main content
Glama

MCP Host Canary

CI

일회용 원격 MCP 서버를 만들고, Claude, ChatGPT, Cursor 또는 다른 관리형 호스트에 연결한 다음, 실제로 도달한 마지막 프로토콜 경계에 대한 안전한 영수증을 받으세요.

30분 카나리 실행 — 가입이나 설치 없음 · 최종 확정된 샘플 영수증 보기

워터폴 데모

실행 생성부터 실행된 도구 콜백까지 진행되는 MCP Host Canary 워터폴

MCP Host Canary는 알려진 테스트 서버를 생성하고 관찰한 프로토콜 경계만 기록합니다. 인식된 MCP 트래픽이 없는 경우, 불완전한 매니페스트 응답, 센티널 호출 없이 반환된 도구 목록, 등록된 콜백 실행 없이 호출 요청을 구분합니다. 선택적 최신 디스커버리와 레거시 초기화는 실제로 도착한 경우에만 기록합니다. 수신하지 않은 이벤트에서 성공을 추론하지 않습니다.

MCP InspectorMCPJam은 직접 디버깅을 위해 서버에 연결합니다. MCP Host Canary는 Claude, ChatGPT, Cursor 또는 다른 호스트에서 알려진 테스트 서버가 관찰한 마지막 프로토콜 경계를 기록합니다.

토큰, 프롬프트, 요청 본문, 도구 인수, IP 주소 또는 원시 User-Agent 문자열은 보관되지 않습니다.

최종 확정된 영수증은 일회용 엔드포인트가 닫힌 후에만 공유하도록 설계되었습니다:

profile        limits
status         finalized
last observed  tools/call.executed
tools listed   258
called tool    sentinel_257

완전한 개인정보 보호 마크다운 영수증 보기. 이는 통제된 로컬 예시이며, 관리형 호스트 증거가 아닙니다.

일치하는 증상부터 시작하세요: Claude가 연결되었지만 도구가 표시되지 않음, 연결되었지만 도구 호출 없음, tools/listtools/call 없이 호출됨, 258개 도구 경계, 또는 MCP Inspector vs MCP Host Canary.

  1. 일반 경로에는 baseline 실행을, 258개 도구 경계에는 limits 실행을 만듭니다.

  2. 임시 MCP URL을 테스트 중인 관리형 호스트에만 제공하세요. Claude, ChatGPT 또는 Cursor 설정 가이드를 따르세요.

  3. 서버 관찰 워터폴을 확인한 다음, 최종 확정하고 안전한 영수증을 내보냅니다.

독립적인 호스트 관찰을 기여하려면 안전한 영수증 기여 경로를 따르세요.

이것은 실험적이고 무료인 단일 인스턴스 파일럿입니다—MCP 적합성 스위트, 보안 스캐너, 프록시 또는 프로덕션 게이트웨이가 아닙니다. 재시작 또는 무료 인스턴스 중단은 활성 실행 및 영수증을 제거합니다.

Related MCP server: Local Model Workers MCP

관찰 내용

각 실행은 두 가지 프로필 중 하나를 가집니다:

  • baseline: 일반 디스커버리 및 호출 경로를 위한 세 개의 간결한 제로 입력 도구.

  • limits: 258개 도구, 순서 경계의 sentinel_257과 16,385바이트 설명을 가진 하나의 스키마 경계 픽스처 포함.

워터폴은 관찰된 무인증 MCP 사실만 포함합니다. 하나의 보편적 시퀀스를 요구하는 대신 두 가지 프로토콜 시대를 다룹니다:

2026-07-28: server/discover? (optional)
2025-11-25 and earlier: initialize.request -> initialize.response -> initialized
tools/list.request -> tools/list.response
tools/call.request -> tools/call.executed

MCP 2026-07-28initialize / initialized 핸드셰이크를 제거했으며, 최신 클라이언트는 server/discover를 호출할 필요가 없습니다. 이전 개정판은 핸드셰이크 경로를 사용합니다. 가능한 경우 관찰된 프로토콜 버전을 기준으로 디스커버리 또는 초기화 부재를 해석하세요. 둘 다 최신 tools/list 또는 tools/call 관찰의 전제 조건이 아닙니다.

요청 수신과 실제 콜백 실행은 별도의 관찰입니다. 도구 수는 매니페스트 응답이 성공적으로 생성된 후에만 기록됩니다.

초기 관리형 호스트 증거

초기 limits 실행은 두 가지 서로 다른 서버 관찰 경계에 도달했습니다: Claude Web은 센티널 콜백 없이 258개 도구 매니페스트를 가져왔고, ChatGPT Developer 모드는 실제 sentinel_257 콜백 실행에 도달했습니다. 시도 횟수가 균일하지 않으므로 이는 경계 사례 메모입니다—직접 비교 비율, 호환성 등급 또는 호스트 내부 원인에 대한 주장이 아닙니다.

범위와 제한 사항은 관리형 호스트 경계 증거 페이지를 읽으세요. 기계 판독 가능한 소스인 managed-host-observations.v1.json은 정규화된 소규모 샘플 요약이며, 재구성된 영수증 세트가 아닙니다.

관리형 호스트

프로필

보존된 운영자 프로토콜

서버 관찰 결과

Claude Web

baseline

직접 ×1; 간접 ×1; 음성 ≥1 (정확한 음성 횟수는 보존되지 않음)

tools/call.executed; 총 콜백 ×1; 마지막 도구 canary_ping

ChatGPT Developer 모드

baseline

직접 ×3; 간접 ×3; 음성 ≥1 (정확한 음성 횟수는 보존되지 않음)

tools/call.executed; 총 콜백 ×6; 마지막 도구 canary_ping

Claude Web

limits

명시적 sentinel_257 요청 ×2

tools/list.response ×2 (258개 도구 포함); 총 콜백 ×0

ChatGPT Developer 모드

limits

정확한 sentinel_257 요청 횟수는 보존되지 않음

tools/call.executed; 258개 도구 나열됨; 총 콜백 ×3; 마지막 도구 sentinel_257

음성 대조군은 두 baseline 실행 모두에서 콜백 수를 변경하지 않았지만, 정확한 반복 횟수는 보존되지 않았습니다. 이 네 개의 과거 행에서 호스트 성공률을 계산하지 마세요.

호스트 경계 재현

  1. 새로운 baseline 실행을 만들고 Claude, ChatGPT 또는 Cursor 설정 가이드를 사용하여 일회용 URL을 연결합니다.

  2. 세 개의 새로운 호스트 대화에서 각 프롬프트를 정확히 한 번 보냅니다: 직접 — Call canary_ping exactly once and return only its tool result.; 간접 — Use the connected MCP server to retrieve its fixed canary value without naming a tool yourself. Return only that value.; 음성 — Do not use any MCP tool. Reply with exactly: control-only.

  3. 각 프롬프트 후 콜백 수 델타를 기록합니다. 직접 또는 간접 델타는 호스트 디스패치를 기록합니다. 음성 델타는 0으로 유지되어야 합니다. 이는 관찰이며, 합격/불합격 등급이 아닙니다.

  4. 순서 경계의 경우, 해당 실행의 새 일회용 URL을 사용하여 별도의 limits 실행 및 호스트 연결을 만들고, 새 대화에서 한 번 보냅니다: Call sentinel_257 exactly once and return only its tool result.

  5. 각 실행을 최종 확정하고 안전한 영수증을 내보냅니다. 최종 확정은 일회용 MCP 엔드포인트를 비활성화합니다.

동일한 정확한 프롬프트는 실행 생성 후 라이브 UI에서 복사 작업으로 사용할 수 있습니다.

카나리가 재현 가능한 경계를 생성하면 안전한 지원 티켓 템플릿 또는 관리형 호스트 영수증 양식을 사용하세요. 디버깅 시간을 절약했다면 다른 MCP 개발자가 찾을 수 있도록 저장소에 별표를 눌러 주세요. 라이브 기능 URL이나 소유자 전용 영수증 URL은 절대 포함하지 마세요.

로컬 빠른 시작

Node.js 22.x를 사용하세요.

npm ci
npm run typecheck
npm test
npm run build
npm start

http://127.0.0.1:4317을 엽니다. 로컬 비프로덕션 구성은 개발 전용 세션 시크릿을 사용합니다. 프로덕션은 명시적 시크릿과 HTTPS 공개 URL 없이는 시작을 거부합니다.

서버가 계속 실행되는 동안 다른 터미널에서 공식 MCP 클라이언트로 두 개의 통제된 로컬 실행을 수행합니다:

npm run demo

데모는 한 실행에서 최종 센티널을 나열하고 호출한 다음, 다른 실행에서 도구를 나열하고 중지합니다. 이는 관리형 호스트와의 호환성을 주장하지 않고 영수증 차이를 검증합니다.

격리된 파일럿 배포

Render에 배포

Blueprint는 싱가포르에 Free 인스턴스 하나를 생성하고, 256비트 세션 시크릿을 생성하며, 전체 검증 빌드를 실행하고, 자동 배포를 비활성화합니다. 공개 베타와 동일한 30분, 50회 실행, 메모리 전용 파일럿 경계를 사용합니다. Free 컴퓨팅 인스턴스는 $0 워크스페이스 청구를 보장하지 않습니다: 포함된 대역폭 또는 빌드 파이프라인 허용량을 초과하는 사용량은 청구가 활성화된 경우 요금이 부과될 수 있습니다. 배포 전에 Render의 Free 인스턴스 제한을 검토하고, 워크스페이스 사용량을 확인하고, 빌드 파이프라인 지출 한도를 구성하세요. 콜드 스타트 또는 재시작은 활성 실행 및 영수증을 지울 수 있습니다.

API

모든 /api/* 실행 작업은 서명된 익명 브라우저 세션으로 격리됩니다. 다른 소유자는 누락된 실행과 동일한 404를 받습니다. 높은 엔트로피의 /mcp/:id 기능 URL만 해당 세션 없이 의도적으로 사용할 수 있습니다.

메서드

경로

목적

POST

/api/session

익명 세션 발급 또는 갱신

DELETE

/api/session

브라우저 세션 종료

POST

/api/tests

`{ "profile": "baseline"

"limits" }` 생성

GET

/api/tests?limit=12&cursor=...

현재 소유자의 실행 목록

GET

/api/tests/:id

소유자 전용 실행 읽기; ETag304 지원

GET

`/api/tests/:id/receipt?format=json

markdown`

안전한 영수증 내보내기

POST

/api/tests/:id/finalize

MCP 액세스 비활성화 및 영수증 고정

DELETE

/api/tests/:id

실행 즉시 취소 및 제거

GET

/healthz

프로세스 상태

GET

/readyz

준비 상태

브라우저는 최대 세 개의 선택된 활성 실행을 조건부로 폴링합니다. 탭이 숨겨지거나 실행이 최종 확정되거나 만료되면 폴링이 중지되며, 오류는 지수 백오프를 사용합니다.

파일럿 경계

  • 실행은 하나의 프로세스에 존재하며 최대 30분 후 만료됩니다.

  • 배포, 재시작 또는 무료 인스턴스 중단은 활성 실행 및 영수증을 제거합니다.

  • 활성 실행은 최대 50개, 소유자당 3개, 소유자당 시간당 6개 생성, 전역적으로 시간당 60개 생성으로 제한됩니다.

  • MCP 트래픽은 실행별로 제한됩니다. tools/list는 더 엄격한 제한이 있으며 limits 픽스처는 4개 요청 실행 세마포어를 가집니다.

  • 용량 압박은 Retry-After와 함께 429 또는 503을 반환합니다. 기존 실행은 새 실행을 수용하기 위해 제거되지 않습니다.

  • /api/* 본문은 2 KiB, /mcp/* 본문은 64 KiB, JSON-RPC 배치는 애플리케이션 처리 전에 16개 항목으로 제한됩니다.

  • MCP 구독 및 OAuth는 의도적으로 없습니다. 도구는 읽기 전용, 멱등적이며 무인증 호환성 메타데이터로 광고됩니다.

  • 결과는 이 서버가 관찰한 마지막 경계를 보여줍니다. 폐쇄된 호스트 내부의 근본 원인을 확립할 수 없습니다.

PRIVACY.md에서 보관되는 필드와 SECURITY.md에서 기능 URL 및 신고 지침을 확인하세요.

프로덕션 구성

의도된 파일럿 형태는 HTTPS 뒤의 정확히 하나의 Node 22.x 프로세스입니다. 프로덕션에서:

  • CANARY_BIND_HOST0.0.0.0에 바인딩합니다;

  • RENDER_EXTERNAL_URL에서 공개 기본 URL과 허용 호스트를 파생하거나, 서버가 지원하는 명시적 공개 URL을 설정합니다;

  • CANARY_SESSION_SECRET을 최소 32바이트의 무작위 생성 값으로 설정합니다;

  • 선택적으로 CANARY_INDEXNOW_KEY를 별도의 무작위 생성 8-128자 ASCII 문자, 숫자 또는 하이픈 값으로 설정하여 수동 IndexNow 소유권 확인을 위한 /<key>.txt를 노출합니다;

  • TTL을 1800000 ms로, 최대 테스트 수를 50으로 설정합니다;

  • 자동 배포를 비활성화하여 소스 푸시가 활성 실행을 조용히 지울 수 없도록 합니다.

세션 시크릿이나 IndexNow 키를 커밋하지 마세요. 로컬 구성에만 .env.example을 복사하세요. 키 파일은 robots.txt나 사이트맵에 나열되지 않으며, 이 서비스는 URL을 자동으로 제출하지 않습니다. 동일 출처의 공개 페이지가 추가, 업데이트, 리디렉션 또는 삭제된 경우에만 IndexNow에 알리세요.

명령어

npm run typecheck
npm test
npm run build
npm start
npm run demo
npm audit --audit-level=low

검증 게이트

로컬 테스트는 필요하지만 충분하지 않습니다. 파일럿은 최대 7일 이내에 다음 조건이 충족되는 경우에만 계속됩니다:

  • 두 개의 독립적인 관리 호스트가 서로 다른 영수증을 생성합니다;

  • 다섯 명의 독립 개발자가 자신의 호스트에서 실행을 완료합니다;

  • 두 개의 영수증이 실제 지원 티켓 또는 GitHub 이슈에 사용됩니다; 그리고

  • 시크릿 비보존 검사가 계속 통과합니다.

관리 호스트 연결이 실패하거나, 증거에 시크릿 보존이 필요하거나, 사용자가 주로 프록시나 자동 수리를 요청하거나, 공식 도구가 동일한 관리 호스트 증거 흐름을 제공하는 경우 프로젝트는 확장되지 않습니다. 유료 호스팅과 버전 릴리스는 파일럿 증거가 이를 정당화하는 경우에만 이루어집니다.

라이선스

MIT

A
license - permissive license
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

View all related MCP servers

Related MCP Connectors

  • A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage

  • A paid remote MCP for AI agent browser DevTools MCP, built to return verdicts, receipts, usage logs,

  • A paid remote MCP for AI agent browser MCP session, built to return verdicts, receipts, usage logs,

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/sjh9714/mcp-host-canary'

If you have feedback or need assistance with the MCP directory API, please join our Discord server