mcpField
S
SelfHeal MCP

SelfHeal MCP

本地服务
freedomengineers.tech开发工具030 周前更新

关于 SelfHeal MCP

SelfHeal MCP 是为 MCP 服务添加重试、熔断器和调用指标的代理,适用于需要处理暂时性故障并查看目标状态的 Agent 环境。

主要功能

  1. 01通过退避重试暂时性故障
  2. 02用熔断器保护目标服务
  3. 03跟踪调用成功率、延迟和错误
  4. 04代理现有 MCP 服务
  5. 05查看并重置熔断状态

适用场景

  1. 01减少不稳定 API 调用造成的中断
  2. 02通过代理重新提供现有 MCP 服务
  3. 03查看调用指标和近期故障

MCP 相关

代理模式会封装现有 MCP 服务,并以重试和熔断机制重新提供其工具。自身的 MCP 工具支持 HTTP 调用、熔断控制、指标查看和近期错误详情。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"carsonroell-debug-selfheal": {
"command": "npx",
"args": [
"-y",
"selfheal-mcp"
],
"env": {
"SELFHEAL_CONFIG": "<SELFHEAL_CONFIG>",
"SELFHEAL_MAX_RETRIES": "<SELFHEAL_MAX_RETRIES>",
"SELFHEAL_CIRCUIT_THRESHOLD": "<SELFHEAL_CIRCUIT_THRESHOLD>"
}
}
}
}
启动命令npx -y selfheal-mcp
需要配置的环境变量
SELFHEAL_CONFIGPath to selfheal.config.json (optional, defaults to cwd)
SELFHEAL_MAX_RETRIESMax retry attempts per call (default: 3)
SELFHEAL_CIRCUIT_THRESHOLDFailures before circuit opens (default: 5)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmselfheal-mcp0.1.1

工具

5

收录的工具列表 · 更新于 3 周前

参数类型必填说明
urlstring否要调用的 URL(用于 HTTP 目标)
bodystring否请求正文(用于 POST/PUT/PATCH)
methodenum否HTTP 方法(默认值:GET)GET | POST | PUT | PATCH | DELETE
targetstring是目标服务的标识符(用于断路器跟踪)
headersobject否HTTP 标头
timeoutMsnumber否每次尝试的超时时间,单位为毫秒(默认值:30000)
descriptionstring是对此调用功能的通俗说明

详细介绍

SelfHeal MCP

npm License: MIT MCPize

用于 MCP 服务的自愈代理。为任何 MCP 工具调用添加自动重试、断路器保护和调用可观测性。

让你的 AI Agent 不再因不稳定的 API 而出错。

一键安装: 在 MCPize 上安装 | npx selfheal-mcp

功能

  • 退避重试 — 遇到暂时性故障(5xx、超时、速率限制)时,采用指数退避并加入抖动
  • 断路器 — 为每个目标单独设置断路器,避免持续调用不可用的服务
  • 调用指标 — 按工具和目标细分成功率、延迟和错误频率
  • 代理模式 — 透明封装任何现有 MCP 服务
  • 零配置 — 单独运行即可开箱即用;代理模式支持配置文件

快速开始

独立模式

添加到 Claude Desktop / Claude Code 配置中:

{
  "mcpServers": {
    "selfheal": {
      "command": "npx",
      "args": ["-y", "selfheal-mcp"]
    }
  }
}

然后使用 wrap_call 发起带自愈功能的任意 HTTP 请求:

Use the wrap_call tool to GET https://api.example.com/data with target "example-api"
代理模式

创建 selfheal.config.json:

{
  "mode": "proxy",
  "targets": [
    {
      "name": "my-server",
      "transport": "streamable-http",
      "url": "https://my-mcp-server.com/mcp"
    }
  ]
}
{
  "mcpServers": {
    "selfheal": {
      "command": "npx",
      "args": ["-y", "selfheal-mcp"],
      "env": {
        "SELFHEAL_CONFIG": "/path/to/selfheal.config.json"
      }
    }
  }
}

my-server 中的所有工具都会重新暴露,并内置自愈功能。

工具

工具描述
wrap_call执行 HTTP 调用,并启用重试和断路器
circuit_status检查任意目标的健康状态
circuit_reset修复问题后重置断路器
metrics成功率、延迟和主要错误
recent_errors查看近期故障及完整详情
代理模式新增工具
工具描述
selfheal_metrics所有代理调用的指标
selfheal_circuits所有目标的断路器状态
selfheal_recent_errors所有目标的近期错误

配置

环境变量
变量默认值描述
SELFHEAL_CONFIG./selfheal.config.json配置文件路径
SELFHEAL_MAX_RETRIES3最大重试次数
SELFHEAL_BASE_DELAY_MS1000退避的基础延迟
SELFHEAL_MAX_DELAY_MS30000最大延迟上限
SELFHEAL_CIRCUIT_THRESHOLD5触发断路器的失败次数
SELFHEAL_CIRCUIT_COOLDOWN_MS120000半开状态测试前的冷却时间

工作原理

Agent → SelfHeal MCP → [Retry + Circuit Breaker] → Target API/MCP Server
                ↓
          Metrics Collector
  1. 收到请求 — Agent 调用工具
  2. 检查断路器 — 如果目标失败次数过多,则立即拒绝请求
  3. 执行并重试 — 尝试调用,遇到暂时性错误时采用指数退避重试
  4. 记录指标 — 记录成功或失败、耗时和尝试次数
  5. 更新断路器 — 跟踪每个目标的连续失败次数

安装

MCPize(推荐)

一键安装并使用托管服务:在 MCPize 上安装

npm
npx selfheal-mcp
PyPI

不适用 — 这是一个 TypeScript 服务。Python 替代方案请参见 LeadEnrich MCP。

许可证

MIT — 由 Freedom Engineers 构建

相关项目

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。