mcp-proof
🧾 mcp-proof
영수증과 함께 MCP 서버를 출시하세요.
한 번의 명령으로 모든 MCP 서버를 감사합니다 — 프로토콜 시대와 무관하게 도구, 리소스, 프롬프트를 모두 검사하고, stdio 또는 Streamable HTTP를 지원하며, 클라이언트에게 지문(fingerprint)이 찍힌 재현 가능한 전달 보고서와 함께 유지할 수 있는 CI 회귀 테스트 스위트를 제공합니다.
공식 MCP filesystem 서버에 대한 실제 감사: 25개 적합성 검사, MSSS 준수 테이블, 34개 회귀 픽스처 — 모두 통과.
✨ 제공 기능
🔍 모든 표면과 두 시대에 걸친 와이어 레벨 프로토콜 검사 — mcp-proof는 서버에 원시 JSON-RPC로 직접 말을 걸고 서버의 시대를 자동 감지합니다: 2026-07-28 모던 시대용 30개 검사(
server/discover,_meta봉투 강제,resultType, 모든 캐시 가능 결과의ttlMs/cacheScope,-32022버전 거부, HTTP 라우팅 헤더 강제)와 initialize 핸드셰이크 시대용 25개 검사 — 정확한 오류 코드, 스키마 유효성, 구조화된 출력, stdout 위생, 페이지네이션 안전성, 전용 리소스 및 프롬프트 레인, 그리고 검증된 부정 탐지(negative probe): TOOL-07은 선언된 inputSchema를 명백히 위반하는 입력을 보내고, 서버가 이를 정상적으로 응답하면 최소 재현 코드를 인용하여 경고합니다. 양방향 모두 기능 인지형: 서버가 광고하지 않는 표면은 건너뛰고, 광고하는 표면은 반드시 작동해야 합니다.🛡️ 공개 표준에 연동된 보안 감사 — 6가지 결정적 검사(도구 설명 주입, 보이지 않는/bidi 문자, 자격 증명 유출, 제약 없는 주입 표면, 광고된 셸 실행), 각각 24개 컨트롤 MCP Server Security Standard의 표준 컨트롤 ID에 매핑되며 모든 보고서에 전체 준수 테이블로 렌더링됩니다.
📼 클라이언트가 유지하는 회귀 테스트 스위트 — 두 프로토콜 시대 모두에서 기록 가능; SHA-256 출처가 있는 골든 픽스처가 서버의 동작을 고정하고, 리플레이는 모든 드리프트를 등급화합니다(
BREAKING/VALUE/COSMETIC/LATENCY), 구조화된 출력을 이해하고, 상태 저장 호출 순서를 보존하며, 바로 붙여넣을 수 있는 GitHub Actions 게이트와 함께 제공됩니다.📄 사람과 기계 모두를 위한 보고서 — 스티키 내비게이션, 검사별 앵커(
report.html#SEC-03), 주의/통과 필터, 접을 수 있는 MSSS 매트릭스를 갖춘 자체 포함 HTML; 인쇄용--pdf. 동일한 버전 관리 모델이--json(스키마 v1), 모든 CI용--junit, GitHub Security 탭용--sarif로 제공됩니다.🔁 설계상 재현 가능 — LLM 호출 없음, API 키 없음. 모든 해시는 동작만으로 계산됩니다 — 타임스탬프와 지연 시간은 별도의 해시되지 않은 관찰 계층에 있으므로 — 동일한 서버 동작은 동일한 보고서 지문을 생성하며, 수용은 신뢰가 아닌 검증입니다.
🧯 어노테이션 우선 호출 계획 — MCP 도구 어노테이션은 양방향 모두 이름 휴리스틱보다 우선합니다:
readOnlyHint는 정규식이 과도하게 차단할 읽기 전용 도구를 구출하고,destructiveHint는 놓칠 수 있는 변경 도구를 포착합니다; 어노테이션이 없는 도구는 보수적 휴리스틱으로 폴백합니다.mcp-proof plan은 프로덕션에 아무것도 닿기 전에 자동 베이스라인이 무엇을 어떤 근거로 호출할지 정확히 보여줍니다;--include-destructive와--edge-cases로 더 많은 것을 선택할 수 있습니다.📋 CI용 계약 diff —
mcp-proof inspect는 제공되는 표면(기능 + 도구 + 리소스 + 프롬프트, 완전 페이지네이션)을 지문이 찍힌 매니페스트로 고정합니다;mcp-proof diff는 모든 변경을BREAKING/ADDITIVE/METADATA로 분류하고 breaking 변경 시 0이 아닌 종료 코드를 반환합니다 — 스키마 강화, enum 축소, required 플립, 제거된 출력 필드, 약화된 안전 어노테이션이 모두 포함됩니다.
Related MCP server: MCProbe
🚀 빠른 시작
pip install git+https://github.com/YuCPbit/mcp-proof
mcp-proof run python my_server.py --fixtures fixtures/ --out report.html실행 중인 HTTP 서버를 감사하려면? mcp-proof run --url http://localhost:8000/mcp --out report.html
종료 코드 0은 다음을 의미합니다: 모든 MUST 검사 통과, 보안 발견 0건, 동작 드리프트 0건 — 한 줄 CI 게이트.
mcp-proof plan python my_server.py # what would auto-baselining call, and why
mcp-proof record python my_server.py --fixtures fixtures/ # freeze the behavioural contract
mcp-proof replay --fixtures fixtures/ -- python my_server.py # fail on any drift
mcp-proof inspect python my_server.py --out baseline.json # freeze the contract surface
mcp-proof diff baseline.json current.json # BREAKING / ADDITIVE / METADATA, exit 1 on breaking내장 데모 쌍으로 60초 안에 차이를 확인하세요 — 깨끗한 서버와 9개의 심어진 위반이 있는 서버:
mcp-proof run python demo/good_server.py --fixtures demo/fixtures-good --out report-good.html # → SHIP-READY
mcp-proof run python demo/bad_server.py --out report-bad.html # → 5 MUST failures, 3 security findings📊 실제 감사, 실제 보고서
대상 | 판정 | 보고서 |
공식 MCP filesystem 서버 ( | ✅ SHIP-READY — 11/11 MUST 검사, 34/34 리플레이 클린, 쓰기 도구 4개 자동 건너뜀 | |
2026-07-28 모던 시대 서버 (제로 의존성, 공식 v2 SDK와 교차 검증) | ✅ SHIP-READY — | |
9개의 심어진 위반이 있는 데모 서버 | ❌ NOT SHIP-READY — MUST 실패 5건 + 보안 발견 3건, 모든 항목이 증거와 함께 포착됨 | |
잘 작동하는 데모 서버 | ✅ SHIP-READY — 16/16 MUST, 회귀 베이스라인 포함 전체 3레인 통과 |
🔬 세 가지 레인
레인 | 증명하는 내용 | 방법 |
프로토콜 적합성 | 서버가 와이어 레벨에서 MCP를 올바르게 구현하는지 — 시대 협상, JSON-RPC 오류 의미론, 도구/리소스/프롬프트 표면, 출력 스키마, 기능 일관성, 페이지네이션, stdout 위생 | 직접 작성한 JSON-RPC 프로브가 원시 바이트 스트림을 관찰하므로 어떤 것도 매끄럽게 덮어지지 않음 |
보안 및 위생 | 도구 메타데이터가 깨끗한지: 주입된 지시문, 숨겨진 유니코드, 유출된 비밀, 제약 없는 실행 표면 없음 | 결정적 정적 분석, 모든 발견에 MSSS 컨트롤 ID가 포함됨 |
동작 회귀 | 서버가 전달 시점에 했던 것과 정확히 동일하게 동작하는지 | 출처 지문이 있는 골든 픽스처의 기록/재생, 드리프트는 심각도별 등급화 |
모든 레인이 하나의 보고서로 통합됩니다 — 그리고 보고서는 우선순위가 매겨진 수정 목록으로 끝나므로 수정 계획으로도 활용됩니다.
📡 프로토콜 지원
전송 | stdio ✅ · Streamable HTTP ✅ |
표면 | 도구 ✅ · 리소스 ✅ · 프롬프트 ✅ — 양방향 기능 인지형 |
모던 시대 | ✅ 적합성 레인, 자동 감지 — |
레거시 시대 (initialize 핸드셰이크, | ✅ 모든 레인 |
회귀 레인 | ✅ 두 시대 모두 — SDK 세션(레거시) · 프로브 기반 세션(모던) |
모던 레인은 공식 v2 SDK에 대해 양방향으로 검증됩니다: 공식 클라이언트가
server/discover를 통해 mcp-proof의 직접 작성한 모던 테스트 서버를 채택하고, mcp-proof는
공식 v2 SDK 서버에 대해 두 전송 모두 — stdio 및 SSE 응답이 있는 Streamable HTTP —
세 레인을 모두 완전히 통과시킵니다(scripts/crosscheck_modern_server.py).
모든 언어로 작성된 서버와 작동합니다 — mcp-proof는 코드베이스가 아닌 프로세스(또는 URL)와 통신합니다.
⚙️ 한 단계로 CI
- uses: YuCPbit/mcp-proof@v0.5.0
with:
server-command: python my_server.py
fixtures: fixtures/서버가 ship-ready가 아니면 작업이 실패하고, 업로드를 위해 mcp-proof-report.html / .json /
.junit.xml / .sarif 파일을 남깁니다. 원시 명령을 선호하시나요? mcp-proof run … --junit r.xml --sarif r.sarif
에 mcp-proof diff를 더하면 동일한 게이트입니다.
🏗️ 감사 클린 템플릿 위에 구축
서버를 감사하는 대신 구축 중이신가요? templates/server-starter/는
즉시 이 감사를 통과하는 fastmcp 서버입니다 — 제약된 입력 스키마, 올바른 오류 의미론, 구조화된 출력,
충족하는 검사 ID로 주석이 달린 모든 관행. 복사하고, 도구를 구현하고, 감사하고, 보고서와 함께 출시하세요.
🖥️ 플랫폼
macOS | ✅ 개발 및 완전 검증 완료 |
Linux | ✅ CI에서 실행됨 |
Windows | ✅ CI에서 실행됨 |
🗺️ 로드맵
릴리스 | 초점 |
v0.3 | ✅ 이중 시대 프로토콜 지원, main에 출시 — 시대 자동 감지, 모던 시대 검사 19개, 이중 시대 회귀 세션, 두 전송 모두에서 공식 v2 SDK에 대해 검증됨 |
v0.4 | ✅ 기능 인지형 리소스 및 프롬프트 레인 · 계약 매니페스트 |
v0.5 | ✅ 버전 관리 JSON 보고서 모델 · JUnit 및 SARIF 출력 · 재사용 가능한 GitHub Action ( |
v0.6 | ✅ 2단계 인수 합성( |
이후 | 선택적 의미론 레인(LLM 등급 어서션) — 결정적 코어가 완성될 때까지 보류 |
🔍 제한 사항
mcp-proof는 결정적으로 증명할 수 있는 것을 증명하며, 어떤 것이 어떤 것인지 명시합니다:
보안 검사는 관찰 가능한 프로토콜 및 메타데이터 표면을 다룹니다. 배포, 소스 또는 프로세스 증거가 필요한 MSSS 통제 항목은 항상 수동 검토로 보고되며, 통과로 보고되지 않습니다.
자동 베이스라인은 보수적인 이름/설명 휴리스틱으로 도구를 분류합니다. 프로덕션에 대해 기록된 베이스라인을 신뢰하기 전에 fixtures 매니페스트의 건너뛰기 목록을 검토하십시오.
의미적 정확성(답변이 의미상 올바른가?)은 설계상 결정적 핵심 범위 밖입니다.
📄 라이선스
MIT — MSSS 규정 준수 섹션의 분류 체계는 MCP Server Security Standard (CC BY-SA 4.0)를 따릅니다.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP Spec Compliance MCP — audits any MCP server.json against the official Model Context Protocol
Scans remote MCP servers for protocol, security, and TLS issues; exposes scan tools via MCP.
MEOK MCP Test MCP — golden-file + schema-drift + tool-failure tests for any MCP server. Drop-in
Grade MCP servers A to F with the open behavioral litmus. npm: full toolset; hosted: lookups only.
Related MCP Servers
- AlicenseAqualityAmaintenanceA stdio MCP server that audits other MCP servers over the live protocol. It connects to any MCP target (stdio or HTTP), lints every tool's schema for agent-usability, then actually calls the tools with deliberately broken inputs to see how the server handles them, and returns a 0–100 conformance score with a per-dimension breakdown rendered as Markdown.66MIT
- AlicenseAqualityCmaintenanceA stdio MCP server that audits other MCP servers by linting their tool schemas and calling tools with malformed inputs to produce a 0–100 conformance score and Markdown report.6353 npmMIT
- AlicenseNot gradedqualityCmaintenanceAudits any MCP server against the official spec, providing HMAC-signed conformity reports.24 PyPIMIT
- AlicenseNot gradedqualityAmaintenanceAudits MCP server configurations for security risks including capability inventory, SSRF, prompt injection, and drift detection. Works in read-only mode and can also be used as an MCP server to let AI agents audit their own attack surface.411 PyPI4MIT