关于 Silentfail
SilentFail 是用于诊断 MCP 配置的命令行工具和 MCP 服务,支持多种客户端。它检查服务健康状况、测试工具、审计 token 成本、发现名称冲突,并扫描配置和架构中的安全风险。
主要功能
- 01发现 MCP 客户端配置
- 02检查服务健康状况和启动时间
- 03使用推断参数测试工具
- 04测量 token 成本并发现冲突
- 05扫描安全风险
适用场景
- 01查找本地 MCP 配置中的故障服务
- 02在依赖工具前验证其是否可用
- 03检查 token 开销和工具名称冲突
- 04扫描服务配置中的提示注入模式
MCP 相关
作为 MCP 服务,SilentFail 提供扫描 MCP 服务和打开仪表板的工具。它也可作为命令行工具运行诊断并输出 JSON。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
你的 MCP 服务正在出故障,只是你还不知道。
你连接的每个工具都会在你开始输入之前消耗令牌。服务故障时会悄无声息地失效。 SilentFail 会找出问题所在——一次扫描即可完成健康检查、令牌审计和安全扫描。
问题所在
你将 MCP 服务连接到 Claude、Cursor、VS Code。它们出了故障——没有日志,没有警告,你也无从得知哪个服务运行缓慢、已经停止,或正在耗尽整个上下文窗口。
每个连接的服务都有令牌成本。在对话开始之前,Claude 就会读取所有工具架构。五个服务各有 20 多个工具,光是待在那里就可能消耗 5,000 多个令牌。如果其中某个服务包含带有提示词注入的恶意工具描述?你根本不会察觉。
SilentFail 的功能
| 发现 | 查找 Claude Desktop、Claude Code、Cursor、VS Code、Windsurf 和项目级文件中的所有 MCP 配置 |
| 连接 | 启动每个服务、测量启动时间并列出所有工具 |
| 测试 | 使用智能推断的参数调用每个工具,验证其是否正常工作 |
| 审计 | 计算每个服务和每个工具的准确令牌成本 |
| 检测 | 查找不同服务之间的工具名称冲突 |
| 扫描 | 检查 50 多种安全模式——提示词注入、数据外泄、危险命令、编码载荷 |
| 报告 | 在 CLI、聊天或可视化仪表板中提供清晰、可执行的输出 |
快速开始
git clone https://github.com/decksaga/silentfail.git
cd silentfail
npm install
npm run build
SilentFail 支持两种模式:MCP 服务(Claude 自行扫描)或 CLI(通过终端运行)。
模式 1:MCP 服务(推荐)
将 SilentFail 添加到 Claude Desktop 配置中,让 Claude 诊断自身设置。
claude_desktop_config.json
{
"mcpServers": {
"silentfail": {
"command": "node",
"args": ["/absolute/path/to/silentfail/dist/server.js"]
}
}
}
这个文件在哪里?
| 操作系统 | 路径 |
|---|---|
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Linux | ~/.config/claude/claude_desktop_config.json |
然后重启 Claude Desktop 并询问:
“扫描我的 MCP 服务”
Claude 会调用扫描工具,获取完整的诊断报告,并使用你提问时所用的语言呈现结果。首次使用时,它会询问你想在聊天中查看结果,还是使用可视化 Web 仪表板。它会记住你的偏好。
提供的工具
| 工具 | 描述 |
|---|---|
scan_mcp_servers | 完整诊断:健康状况、令牌、冲突、安全性和建议。将 test_tools: true 设置为验证每个工具是否正常工作。 |
open_silentfail_dashboard | 运行扫描并在 localhost:3777 打开交互式 Web 仪表板 |
模式 2:CLI
直接在终端运行,快速诊断或集成到 CI 中。
silentfail # Quick health check
silentfail --test # Full scan + call each tool to verify
silentfail --dashboard # Open visual web dashboard
silentfail --json # JSON output for scripts/CI
silentfail --help # All options
如需将 silentfail 用作全局命令:
npm link
输出示例
SilentFail — Scan Report
──────────────────────────────────────────────────
OVERVIEW
──────────────────────────────────────────────────
Configs found: 3 (Claude Desktop, Claude Code, Cursor)
Servers: 4 healthy, 1 failed
Total tools: 23
Schema tokens: ~4,812 (consumed before you type anything)
Conflicts: 1
Scan time: 6204ms
market-pulse OK
Response: 412ms
Tokens: ~651 (8 tools, ~81 per tool)
Tools:
get_price (110 tok) passed
get_stock_price (94 tok) passed
get_market_summary (69 tok) passed
broken-server ERROR
Error: Script not found: /old/path/server.js
TOKEN BUDGET
──────────────────────────────────────────────────
browser-tools ████████████░░░░░░░░ 2,340 tok (49%)
file-system ██████░░░░░░░░░░░░░░ 1,180 tok (25%)
market-pulse ███░░░░░░░░░░░░░░░░░ 651 tok (14%)
SECURITY SCAN
──────────────────────────────────────────────────
Risk level: CLEAN
Scanned: 4 server(s), 23 tool(s)
No security issues detected.
RECOMMENDATIONS
──────────────────────────────────────────────────
[broken-server] Server is broken: Script not found.
Fix the configuration or remove this server.
[browser-tools] Heavy schema cost: ~2,340 tokens for 12 tools.
Consider if you use all 12. Each unused tool wastes context.
[market-pulse] Healthy and efficient. 8 tools, ~651 tokens.
## 智能工具测试
SilentFail 不只是检查服务是否响应——它会调用每个工具。
它会读取架构、推断有效的测试输入(股票使用 AAPL,外汇使用 USD/EUR,加密货币使用 bitcoin),调用工具,并对结果进行分类:
| 结果 | 含义 |
|---|---|
| 通过 | 工具正常运行并返回了数据 |
| 故障 | 运行时错误——工具已失效 |
| 拒绝 | 工具正常运行,但拒绝了测试输入(验证功能正常) |
| 已跳过 | 无法推断安全参数——建议手动测试 |
| 超时 | 响应耗时过长 |
如果它报告故障,那就是真的故障,不会误报。
安全扫描
每次扫描都会自动根据 50 多种模式检查所有服务配置和工具架构:
| 类别 | 示例 |
|---|---|
| 提示词注入 | ignore previous instructions、伪造的系统提示词、角色劫持、提示词泄露 |
| 数据外泄 | 可疑 URL、POST 请求、Webhook 端点、先进行 Base64 编码再发送 |
| 危险命令 | eval()、rm -rf、反向 Shell、child_process 生成的进程 |
| 敏感环境变量 | 服务配置中的 AWS 密钥、API 令牌、数据库凭据 |
| 编码载荷 | 使用 Base64、十六进制、Unicode、HTML 实体隐藏恶意内容 |
SECURITY SCAN
──────────────────────────────────────────────────
Risk level: CRITICAL
Scanned: 3 server(s), 15 tool(s)
[CRITICAL] shady-server -> execute_query
Tells the model to ignore previous instructions
Evidence: "ignore all previous instructions and..."
Remove this server immediately.
Token 预算说明
你连接的每个 MCP 工具都有一个 JSON 架构,Claude 会在对话开始前读取它。这一过程是不可见的——没有界面,也不会发出警告。
SilentFail 会测量每个服务和每个工具的确切 Token 开销,让你了解:
- 哪些服务占用的上下文最多
- 哪些工具值得保留
- 哪些地方浪费了 Token,用在你从不使用的工具上
整洁且 Token 开销低的配置,意味着能为实际工作留出更多上下文。
可视化仪表板
运行 --dashboard(CLI),或让 Claude 执行 open_silentfail_dashboard(MCP 模式),即可打开交互式 Web UI:
- 显示状态指示器的服务健康卡片
- 使用渐变条展示 Token 预算
- 按工具显示带有通过/失败徽章的测试结果
- 显示严重级别的安全问题
- 语言切换(English / Español)
服务运行于 localhost:3777。深色主题。无外部依赖。
支持的客户端
SilentFail 会自动发现所有主流 MCP 客户端的配置:
| 客户端 | 配置路径 |
|---|---|
| Claude Desktop | %APPDATA%/Claude/claude_desktop_config.json |
| Claude Code | ~/.claude/settings.json |
| Cursor | ~/.cursor/mcp.json |
| VS Code | ~/.vscode/mcp.json |
| Windsurf | ~/.windsurf/mcp.json |
| 项目级 | .mcp.json、.claude/settings.json |
架构
Discovery Connect Test Tools Security Report
┌─────────────┐ ┌──────────────┐ ┌───────────────┐ ┌──────────────┐ ┌──────────────┐
│ Find configs │──>│ Spawn each │─>│ Infer params │>│ 50+ patterns │─>│ CLI output │
│ across all │ │ MCP server │ │ from schema │ │ Injection, │ │ MCP report │
│ clients │ │ via stdio │ │ Call & verify │ │ exfil, etc. │ │ Dashboard │
└─────────────┘ └──────────────┘ └───────────────┘ └──────────────┘ └──────────────┘
关键文件:
src/
discovery.ts — Config auto-detection across all clients
scanner.ts — Server connection, tool listing, testing
security.ts — Pattern-based security analysis (50+ rules)
server.ts — MCP server mode (Claude Desktop integration)
dashboard.ts — Web dashboard with i18n (EN/ES)
index.ts — CLI entry point
types.ts — TypeScript interfaces
常见问题
SilentFail 会扫描自身吗?
不会。作为 MCP 服务运行时,SilentFail 会自动将自身排除在扫描范围之外,以避免递归。
运行工具测试安全吗?
安全。SilentFail 只会使用只读、最小化的测试输入调用工具(股票代码、货币代码)。它绝不会发送破坏性操作。如果无法推断安全参数,就会跳过该工具。
可以在 CI 中使用吗?
可以。使用 silentfail --test --json 获取机器可读的输出。解析 JSON 即可执行自动化检查。
需要哪个 Node 版本?
Node 18 或更高版本。使用 ES 模块和 MCP SDK。
许可证
MIT——你可以随意使用。
由 @decksaga 构建
停止猜测,开始扫描。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。