Skip to main content
Glama

MCP Host Canary

CI

Создайте одноразовый удалённый MCP-сервер, подключите его к Claude, ChatGPT, Cursor или другому управляемому хосту и получите безопасную квитанцию о последней границе протокола, которой он фактически достиг.

Запустите 30-минутный канареечный тест — без регистрации и установки · Посмотрите готовый пример квитанции

Демонстрация водопада

Водопад MCP Host Canary от создания запуска до выполненного обратного вызова инструмента

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.

  1. Создайте запуск baseline для обычного пути или запуск limits для границы 258 инструментов.

  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-28 удалил рукопожатие initialize / initialized, и современный клиент не обязан вызывать server/discover. Более ранние версии используют путь рукопожатия. Интерпретируйте отсутствие обнаружения или инициализации с учётом наблюдаемой версии протокола, когда она доступна; ни то, ни другое не является предпосылкой для современного наблюдения tools/list или tools/call.

Получение запроса и фактическое выполнение обратного вызова — это отдельные наблюдения. Количество инструментов записывается только после успешного создания ответа манифеста.

Первоначальные доказательства от управляемых хостов

Первоначальные запуски limits достигли двух разных границ, наблюдаемых сервером: Claude Web получил манифест из 258 инструментов без контрольного обратного вызова; режим разработчика ChatGPT достиг фактического выполнения обратного вызова sentinel_257. Количество попыток не было одинаковым, поэтому это заметки о граничных случаях, а не показатели сравнения, оценки совместимости или утверждения о внутренней причине хоста.

Прочитайте страницу доказательств границ управляемых хостов для получения информации об объёме и ограничениях. Её машиночитаемый источник, managed-host-observations.v1.json, представляет собой нормализованную сводку по малой выборке, а не набор восстановленных квитанций.

Управляемый хост

Профиль

Сохранённый протокол оператора

Результат, наблюдаемый сервером

Claude Web

baseline

прямой ×1; косвенный ×1; отрицательный ≥1 (точное отрицательное число не сохраняется)

tools/call.executed; всего обратных вызовов ×1; последний инструмент canary_ping

Режим разработчика ChatGPT

baseline

прямой ×3; косвенный ×3; отрицательный ≥1 (точное отрицательное число не сохраняется)

tools/call.executed; всего обратных вызовов ×6; последний инструмент canary_ping

Claude Web

limits

явный запрос sentinel_257 ×2

tools/list.response ×2 с 258 инструментами; всего обратных вызовов ×0

Режим разработчика ChatGPT

limits

точное количество запросов sentinel_257 не сохраняется

tools/call.executed; перечислено 258 инструментов; всего обратных вызовов ×3; последний инструмент sentinel_257

Отрицательный контроль оставил количество обратных вызовов неизменным в обоих запусках baseline, но его точное количество повторений не сохранялось. Не рассчитывайте показатели успешности хоста по этим четырём историческим строкам.

Воспроизведение границы хоста

  1. Создайте новый запуск baseline и подключите его одноразовый URL, используя руководство по настройке Claude, ChatGPT или Cursor.

  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. Записывайте дельту количества обратных вызовов после каждой подсказки. Прямая или косвенная дельта фиксирует диспетчеризацию хоста; отрицательная дельта должна оставаться нулевой. Это наблюдения, а не оценки «пройдено/не пройдено».

  4. Для границы упорядочивания создайте отдельный запуск limits и подключение к хосту, используя новый одноразовый URL этого запуска, и отправьте один раз в новом разговоре: Call sentinel_257 exactly once and return only its tool result.

  5. Завершите каждый запуск и экспортируйте его безопасную квитанцию. Завершение отключает одноразовую конечную точку 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

Демонстрация перечисляет и вызывает последний контрольный инструмент в одном запуске, затем перечисляет инструменты и останавливается в другом. Это проверяет различия в квитанциях, не заявляя о совместимости с управляемым хостом.

Развёртывание изолированного пилота

Deploy to Render

Blueprint создаёт один бесплатный экземпляр в Сингапуре, генерирует 256-битный секрет сеанса, запускает полную проверочную сборку и отключает автоматическое развёртывание. Он использует те же пилотные ограничения на 30 минут, 50 запусков и только память, что и публичная бета-версия. Бесплатный вычислительный экземпляр не гарантирует счёт в $0: использование сверх включённой пропускной способности или квот конвейера сборки может быть оплачено при включении биллинга. Изучите ограничения бесплатных экземпляров Render, проверьте использование рабочей области и настройте лимит расходов конвейера сборки перед развёртыванием. Холодный запуск или перезапуск может стереть активные запуски и квитанции.

API

Все операции /api/* с запусками изолированы в подписанном анонимном сеансе браузера. Другие владельцы получают тот же 404, что и при отсутствующем запуске. Только URL возможностей /mcp/:id с высокой энтропией намеренно доступен без этого сеанса.

Метод

Путь

Назначение

POST

/api/session

Выдать или обновить анонимный сеанс

DELETE

/api/session

Завершить сеанс браузера

POST

/api/tests

Создать `{ "profile": "baseline"

"limits" }`

GET

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

Список запусков текущего владельца

GET

/api/tests/:id

Прочитать запуск, доступный только владельцу; поддерживает ETag и 304

GET

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

markdown`

Экспорт безопасной квитанции

POST

/api/tests/:id/finalize

Отключить доступ MCP и заморозить квитанцию

DELETE

/api/tests/:id

Немедленно отозвать и удалить запуск

GET

/healthz

Здоровье процесса

GET

/readyz

Готовность

Браузер условно опрашивает не более трёх выбранных активных запусков. Опрос прекращается, когда вкладка скрыта или запуск завершён или истёк, а ошибки используют экспоненциальную задержку.

Пилотные ограничения

  • Запуски живут в одном процессе и истекают не позднее чем через 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; и

  • проверки несохранения секретов продолжают проходить.

Проект не расширяется, если соединение с управляемым хостом не удается, доказательства требуют сохранения секретов, пользователи в основном запрашивают прокси или автоматический ремонт, или официальный инструмент предоставляет тот же поток доказательств с управляемым хостом. Платное размещение и версионированный релиз происходят только в том случае, если доказательства пилота это оправдывают.

Лицензия

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