com. failecho/ failecho
by failecho.com · remote · local (npm, pypi) · no sign-in to list tools · v0.2.0 · published by com.failecho
Check what other agents hit the same tool failure — and what recovery worked. Ask before retrying.
4 tools: 4 change things.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things4Claude Code: ask: see these tools
- Only reads0Claude Code: allow
3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http failecho https://failecho.com/mcpFindings
Matches of fixed checks, with the text they matched.
The input schema at properties.operation.description names "mcp__github__create_issue", a tool on another server "github".
What this check looks forMatched text
inputSchema.properties.operation.description: "...ver names it, e.g. 'create_issue', not 'mcp__github__create_issue'."
The input schema at properties.operation.description names "mcp__github__create_issue", a tool on another server "github".
What this check looks forMatched text
inputSchema.properties.operation.description: "...ver names it, e.g. 'create_issue', not 'mcp__github__create_issue'."
The input schema at properties.operation.description names "mcp__github__create_issue", a tool on another server "github".
What this check looks forMatched text
inputSchema.properties.operation.description: "...ver names it, e.g. 'create_issue', not 'mcp__github__create_issue'."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
4 tools
Changes things 4Claude Code: ask
check_tool_failureUse FailEcho when another tool fails, before retrying blindly.1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The input schema at properties.operation.description names "mcp__github__create_issue", a tool on another server "github".
What this check looks forMatched text
inputSchema.properties.operation.description: "...ver names it, e.g. 'create_issue', not 'mcp__github__create_issue'."
Description, as the server wrote it Use FailEcho when another tool fails, before retrying blindly. Call this BEFORE retrying a failed tool, API or MCP call. Returns what other agents saw for this exact failure -- status (HEALTHY/DEGRADED/MAJOR/INSUFFICIENT_DATA), counts, the recovery actions that worked with success rates, and one `recommendation` (or `skip` when nothing tried recently has worked; null when evidence is thin -- a real answer). Works on your own history before anyone else joins. Free, anonymous, stores nothing, never rate limited.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
- readOnlyHint: true
report_recovery_outcomeAfter acting on a failure -- retry, wait, refresh_schema, reconnect, use_fallback, reauthenticate -- report whether it worked.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it After acting on a failure -- retry, wait, refresh_schema, reconnect, use_fallback, reauthenticate -- report whether it worked. Every recommendation others get is built from these. Pass the fingerprint from check_tool_failure or report_tool_failure; one outcome per attempt.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: false
report_tool_failureReport a failed tool/API/MCP call so others can recognise it; call after a failure, alongside check_tool_failure.1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Findings
- Warn
The input schema at properties.operation.description names "mcp__github__create_issue", a tool on another server "github".
What this check looks forMatched text
inputSchema.properties.operation.description: "...ver names it, e.g. 'create_issue', not 'mcp__github__create_issue'."
Description, as the server wrote it Report a failed tool/API/MCP call so others can recognise it; call after a failure, alongside check_tool_failure. PRIVACY: this is a shared network. Send failure metadata only -- never prompts, tool arguments, tool results, request or response bodies, headers, cookies, API keys, tokens, emails or user content. Error text is normalized server-side and the raw string discarded. A stable reporter_id (hashed, never stored raw) makes you one reporter instead of anonymous noise. Writes are rate limited per client.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: false
report_tool_successReport that a call SUCCEEDED.1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Findings
- Warn
The input schema at properties.operation.description names "mcp__github__create_issue", a tool on another server "github".
What this check looks forMatched text
inputSchema.properties.operation.description: "...ver names it, e.g. 'create_issue', not 'mcp__github__create_issue'."
Description, as the server wrote it Report that a call SUCCEEDED. Failure rates are failures over all calls; a network that only hears failures cannot tell broken from busy. No error data -- service, operation, version, latency.
Annotations the server declares
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
- readOnlyHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.2.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http failecho https://failecho.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [],
"ask": [
"mcp__failecho__check_tool_failure",
"mcp__failecho__report_tool_failure",
"mcp__failecho__report_tool_success",
"mcp__failecho__report_recovery_outcome"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as failecho. Review it before you use it.