模型上下文协议断路器

MCP协议的可编程安全层,检测并中断代理无限循环,防止"令牌燃烧"并保护下游SaaS API免受重复性自主故障影响。

  • by shailvshah
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 shailvshah/mcp-circuit-breaker

使用说明

mcp断路器

可编程安全层 模型上下文协议(MCP)。它检测并打破代理的无限循环,防止“令牌燃烧”,并保护下游SaaS API(Salesforce、Zendesk、Stripe)免受重复的自主故障。

🚀 特性

  • 传递代理:无缝封装任何现有的MCP服务器(stdio)。
  • 阈值监控:跟踪连续故障并使断路器跳闸,以阻止代理无限期重试。
  • 语义干预:向LLM返回“SYSTEM OVERRIDE”消息以强制其停止。
  • 自动重置(半开):自动测试电路在冷却期后是否可以关闭。
  • 可配置的:调整故障阈值、窗口大小和超时。
  • MIT许可证:开源,适合企业使用。

📦 安装

# Using pip
pip install mcp-circuit-breaker

# Using poetry
poetry add mcp-circuit-breaker

注意:此包当前是本地包。您可以从源代码安装它。

🛠 用法

“Sidecar”模式(企业最佳实践)

该项目允许您实施 侧车图案。您可以单独包装每个关键工具,而不是一个可能是单点故障的单一“通用网关”。这提供了:

  1. 孤立:如果 filesystem 断路器跳闸,你的 salesforce 工具继续工作。
  2. 精细安全:申请 STRICT 模式到敏感工具和 COOL-OFF 模式给别人。

快速启动(直观覆盖)

要使断路器“直观”(代理不可见),您可以将其配置为 替换 您的标准工具条目 claude_desktop_config.json.

示例:更换文件系统服务器

复制以下内容 manual_test_config.json (用自己的路径替换路径):

{
  "mcpServers": {
    "filesystem": {
      "command": "/path/to/mcp-circuit-breaker/.venv/bin/python",
      "args": ["-m", "mcp_circuit_breaker"],
      "env": {
        "DOWNSTREAM_COMMAND": "npx",
        "DOWNSTREAM_ARGS": "[\"-y\", \"@modelcontextprotocol/server-filesystem\", \"/Users/username/Desktop\"]",
        "CB_FAILURE_THRESHOLD": "3",
        "CB_RESET_TIMEOUT": "30"
      }
    }
  }
}

现在,每当克劳德试图使用 read_file 或 list_directory,它透明地穿过断路器。

配置(环境变量)

变量 默认值 描述
CB_FAILURE_THRESHOLD 5 跳闸前的最大连续故障数。
CB_WINDOW_SECONDS 60 速率限制的时间窗口。
CB_RESET_TIMEOUT 30 在尝试半开之前,在打开状态下等待几秒钟。
CB_MAX_REQUESTS_PER_WINDOW 10 窗口中允许的最大请求数。
DOWNSTREAM_COMMAND 必需 目标MCP服务器的可执行文件。
DOWNSTREAM_ARGS [] 目标服务器的参数(JSON列表或空格分隔)。

🏗 建筑

断路器位于客户端(Claude/Cursor)和服务器(SaaS工具)之间。

graph LR
    Client[Claude Desktop] -->|MCP| CB[Circuit Breaker]
    CB -->|MCP| SaaS[SaaS MCP Server]

    subgraph "Safety Logic"
    CB -- Monitor --> Store[State Store]
    Store -- Trip --> Intervention[Stop Signal]
    end

🎯 人学技能整合

断路器也可作为 独立人类学技能 它独立于MCP基础设施工作。

什么是人类学技能?

人类技能是Claude可以在所有环境(Claude.ai、ClaudeCode、API)中使用的结构化功能。断路器技能提供相同的保护模式,而不需要MCP设置。

使用技能

技能位于 src/skills/circuit-breaker/ 包括:

  • 技能.md:使用YAML frontmatter的主要技能文档
  • 脚本/:独立的验证和执行工具
  • 参考文献:详细的策略模式和错误目录
  • 资产/:即用型配置模板

快速入门(技能)

  1. 验证:测试配置

    cd src/skills/circuit-breaker
    python scripts/validate_config.py assets/config_template.json
    
  2. 执行:测试工具是否会被堵塞

    python scripts/apply_strategy.py \
      --config assets/config_template.json \
      write_file \
      --arguments '{"path": "/etc/passwd"}'
    

何时使用MCP与技能

功能 MCP服务器 拟人技能
用例 保护MCP工具调用 断路器通用指南
整合 MCP服务器中间件 独立或在Claude环境中
执行 自动拦截 手动应用或引导
最适合 生产MCP部署 开发、学习、非MCP用例

看 src/技能/断路器/README.md 获取详细的技能文档。

🤝 贡献

  1. 克隆仓库。
  2. 安装依赖项: poetry install.
  3. 运行测试: poetry run pytest.

📄 许可证

麻省理工学院