mcp-host-canary
MCP Host Canary
Создайте одноразовый удалённый MCP-сервер, подключите его к Claude, ChatGPT, Cursor или другому управляемому хосту и получите безопасную квитанцию о последней границе протокола, которой он фактически достиг.
Запустите 30-минутный канареечный тест — без регистрации и установки · Посмотрите готовый пример квитанции
Демонстрация водопада

MCP Host Canary создаёт известный тестовый сервер и записывает только те границы протокола, которые он наблюдает. Он различает отсутствие распознанного MCP-трафика, неполный ответ манифеста, возвращённый список инструментов без вызова контрольного инструмента и запрос вызова без выполнения зарегистрированного обратного вызова. Он записывает необязательное современное обнаружение и устаревшую инициализацию только тогда, когда они действительно приходят. Он не делает вывод об успехе на основе события, которое не получил.
MCP Inspector и MCPJam подключаются к серверу для прямой отладки. 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Посмотрите полную безопасную для конфиденциальности квитанцию в Markdown. Это контролируемый локальный пример, а не доказательство от управляемого хоста.
Начните с соответствующего симптома: Claude подключился, но инструменты не отображаются, подключён, но нет вызова инструмента, tools/list без tools/call, граница 258 инструментов или MCP Inspector против MCP Host Canary.
Создайте запуск
baselineдля обычного пути или запускlimitsдля границы 258 инструментов.Дайте временный MCP URL только тому управляемому хосту, который вы тестируете; следуйте руководству по настройке Claude, ChatGPT или Cursor.
Наблюдайте за водопадом, наблюдаемым сервером, затем завершите и экспортируйте безопасную квитанцию.
Чтобы внести независимое наблюдение за хостом, следуйте пути внесения безопасной квитанции.
Это экспериментальный, бесплатный, однократный пилотный проект — не набор тестов на соответствие 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.executedMCP 2026-07-28 удалил рукопожатие initialize / initialized, и современный клиент не обязан вызывать server/discover. Более ранние версии используют путь рукопожатия. Интерпретируйте отсутствие обнаружения или инициализации с учётом наблюдаемой версии протокола, когда она доступна; ни то, ни другое не является предпосылкой для современного наблюдения tools/list или tools/call.
Получение запроса и фактическое выполнение обратного вызова — это отдельные наблюдения. Количество инструментов записывается только после успешного создания ответа манифеста.
Первоначальные доказательства от управляемых хостов
Первоначальные запуски limits достигли двух разных границ, наблюдаемых сервером: Claude Web получил манифест из 258 инструментов без контрольного обратного вызова; режим разработчика ChatGPT достиг фактического выполнения обратного вызова sentinel_257. Количество попыток не было одинаковым, поэтому это заметки о граничных случаях, а не показатели сравнения, оценки совместимости или утверждения о внутренней причине хоста.
Прочитайте страницу доказательств границ управляемых хостов для получения информации об объёме и ограничениях. Её машиночитаемый источник, managed-host-observations.v1.json, представляет собой нормализованную сводку по малой выборке, а не набор восстановленных квитанций.
Управляемый хост | Профиль | Сохранённый протокол оператора | Результат, наблюдаемый сервером |
Claude Web |
| прямой ×1; косвенный ×1; отрицательный ≥1 (точное отрицательное число не сохраняется) |
|
Режим разработчика ChatGPT |
| прямой ×3; косвенный ×3; отрицательный ≥1 (точное отрицательное число не сохраняется) |
|
Claude Web |
| явный запрос |
|
Режим разработчика ChatGPT |
| точное количество запросов |
|
Отрицательный контроль оставил количество обратных вызовов неизменным в обоих запусках baseline, но его точное количество повторений не сохранялось. Не рассчитывайте показатели успешности хоста по этим четырём историческим строкам.
Воспроизведение границы хоста
Создайте новый запуск
baselineи подключите его одноразовый URL, используя руководство по настройке Claude, ChatGPT или Cursor.В трёх новых разговорах с хостом отправьте каждую подсказку ровно один раз: прямую —
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.Записывайте дельту количества обратных вызовов после каждой подсказки. Прямая или косвенная дельта фиксирует диспетчеризацию хоста; отрицательная дельта должна оставаться нулевой. Это наблюдения, а не оценки «пройдено/не пройдено».
Для границы упорядочивания создайте отдельный запуск
limitsи подключение к хосту, используя новый одноразовый URL этого запуска, и отправьте один раз в новом разговоре:Call sentinel_257 exactly once and return only its tool result.Завершите каждый запуск и экспортируйте его безопасную квитанцию. Завершение отключает одноразовую конечную точку MCP.
Те же самые точные подсказки доступны как действия копирования в живом интерфейсе после создания запуска.
Если канареечный тест даёт воспроизводимую границу, используйте шаблон безопасного обращения в поддержку или форму квитанции управляемого хоста. Если он сэкономил время на отладке, поставьте звёздочку репозиторию, чтобы другие разработчики 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Демонстрация перечисляет и вызывает последний контрольный инструмент в одном запуске, затем перечисляет инструменты и останавливается в другом. Это проверяет различия в квитанциях, не заявляя о совместимости с управляемым хостом.
Развёртывание изолированного пилота
Blueprint создаёт один бесплатный экземпляр в Сингапуре, генерирует 256-битный секрет сеанса, запускает полную проверочную сборку и отключает автоматическое развёртывание. Он использует те же пилотные ограничения на 30 минут, 50 запусков и только память, что и публичная бета-версия. Бесплатный вычислительный экземпляр не гарантирует счёт в $0: использование сверх включённой пропускной способности или квот конвейера сборки может быть оплачено при включении биллинга. Изучите ограничения бесплатных экземпляров Render, проверьте использование рабочей области и настройте лимит расходов конвейера сборки перед развёртыванием. Холодный запуск или перезапуск может стереть активные запуски и квитанции.
API
Все операции /api/* с запусками изолированы в подписанном анонимном сеансе браузера. Другие владельцы получают тот же 404, что и при отсутствующем запуске. Только URL возможностей /mcp/:id с высокой энтропией намеренно доступен без этого сеанса.
Метод | Путь | Назначение | |
|
| Выдать или обновить анонимный сеанс | |
|
| Завершить сеанс браузера | |
|
| Создать `{ "profile": "baseline" | "limits" }` |
|
| Список запусков текущего владельца | |
|
| Прочитать запуск, доступный только владельцу; поддерживает | |
| `/api/tests/:id/receipt?format=json | markdown` | Экспорт безопасной квитанции |
|
| Отключить доступ MCP и заморозить квитанцию | |
|
| Немедленно отозвать и удалить запуск | |
|
| Здоровье процесса | |
|
| Готовность |
Браузер условно опрашивает не более трёх выбранных активных запусков. Опрос прекращается, когда вкладка скрыта или запуск завершён или истёк, а ошибки используют экспоненциальную задержку.
Пилотные ограничения
Запуски живут в одном процессе и истекают не позднее чем через 30 минут.
Развёртывание, перезапуск или приостановка бесплатного экземпляра удаляет активные запуски и квитанции.
Максимум 50 активных запусков, три на владельца, шесть созданий на владельца в час и 60 созданий глобально в час.
Трафик MCP ограничен на запуск;
tools/listимеет более строгий лимит, а фикстурlimitsимеет семафор выполнения на четыре запроса.Перегрузка возвращает
429или503сRetry-After; существующий запуск никогда не вытесняется для допуска нового.Тела
/api/*ограничены 2 КиБ, тела/mcp/*— 64 КиБ, а пакеты JSON-RPC — 16 записей до обработки приложением.Подписки MCP и OAuth намеренно отсутствуют. Инструменты доступны только для чтения, идемпотентны и рекламируются с метаданными совместимости без аутентификации.
Результаты показывают последнюю границу, наблюдаемую этим сервером. Они не могут установить первопричину внутри закрытого хоста.
См. PRIVACY.md о сохраняемых полях и SECURITY.md о capability-URL и рекомендациях по отчетности.
Производственная конфигурация
Предполагаемая форма пилота — ровно один процесс Node 22.x за HTTPS. В продакшене:
привязывайтесь к
0.0.0.0с помощьюCANARY_BIND_HOST;выводите публичный базовый URL и разрешенный хост из
RENDER_EXTERNAL_URLили задайте явный публичный URL, поддерживаемый сервером;задайте
CANARY_SESSION_SECRETкак случайно сгенерированное значение длиной не менее 32 байт;при необходимости задайте
CANARY_INDEXNOW_KEYкак отдельное случайно сгенерированное значение из 8–128 символов ASCII (буквы, цифры или дефис), чтобы открыть/<key>.txtдля ручной проверки владения IndexNow;установите TTL равным
1800000мс, а максимальное количество тестов —50;оставьте авторазвертывание отключенным, чтобы push исходного кода не мог незаметно стереть активные запуски.
Никогда не коммитьте секрет сессии или ключ IndexNow. Копируйте .env.example только для локальной конфигурации. Файл ключа не указан в robots.txt или карте сайта, и этот сервис не отправляет URL автоматически. Уведомляйте IndexNow только при добавлении, обновлении, перенаправлении или удалении публичной страницы с тем же origin.
Команды
npm run typecheck
npm test
npm run build
npm start
npm run demo
npm audit --audit-level=lowКонтрольная точка валидации
Локальные тесты необходимы, но недостаточны. Пилот продолжается только в том случае, если в течение не более семи дней:
два независимых управляемых хоста выдают различные квитанции;
пять независимых разработчиков завершают запуск со своего собственного хоста;
две квитанции используются в реальном обращении в поддержку или issue на GitHub; и
проверки несохранения секретов продолжают проходить.
Проект не расширяется, если соединение с управляемым хостом не удается, доказательства требуют сохранения секретов, пользователи в основном запрашивают прокси или автоматический ремонт, или официальный инструмент предоставляет тот же поток доказательств с управляемым хостом. Платное размещение и версионированный релиз происходят только в том случае, если доказательства пилота это оправдывают.
Лицензия
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
- AlicenseNot gradedqualityBmaintenanceLocal MCP servers that give Claude Code access to other tools mid-session.GPL 3.0
- AlicenseNot gradedqualityAmaintenanceA local MCP server that lets Claude Code and Codex delegate repository exploration and test proposals to a remote LM Studio model, while enforcing security boundaries by keeping all repository access read-only and never applying patches or running commands remotely.1,0621MIT
- AlicenseAqualityBmaintenanceLocal MCP server that lets Claude Code delegate bounded, read-only tasks to external AI models (Codex, Grok, local OpenAI-compatible servers) via CLIProxyAPI.6MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for safely continuing long Claude Code sessions by cleaning transcripts, removing runtime noise, and generating verified resumable sessions with rollback support.MIT
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,
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/sjh9714/mcp-host-canary'
If you have feedback or need assistance with the MCP directory API, please join our Discord server