mcp-proof
🧾 mcp-proof
Поставляйте MCP-сервер с квитанцией.
Одна команда проверяет любой MCP-сервер — инструменты, ресурсы и промпты, обе протокольные эпохи, stdio или Streamable HTTP — и передаёт заказчику воспроизводимый отчёт о поставке с цифровым отпечатком плюс регрессионный набор для CI, который тот оставляет у себя.
Реальный аудит официального файлового сервера MCP: 25 проверок соответствия, таблица соответствия MSSS, 34 регрессионных сценария — всё зелёное.
✨ Что вы получаете
🔍 Проверки протокола на уровне обмена по всем поверхностям и обеим эпохам — mcp-proof общается с вашим сервером на сыром JSON-RPC и автоматически определяет его эпоху: 30 проверок для современной эпохи 2026-07-28 (
server/discover, проверка обёртки_meta,resultType,ttlMs/cacheScopeдля каждого кэшируемого результата, отклонение версии-32022, проверка HTTP-заголовков маршрутизации) и 25 для эпохи рукопожатияinitialize— точные коды ошибок, валидность схем, структурированный вывод, чистота stdout, безопасность пагинации, отдельные дорожки ресурсов и промптов, а также проверенные негативные пробы: TOOL-07 отправляет входные данные, которые доказуемо нарушают объявленнуюinputSchema, и предупреждает, когда сервер отвечает на них как обычно, приводя минимальный воспроизводитель. Учёт capabilities в обе стороны: поверхности, которые сервер не объявляет, пропускаются; те, что объявляет, обязаны работать.🛡️ Аудит безопасности, привязанный к публичному стандарту — 6 детерминированных проверок (отравление описаний инструментов, невидимые/двунаправленные символы, утёкшие учётные данные, неограниченные поверхности инъекций, объявленное выполнение команд в оболочке); каждая сопоставлена с каноническими идентификаторами контролов из 24-контрольного стандарта безопасности MCP Server Security Standard и выводится в каждом отчёте в виде полной таблицы соответствия.
📼 Регрессионный набор, который остаётся у заказчика — запись в любой протокольной эпохе; золотые фикстуры с SHA-256-происхождением фиксируют поведение сервера; повторный прогон оценивает каждое отклонение (
BREAKING/VALUE/COSMETIC/LATENCY), понимает структурированный вывод, сохраняет порядок вызовов с состоянием и поставляется с готовым к вставке шлюзом GitHub Actions.📄 Отчёт и для людей, и для машин — автономный HTML: липкая навигация, якоря по проверкам (
report.html#SEC-03), фильтры «требует внимания»/«пройдено», сворачиваемая матрица MSSS;--pdfдля печати. Та же версионированная модель выгружается в--json(схема v1),--junitдля любого CI и--sarifдля вкладки GitHub Security.🔁 Воспроизводимость по построению — ноль вызовов LLM, ноль API-ключей. Каждый хэш вычисляется только из поведения, а метки времени и задержки живут в отдельном нехэшируемом слое наблюдения, поэтому идентичное поведение сервера даёт идентичный отпечаток отчёта, и приёмка — это проверка, а не доверие.
🧯 Аннотации в приоритете при планировании вызовов — аннотации инструментов MCP главнее эвристики по имени в обоих направлениях:
readOnlyHintспасает read-only инструменты, которые регулярное выражение заблокировало бы избыточно, аdestructiveHintловит мутирующие, которые оно бы пропустило; инструменты без аннотаций получают консервативную эвристику.mcp-proof planпоказывает точно, что вызовет автоматическое формирование базовых линий и на каком основании, прежде чем что-либо коснётся продакшена;--include-destructiveи--edge-casesдобавляют охват.📋 Контрактный diff для CI —
mcp-proof inspectфиксирует публикуемую поверхность (capabilities + инструменты + ресурсы + промпты, с полной пагинацией) в манифест с отпечатком;mcp-proof diffклассифицирует каждое изменение какBREAKING/ADDITIVE/METADATAи завершается ненулевым кодом при разрушающих изменениях — сужение схемы, сужениеenum, переключение обязательности полей, удалённые поля вывода и ослабленные аннотации безопасности учитываются.
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 пройдены, находок по безопасности нет, расхождений в поведении нет — шлюз 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 секунд на встроенной демо-паре — чистый сервер и сервер с девятью внедрёнными нарушениями:
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 ( | ✅ SHIP-READY — 11/11 MUST-проверок, 34/34 повторов без проблем, 4 инструмента записи промыты автоматически | |
Современный сервер эпохи 2026-07-28 (без зависимостей, перекрёстно проверен с официальным v2 SDK) | ✅ SHIP-READY — эпоха определена автоматически через | |
Демо-сервер с 9 внедрёнными нарушениями | ❌ NOT SHIP-READY — 5 избежать MUST + 3 находки безопасности, все зафиксированы с доказательствами | |
Корректный демо-сервер | ✅ SHIP-READY — 16/16 MUST, полное прохождение по всем трём дорожкам, включая регрессионный базлайн |
🔬 Три дорожки
Дорожка | Что доказывает | Как это работает |
Соответствие протоколу | Сервер правильно реализует MCP на проводе: согласование эпоху, семантика ошибок JSON-RPC, поверхности инструментов/ресурсов/промптов, схемы вывода, согласованность capabilities, пагинация, чистота stdout | Самодельный JSON-RPC-зонд смотрит на сырой байтовый поток, поэтому ничего не сглаживается |
Безопасность и гигиена | Метаданные инструментов чисты: никаких внедрённых инструкций, скрытого Unicode, утёкших секретов или неограниченных поверхностей проверки | Детерминистированный статический анализ, каждая находка несёт идентификатор управления MSSS |
Регрессия поведения | Сервер продолжает делать ровно то, что делал при сдаче | Запись/воспроизведение золотых фикстур с fingerprint-происхождением, отклонения классифицируются по серьёзности |
Каждая дорожка сходится в один отчёт — и отчёт заканчивается приоритизированным списком исправлений, так что он служит и планом устранения проблем.
📡 Поддержка протокола
Транспорты | stdio ✅ · Streamable HTTP ✅ |
Поверхности | инструменты ✅ · ресурсы ✅ · промпты ✅ — с учётом capabilities в обе стороны |
Современная эпоха | ✅ дорожка соответствия, автоопределение — |
Эпоха рукопожатия (initialize handshake, | ✅ все дорожки |
Регрессионная дорожка | ✅ обе эпохи — сессия на SDK (legacy) · сессия на пробника (modern) |
Современная дорожка валидируется с официальным v2 SDK в обоих направлениях: официальный клиент
по заявлениям server/discover подхватывает собственный современный тестовый сервер mcp-proof, а mcp-proof
прогоняет все три дорожки полностью зелёными против серверов на официальном v2 SDK на обоих транспортах —
stdio и Streamable HTTP с SSE-ответами (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/Джоб падает, если сервер не готов к поставке, и оставляет после себя mcp-proof-report.html, .json,
.junit.xml, .sarif для загрузки в артефакты. Предпочитаете обычные команды? mcp-proof run … --junit r.xml --sarif r.sarif
плюс mcp-proof diff — тот же шлюз.
🏗️ Создайте поверх шаблона, проходящего аудит
Строите сервер, а не проверяете чужой? templates/server-starter/ — это
быстрый MCP-сервер (fastmcp), который проходит проверку из коробки: ограниченные входные схемы, правильная семантика
ошибок, структурированный вывод, каждая практика заметкой с ID проверки, которой удовлетворяет. Скопируйте,
реализуйте свои инструменты, прогоните аудит и сдайте с отчётом.
🖥️ Платформы
macOS | ✅ разработан и полностью проверен |
Linux | ✅ обкатан в CI |
Windows | ✅ обкатана в CI |
🗺️ План работ
Релиз | Фокус |
v0.3 | ✅ Двухеральная поддержка протокола, вышита на main: автоматическое определение эпоху, 19 проверок современной эпохи, регрессионные сеансы для обеих эпох, валидировано против официального v2 SDK и на обоих транспортах |
v0.4 | ✅ Дорожки ресурсов и промптов с учётом capabilities · Брекет-манифест |
v0.5 | ✅ Версионированная модель JSON-отчёта · Вывод JUnit и SARIF · Переиспользуемый GitHub Action ( |
v1.0 | ✅ Двухстадийный синтез аргументов ( |
Позже | Опциональная семантическая дорожка (проверки с LLM-оценкой) — откладывается до завершения детерминированного ядра |
🔭 Ограничения
mcpproof доказывает то, что может быть доказано детерминированно, и явно помечает, что есть что:
Проверки безопасности охватывают наблюдаемый протокол и поверхность метаданных. Контроли MSSS, требующие доказательств развёртывания, исходного кода или процесса, всегда помечаются как ручная проверка — никогда как пройденные.
Автоматическое формирование базовой линии классифицирует инструменты по консервативной эвристике на основе имени/описания. Проверьте список исключений в манифесте фикстур, прежде чем доверять базовой линии, записанной для продакшена.
Семантическая корректность (означает ли ответ правильную вещь?) намеренно выходит за пределы детерминированного ядра.
📄 Лицензия
MIT — таксономия в разделе соответствия MSSS следует MCP Server Security Standard (CC BY-SA 4.0).
This server cannot be installed
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
- 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
- AlicenseAqualityBmaintenanceA 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.6MIT
- AlicenseNot gradedqualityBmaintenanceAudits any MCP server against the official spec, providing HMAC-signed conformity reports.MIT
- 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.4MIT
Related MCP Connectors
MCP Spec Compliance MCP — audits any MCP server.json against the official Model Context Protocol
Conformance checker for MCP servers. Free, no key, verdicts recomputable and re-measured daily.
MEOK MCP Test MCP — golden-file + schema-drift + tool-failure tests for any MCP server. Drop-in
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/YuCPbit/mcp-proof'
If you have feedback or need assistance with the MCP directory API, please join our Discord server