MCP天文台
███╗ ███╗ ██████╗██████╗
████╗ ████║██╔════╝██╔══██╗
██╔████╔██║██║ ██████╔╝
██║╚██╔╝██║██║ ██╔═══╝
██║ ╚═╝ ██║╚██████╗██║
╚═╝ ╚═╝ ╚═════╝╚═╝
O B S E R V A T O R Y ](https://www.npmjs.com/package/@kryptosai/mcp-observatory) ](https://www.npmjs.com/package/@kryptosai/mcp-observatory)  ](./package.json)  
第一个测试工具本身就是MCP服务器。 您的AI代理可以自主扫描、测试、记录、回放和验证其他MCP服务器,在没有人为干预的情况下捕捉回归、模式漂移和安全问题。
将其用作CLI、CI操作,或将其作为MCP服务器提供给您的代理,让它为您测试其他服务器。

快速开始
扫描Claude配置中的每个MCP服务器:
npx @kryptosai/mcp-observatory深入探讨——同时调用安全工具来验证它们是否实际运行:
npx @kryptosai/mcp-observatory scan deep测试特定服务器:
npx @kryptosai/mcp-observatory test npx -y @modelcontextprotocol/server-everything将其作为MCP服务器添加到Claude Code中:
claude mcp add mcp-observatory -- npx -y @kryptosai/mcp-observatory serve或者手动将其添加到您的配置中:
{
"mcpServers": {
"mcp-observatory": {
"command": "npx",
"args": ["-y", "@kryptosai/mcp-observatory", "serve"]
}
}
}命令
| 命令 | 它的作用 |
|---|---|
scan | 从配置文件中自动发现服务器并全部检查(默认) |
scan deep | 扫描并调用安全工具以验证其执行情况 |
test | 通过命令测试特定服务器 |
record | 将服务器会话记录到盒式磁带文件中,以便离线重放 |
replay | 离线回放磁带--不需要实时服务器 |
verify | 验证实时服务器是否仍与录制的磁带相匹配 |
diff | 比较回归和模式漂移的两个运行工件 |
watch | 关注服务器的变化,警惕回归 |
suggest | 检测您的堆栈并从注册表中推荐MCP服务器 |
serve | 作为AI代理的MCP服务器启动 |
lock | 将MCP服务器架构快照到锁文件中 |
lock verify | 验证活动服务器是否与锁定文件匹配 |
history | 显示MCP服务器的健康评分趋势 |
ci-report | 为GitHub问题创建生成CI报告 |
score | 对MCP服务器的运行状况进行评分(0-100) |
badge | 为README生成SVG健康评分徽章 |
运行交互式菜单时不带参数:
它的作用
检查功能 --连接到服务器并验证工具、提示和资源是否正确响应。
调用工具 --超越了上市。实际上,调用安全工具(无需参数/readOnlyHint)并报告哪些工具有效,哪些工具崩溃。
npx @kryptosai/mcp-observatory scan deep检测架构漂移 --区分两次运行和曲面添加/删除字段、类型更改和中断参数更改。
npx @kryptosai/mcp-observatory diff run-a.json run-b.json推荐服务器 --扫描项目中的语言、框架、数据库和云提供商,然后交叉引用 MCP注册表 建议您缺少的服务器。
npx @kryptosai/mcp-observatory suggest或者在MCP服务器模式下运行时,询问您的代理“我应该添加哪些MCP服务器?”。
安全扫描 --分析工具模式中的危险模式:shell注入表面、广泛的文件系统访问、缺少身份验证和响应中的凭据泄漏。
npx @kryptosai/mcp-observatory test --security npx -y my-mcp-server记录/回放/验证 --捕获实时会话,在CI中离线回放,并验证没有任何更改。喜欢 录像机 对于MCP。
# Record a session
npx @kryptosai/mcp-observatory record npx -y @modelcontextprotocol/server-everything
# Replay offline (no server needed)
npx @kryptosai/mcp-observatory replay .mcp-observatory/cassettes/latest.cassette.json
# Verify the live server still matches
npx @kryptosai/mcp-observatory verify cassette.json npx -y @modelcontextprotocol/server-everything注意回归 --每隔一段时间重新运行检查,并在发生变化时发出警报。
npx @kryptosai/mcp-observatory watch target.json扫描位置
当你奔跑时 scan,它在以下位置查找MCP配置:
~/.claude.json(克劳德密码)~/Library/Application Support/Claude/claude_desktop_config.json(克劳德桌面,macOS)%APPDATA%/Claude/claude_desktop_config.json(克劳德桌面,Windows).claude.json和.mcp.json(当前目录)
CI/GitHub行动
将Observatory添加到MCP服务器的CI管道中:
# .github/workflows/observatory.yml
name: MCP Server Check
on: [pull_request]
jobs:
observatory:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: KryptosAI/mcp-observatory/action@main
with:
command: npx -y my-mcp-server
security: true行动输入:
| 输入 | 描述 | 默认值 |
|---|---|---|
command | 要测试的服务器命令 | (如果没有,则需要 target) |
target | 目标配置JSON路径 | |
targets | 多服务器矩阵扫描的MCP配置文件路径 | |
deep | 同时调用安全工具 | false |
security | 运行安全分析 | false |
fail-on-regression | 对问题采取行动失败 | true |
comment-on-pr | 将报告作为公关评论发布 | true |
set-status | 在HEAD SHA上设置提交状态检查(绿色/红色) | true |
github-token | PR评论和提交状态的令牌 | ${{ github.token }} |
该操作对每个PR进行检查,对降价报告进行评论,并阻止回归合并。看 action/README.md 对于所有选项。
锁定文件
$ npx @kryptosai/mcp-observatory lock # Snapshot all server schemas
$ npx @kryptosai/mcp-observatory lock verify # Verify no drift since last lock趋势跟踪
$ npx @kryptosai/mcp-observatory history # Show health trends over time夜间扫描
$ npx @kryptosai/mcp-observatory ci-report # Generate regression report for CIMCP服务器模式
没有其他测试工具本身就是MCP服务器。 将Observatory添加为服务器,您的AI代理可以自主测试、诊断和监控您的其他MCP服务器。
claude mcp add mcp-observatory -- npx -y @kryptosai/mcp-observatory serve您的代理将获得9个工具:
| 工具 | 何时使用 |
|---|---|
scan | 检查所有配置的MCP服务器是否正常 |
check_server | 在安装之前或更新之后测试特定服务器 |
record | 捕获工作服务器的基线以供将来比较 |
replay | 对录制的会话进行测试——不需要实时服务器 |
verify | 确认服务器更新没有破坏任何东西 |
watch | 检查服务器,查看自上次检查以来发生了什么变化 |
diff_runs | 查找两个检查结果之间的回归关系 |
get_last_run | 检索服务器的先前检查结果 |
suggest_servers | 发现与您的项目堆栈匹配的MCP服务器 |
一个检查其他AI工具的AI工具。这是一个为工具服务的工具测试工具\*
\*我扮演一个伪装成另一个男人的男人。
安全
MCP服务器在AI主机内运行,LLM选择调用哪些工具。为防止快速注射攻击:
- 命令列表: 仅
npx,node,python,python3,uvx,docker,deno,bun被允许作为基本可执行文件。CLI没有限制。 - 路径验证: 文件读取工具仅限于runs/cassettes目录。
- 不得任意执行: 使用CLI执行不受限制的命令。
CLI与MCP:意图差异
| 功能 | CLI | MCP服务器 | 为什么 |
|---|---|---|---|
watch | 轮询循环 | 单次检查+差异 | 请求/响应不支持长轮询 |
| 交互式菜单 | 箭头键导航 | 不可用 | MCP没有交互式UI |
| 颜色输出 | --no-color flag | 始终为纯文本 | MCP返回结构化内容 |
report | 渲染保存的工件 | 不可用 | 代理直接读取工件 |
serve | 启动MCP服务器 | N/A | 是MCP服务器吗 |
run | 读取目标配置文件 | 内联参数 | MCP工具直接接受参数 |
get_last_run | 不可用(使用 ls + diff) | 可用 | 为代理商提供便利 |
兼容性
适用于任何使用标准传输的MCP服务器:
| 传输 | 示例 | 适配器 |
|---|---|---|
| HTTP/SSE (远程) | 云耀, Exa, 塔维利 | http |
| 码头工人 | 全部 @modelcontextprotocol/server-* 图片 | local-process 通过 docker run -i |
需要API密钥的服务器通过 env 在目标配置中。Python服务器通过以下方式工作 uvx。请参阅 完全兼容性矩阵 用于测试服务器和已知问题。
目标配置文件
要获得更多控制(环境变量、元数据、自定义超时):
{
"targetId": "filesystem-server",
"adapter": "local-process",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "."],
"timeoutMs": 15000,
"skipInvoke": false
}npx @kryptosai/mcp-observatory run --target ./target.jsonHTTP/SSE目标
{
"targetId": "my-remote-server",
"adapter": "http",
"url": "http://localhost:3000/mcp",
"authToken": "optional-bearer-token",
"timeoutMs": 15000
}如何比较
|---------|:-----------:|:----------:|:-------:|:-------:| |自动发现服务器|✅ | — | — | — | |检查功能|✅ | — | ✅ | ✅ | |调用工具|✅ | — | — | ✅ | |架构漂移检测|✅ | — | — | — | |录制/回放|✅ | ✅ | — | — | |对照钞箱进行验证|✅ | — | — | — | |响应快照差异|✅ | — | — | — | |基准测试/延迟|--|--|✅ | — | |Jest集成|--|--|-|✅ | |MCP代理模式|--|✅ | — | — | | 用作MCP服务器 | ✅ | — | — | — |
每种工具都有其优势。Observatory专注于回归检测和CI友好的工作流程。mcp记录器作为透明代理非常棒。MCPBench是性能基准测试的首选。如果您已经处于jest工作流中,mcp-jest是理想的选择。
现有技术
记录/回放/验证模式的灵感来自:
- 录像机 (Ruby)——首创基于盒式磁带的HTTP记录/回放
- Polly.js (Netflix)——JavaScript的HTTP交互记录
- mcp记录仪 --MCP专用流量记录代理
- MCPBench --MCP服务器基准测试
- mcp玩笑 --MCP服务器的Jest风格测试
局限性
- 需要交互式OAuth的服务器(例如Google Drive)需要在Observatory连接之前进行预身份验证
- 不支持自定义WebSocket传输(例如BrowserTools MCP)
- 一些服务器在init之前超时或关闭——请参阅 已知问题 和 兼容性
贡献
看 贡献.md 作为指导方针。最快的贡献方式是添加一个真正的通过目标,该目标具有独特的能力形状、更清晰的报告表面或更清晰的启动诊断。
______________________________________________________________________
如果Observatory为您保存了一个损坏的部署,请考虑给它一个 星它帮助其他人找到项目。
