Skip to main content
Glama

SelfHeal MCP

npm License: MIT MCPize

Self-healing proxy for MCP servers. Wraps any MCP tool call with automatic retry, circuit breaker protection, and call observability.

Your AI agents stop breaking on flaky APIs.

One-click install: Install on MCPize | npx selfheal-mcp

Features

  • Retry with backoff — Exponential backoff + jitter on transient failures (5xx, timeouts, rate limits)

  • Circuit breaker — Per-target circuit breaker stops hammering dead services

  • Call metrics — Success rates, latency, error frequency, broken down by tool and target

  • Proxy mode — Wrap any existing MCP server transparently

  • Zero config — Works standalone out of the box, config file for proxy mode

Related MCP server: sovereign-mcp-gateway

Quick Start

Standalone Mode

Add to your Claude Desktop / Claude Code config:

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

Then use wrap_call to make any HTTP request with self-healing:

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

Proxy Mode

Create 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"
      }
    }
  }
}

All tools from my-server are re-exposed with self-healing built in.

Tools

Tool

Description

wrap_call

Execute HTTP call with retry + circuit breaker

circuit_status

Check health of any target

circuit_reset

Reset circuit breaker after fixing issues

metrics

Success rates, latency, top errors

recent_errors

Recent failures with full details

Proxy Mode Adds

Tool

Description

selfheal_metrics

Metrics for all proxied calls

selfheal_circuits

Circuit status for all targets

selfheal_recent_errors

Recent errors across all targets

Configuration

Environment Variables

Variable

Default

Description

SELFHEAL_CONFIG

./selfheal.config.json

Config file path

SELFHEAL_MAX_RETRIES

3

Max retry attempts

SELFHEAL_BASE_DELAY_MS

1000

Base delay for backoff

SELFHEAL_MAX_DELAY_MS

30000

Max delay cap

SELFHEAL_CIRCUIT_THRESHOLD

5

Failures before circuit opens

SELFHEAL_CIRCUIT_COOLDOWN_MS

120000

Cooldown before half-open test

How It Works

Agent → SelfHeal MCP → [Retry + Circuit Breaker] → Target API/MCP Server
                ↓
          Metrics Collector
  1. Request arrives — Agent calls a tool

  2. Circuit check — If target has failed too many times, reject immediately

  3. Execute with retry — Try the call, retry on transient errors with exponential backoff

  4. Record metrics — Log success/failure, duration, attempts

  5. Update circuit — Track consecutive failures per target

Install

One-click install with managed hosting: Install on MCPize

npm

npx selfheal-mcp

PyPI

Not applicable — this is a TypeScript server. For Python alternatives, see LeadEnrich MCP.

License

MIT — Built by Freedom Engineers

Available Tools

5 tools
circuit_resetReset Circuit BreakerA
Idempotent

Reset a circuit breaker back to closed (healthy). Use after fixing the underlying issue.

Inputs: target.

circuit_statusCircuit Breaker StatusA
Read-only

Check the health status of a target. Returns circuit state, failure count, and cooldown.

Inputs: target.

metricsCall MetricsA
Read-only

Get observability metrics — success rates, latency, top errors, breakdown by tool and target.

Inputs: windowMinutes.

recent_errorsRecent ErrorsA
Read-only

Get the most recent failed calls with full error details and retry logs.

Inputs: limit.

wrap_callSelf-Healing Function CallA

Execute a function call with retry, circuit breaker, and metrics. Pass a target name and the function will be retried on transient failures. Use this to wrap any unreliable external call.

Inputs: target (required), description (required), url, method, +3 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool has a clear, distinct purpose. circuit_reset and circuit_status are for circuit breaker state management, metrics for system observability, recent_errors for error inspection, and wrap_call for executing calls with resilience. There is no overlap or ambiguity between them.

    Naming Consistency3/5

    The naming uses snake_case but mixes patterns: some tools start with a noun (circuit_*), some with an adjective (recent_errors), and one with a verb (wrap_call). While readable, the lack of a consistent verb_noun or noun_verb pattern reduces predictability.

    Tool Count4/5

    With 5 tools, the server covers the essential resilience operations without being bloated. The number is appropriate for a focused self-healing utility, though a few additional tools (e.g., for configuration) could be added without harm.

    Completeness4/5

    The tool set covers the core lifecycle of circuit breakers, error tracking, and metrics. However, it lacks configuration tools for setting circuit breaker parameters or managing targets, which might be needed for full autonomy.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      An MCP proxy that enforces policy on every tool call, blocking or flagging actions before they reach downstream MCP servers.
      1
      62 npm
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Provides a governance proxy layer for MCP servers, enforcing per-tool allowlists, human approval for write operations, quotas, secret redaction, and a hash-chained audit log of all calls.
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Proxies MCP traffic between a client and a downstream server to enforce runtime policies on tool declarations, call arguments, and results, including allowlisting, sandboxing, secret and egress controls, and injection detection. It also includes a deterministic benchmark for measuring which security controls stop which attacks.
      MIT