Skip to main content

failecho-mcp

mcp-name: com.failecho/failecho

Stdio MCP server that relays to FailEcho: before your agent retries a failed tool, check what other agents already tried and whether it worked.

For hosts that can only start a local process. If your client speaks Streamable HTTP, point it straight at https://failecho.com/mcp instead -- this package exists for the ones that cannot.

uvx failecho-mcp
{
  "mcpServers": {
    "failecho": { "command": "uvx", "args": ["failecho-mcp"] }
  }
}

Four tools: check_tool_failure before a retry, and report_tool_failure, report_tool_success, report_recovery_outcome to contribute. No account, no API key. Set FAILECHO_URL to relay to your own server instead.

The relay stores nothing itself.

Proxy: FailEcho in front of your other MCP servers

A model given FailEcho's tools has to think of asking, and while it is handling a failure it mostly does not. The proxy puts the answer where the model is already looking. Wrap the command a client would start:

{
  "mcpServers": {
    "github": {
      "command": "uvx",
      "args": ["failecho-mcp", "proxy", "--", "npx", "-y", "@modelcontextprotocol/server-github"]
    }
  }
}

or a remote server (a header token works; OAuth does not -- connect those directly):

uvx failecho-mcp proxy --header "Authorization: Bearer $TOKEN" -- https://mcp.example.com/mcp

Every message passes through unchanged, as the same bytes, except the response to a tool call that failed. That one gets one line added:

FailEcho: try backoff, worked 128/251 (confidence 0.61).

-- or no clear fix yet; other agents tried ..., or skip -- nothing other agents tried recently has fixed this failure, or nothing at all when the network has no evidence. Nothing is acted on for you.

Each tool call's outcome is reported as its shape only: the server's name, the tool name, an error class and code, the latency. Never arguments, results or the error text. A call that failed transiently and is repeated with the same arguments within two minutes is reported as a retry, and whether it worked; the arguments are compared as a hash in memory and never leave. Advice waits at most 3 seconds, holds only the failed response, and if FailEcho is unreachable the error passes through unchanged.

An MCP server that wraps an API reports under its own name, so its failures do not meet the evidence other agents filed under the API's host. Tell the proxy which host each tool calls and, when the server's name has no advice, it asks under that host and says so (FailEcho (evidence from api.github.com): ...). Reports stay under the server's name.

uvx failecho-mcp proxy --upstream 'github_*=api.github.com' --upstream 'pypi_*=pypi.org' -- <server>

A bare host (--upstream api.example.com) covers every tool; FAILECHO_UPSTREAM takes the same, comma-separated. The GitHub MCP server's own names map to api.github.com without being told.

Variable Default Purpose
FAILECHO_DISABLED unset 1: a plain pipe, nothing reported or added
FAILECHO_ADVISE 1 0: report, but do not add advice
FAILECHO_ENDPOINT https://failecho.com Network to report to and read from
FAILECHO_REPORTER_ID random per run Stable id, so your machine counts as one reporter

MIT.

Metadata

Release files for failecho-mcp 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for failecho-mcp 0.2.2
File Size Uploaded
failecho_mcp-0.2.2.tar.gz 12.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for failecho-mcp 0.2.2
File Interpreter ABI Platform
failecho_mcp-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 27.3 kB

Release files / failecho_mcp-0.2.2.tar.gz

Download URL failecho_mcp-0.2.2.tar.gz
Size 12.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c6f8a2f2c9721e74665a2c76982200d63dd4146d3e4f905d0d59eedbad3c0e67
BLAKE2b-256 checksum
How to use checksums
ad18c1f9d326f88cb9b5556a5098ed4eb28cbc8941284a7461b0ed418e297590
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / failecho_mcp-0.2.2-py3-none-any.whl

Download URL failecho_mcp-0.2.2-py3-none-any.whl
Size 14.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f6a9b42f38da15cca889b44a7b3cee681ca4473161f84bb15ba16cf2a4ed8edf
BLAKE2b-256 checksum
How to use checksums
662538bc074a1ba5bb827c8486536c1f285fbfb52d2e22aa1e38caa373eeff1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

0.2.3

2 release files

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page