Skip to main content
Glama

MCP Host Canary

CI

创建一个一次性的远程 MCP 服务器,将其连接到 Claude、ChatGPT、Cursor 或其他托管主机,并获取一份关于它实际到达的最后一个协议边界的安全回执。

运行一个 30 分钟的金丝雀测试——无需注册或安装 · 查看一份已定稿的示例回执

瀑布流演示

MCP Host Canary 瀑布流从运行创建推进到已执行的工具回调

MCP Host Canary 创建一个已知的测试服务器,并且只记录它观察到的协议边界。它区分以下情况:未识别到任何 MCP 流量、不完整的 manifest 响应、返回了工具列表但没有哨兵调用、以及有调用请求但没有注册的回调执行。它仅在现代发现或旧版初始化实际到达时才记录它们。它不会根据未收到的事件推断成功。

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

查看一份完整的隐私安全 Markdown 回执。它是一个受控的本地示例,不是托管主机的证据。

从匹配的症状开始:Claude 已连接但工具未显示已连接但没有工具调用tools/list 但没有 tools/call258 个工具边界、或 MCP Inspector 与 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-28 移除了 initialize / initialized 握手,现代客户端不要求调用 server/discover。较早的修订版本使用握手路径。在可用时,根据观察到的协议版本来解释缺失的发现或初始化;两者都不是现代 tools/listtools/call 观察的先决条件。

请求回执和实际回调执行是分开的观察。只有在 manifest 响应成功生成后才记录工具数量。

初始托管主机证据

初始 limits 运行到达了两个不同的服务器观察边界:Claude Web 获取了 258 个工具的 manifest 但没有哨兵回调;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. 在每个提示词之后记录回调计数增量。直接或间接增量记录主机调度;阴性增量应保持为零。这些是观察结果,不是通过/失败等级。

  4. 对于排序边界,创建一个单独的 limits 运行并使用该运行的新一次性 URL 连接主机,并在一个新对话中发送一次: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

演示在一次运行中列出并调用最终的哨兵,然后在另一次运行中列出工具并停止。这验证了回执差异,而不声称与托管主机兼容。

部署隔离试点

Deploy to Render

Blueprint 会在新加坡创建一个免费实例,生成一个 256 位会话密钥,运行完整的验证构建,并保持自动部署禁用。它使用与公共测试版相同的 30 分钟、50 次运行、仅内存的试点边界。免费计算实例不保证 $0 工作区账单:超出包含带宽或构建管道配额的使用量在启用计费后可能会被收费。在部署前请查看 Render 的免费实例限制、检查工作区使用量,并配置构建管道支出限制。冷启动或重启可能会清除活动运行和回执。

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 夹具有一个四次请求的执行信号量。

  • 容量压力返回 429503 并带有 Retry-After;现有运行永远不会被驱逐以接纳新运行。

  • /api/* 请求体限制为 2 KiB,/mcp/* 请求体限制为 64 KiB,JSON-RPC 批处理在应用处理前限制为 16 个条目。

  • MCP 订阅和 OAuth 有意缺席。工具是只读的、幂等的,并带有无认证兼容性元数据进行通告。

  • 结果显示此服务器观察到的最后一个边界。它们无法确定封闭主机内部的根本原因。

有关保留字段,请参阅 PRIVACY.md;有关能力 URL 和报告指南,请参阅 SECURITY.md

生产配置

预期的试点形态是 HTTPS 后面的一个 Node 22.x 进程。在生产环境中:

  • 使用 CANARY_BIND_HOST 绑定到 0.0.0.0

  • RENDER_EXTERNAL_URL 派生公共基础 URL 和允许的主机,或设置服务器支持的显式公共 URL;

  • CANARY_SESSION_SECRET 设置为至少 32 字节的随机生成值;

  • 可选地将 CANARY_INDEXNOW_KEY 设置为单独的、随机生成的 8-128 字符 ASCII 字母、数字或连字符值,以公开 /<key>.txt 用于手动 IndexNow 所有权验证

  • 将 TTL 设置为 1800000 毫秒,最大测试数设置为 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

验证门

本地测试是必要的,但还不够。试点仅在最多七天内满足以下条件时继续:

  • 两个独立的托管主机产生不同的回执;

  • 五名独立开发人员从自己的主机完成一次运行;

  • 两张回执用于真实的支持工单或 GitHub issue;并且

  • 密钥不保留检查持续通过。

如果托管主机连接失败、证据需要保留密钥、用户主要请求代理或自动修复,或者官方工具提供相同的托管主机证据流程,则项目不会扩展。只有在试点证据证明有必要时,才会进行付费托管和版本化发布。

许可证

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