failecho
Server Details
Check what other agents hit the same tool failure — and what recovery worked. Ask before retrying.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- FailEcho/failecho
- GitHub Stars
- 2
- Server Listing
- FailEcho
TDQS
Scored across 4 tools
The four tools have largely distinct roles: check failure, report failure, report success, and report recovery outcome. However, report_recovery_outcome and report_tool_success can overlap when a retry succeeds, causing potential confusion about which to call.
All tool names follow a consistent verb_noun snake_case convention (check_tool_failure, report_tool_failure, report_tool_success, report_recovery_outcome). No deviations.
Four tools are well-scoped for a failure intelligence service: one read and three write operations covering the core telemetry loop. Each earns its place.
The surface covers the essential operations: check for failure intelligence, report failures, report successes, and report recovery outcomes. No obvious gaps for the stated purpose.
Available Tools
4 toolscheck_tool_failureCheck what the network knows about a tool failureAInspect
Use FailEcho when another tool fails, before retrying blindly.
Use this tool when another tool, API call, or MCP server operation fails. It checks whether other autonomous systems recently experienced the same failure and returns current failure intelligence, known recovery actions, and confidence based on observed outcomes.
Call it BEFORE retrying. A retry that is failing for every other agent right now is a retry you can skip, and the network often knows a specific action that works instead (refresh a stale tool schema, fall back to another provider, reconnect, wait).
Returns: status (HEALTHY / DEGRADED / MAJOR / INSUFFICIENT_DATA), how many observations and distinct reporters have seen this exact failure in the last 5 minutes and hour, the current failure rate for the service+operation, every recovery action other agents tried with its success rate, and a single recommendation when the evidence supports one.
recommendation is null when evidence is insufficient -- that is a real answer, not an error. Confidence is a Wilson score lower bound computed from observed attempts; it is never generated by a model. Check demo_data_included: when true, synthetic demo rows are part of the numbers. evidence_sources says who saw it: 'agent' means independent agents; 'first_party' alone means only FailEcho's own agents, so weigh it as one reporter's experience.
Reading is free, anonymous, unauthenticated and never rate limited, and this call stores nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes | What was called, named the way other agents will name it: an MCP server's own name (the one it reports in serverInfo.name), or an HTTP API's host, e.g. 'api.github.com'. Not your client's local alias for it. | |
| version | No | Version of the failing service/tool, if known. | |
| operation | Yes | The tool or endpoint exactly as the server defines it, e.g. 'create_issue' -- without client prefixes such as 'mcp__github__'. | |
| error_code | No | Protocol/vendor code, e.g. '422', 'ECONNRESET'. | |
| error_type | No | Short failure class, e.g. 'validation_error', 'timeout', 'rate_limit', 'auth_error'. | |
| reporter_id | No | Optional stable identifier for your agent. Salted and hashed on arrival and never stored by this call; it only lets FailEcho tell whether the evidence it just gave you came from a different reporter. | |
| schema_hash | No | Short hash of the tool schema you used. Lets FailEcho separate 'the API broke' from 'your tool schema is stale'. | |
| error_message | No | The error text you received. Normalized server-side (identifiers replaced, credential-shaped substrings redacted) and never stored by this call. Do not include prompts, tool arguments, secrets or user content. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden and does: read-only, free, anonymous, unauthenticated, never rate limited, stores nothing, plus null-recommendation semantics, Wilson-score confidence provenance, demo_data_included, and evidence_sources weighting. This is unusually complete disclosure for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the trigger and the pre-retry rule, then structured into behavior and return-field paragraphs, all of which are substantive. It runs long, and the return-value paragraph partly duplicates an output schema that already exists, costing it the top mark.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An 8-parameter, evidence-interpretation tool with an output schema; the description supplies the interpretive context an agent needs (what HEALTHY/DEGRADED mean, when recommendation is null, how to weigh first_party vs agent sources) rather than relying on raw fields. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the parameter docs are detailed (naming conventions, redaction, schema_hash purpose), so the schema already does the heavy lifting. The description itself adds almost nothing about parameters beyond reinforcing 'service + operation' — baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('check whether other autonomous systems recently experienced the same failure' and return failure intelligence), and its 'reading is free... stores nothing' framing implicitly separates it from the report_* siblings, which are writes. An agent can tell what this does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit trigger ('when another tool, API call, or MCP server operation fails'), explicit ordering ('call it BEFORE retrying'), and an explicit alternative — blind retry — with the condition that makes skipping it correct. Nothing about when to invoke is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_recovery_outcomeReport whether a recovery action workedAInspect
After you acted on a known failure -- retried, waited, refreshed a stale schema, reconnected, fell back to another provider -- report whether it actually resolved the problem.
This is the highest-value telemetry in the network: it is the difference between 'everyone is failing' and 'everyone is failing, and refreshing the schema fixes it'. Every recommendation other agents receive is built from these reports.
Pass the fingerprint returned by check_tool_failure or report_tool_failure. Common actions: retry, wait, refresh_schema, remove_optional_field, reconnect, use_fallback, reauthenticate, abort. Report one outcome per attempt, not one per retry-loop iteration: a single reporter contributes at most 5 attempts per hour to any action's confidence.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | What you tried, e.g. 'refresh_schema'. Lowercase, [a-z0-9_.-], spaces become underscores. | |
| successful | Yes | True when the action resolved the failure. | |
| fingerprint | Yes | Fingerprint from check_tool_failure or report_tool_failure (32 lowercase hex characters). | |
| reporter_id | No | Optional stable agent id; hashed, never stored raw. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it delivers: it discloses that reports feed downstream recommendations, that each attempt should be reported separately, and that contributions are rate-limited per action. It also frames the tool as telemetry, which makes the side effect of calling it clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the tool's purpose and remains focused: the first sentence states exactly when to call it, and later sentences justify the telemetry value, enumerate common actions, and set rate expectations. It is longer than a minimal description, but the added sentences all carry operational guidance rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter telemetry tool with full schema coverage and an output schema, this description is complete: an agent knows when to call it, what to pass, what action values exist, how to avoid duplicate reports, and the rate limit. The only minor omission is an explicit alternative to report_tool_success, but that does not block correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description adds value above the schema by listing canonical action values, explaining that the fingerprint must come from check_tool_failure or report_tool_failure, and linking the action parameter to per-hour confidence accumulation. It does not duplicate parameter formats, letting the schema handle syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: it instructs the agent to report whether a recovery action resolved a known failure, and it ties the report to a fingerprint from check_tool_failure or report_tool_failure. This clearly differentiates the tool from the sibling failure-reporting tools: check/report_tool_failure record the failure itself, while this records the outcome of the attempted fix.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies the exact trigger ('After you acted on a known failure'), what to pass (the fingerprint), and common action values to report. It also sets rate and granularity guidance ('one outcome per attempt', 'at most 5 attempts per hour'), though it does not explicitly state when to prefer report_tool_success over this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_tool_failureReport a failed tool call to the networkAInspect
Anonymously contribute a tool/API/MCP failure to FailEcho so other autonomous systems can recognise it. Call this whenever a tool call fails, after (or alongside) check_tool_failure.
PRIVACY -- this is a shared public network. Send failure metadata ONLY. Never include prompts, model messages, tool arguments, tool results, request or response bodies, HTTP headers, cookies, API keys, tokens, customer names, emails or any user content. The error message is normalized server-side (numbers, UUIDs, emails, URLs, IPs and tokens replaced with placeholders; credential-shaped substrings redacted) and the raw text is discarded, but that is a safety net, not a licence to send sensitive data.
Pass a stable reporter_id if you can: it is salted and hashed before storage, is never stored raw, and lets the network count you as one independent reporter instead of anonymous noise. Writes are rate limited per client.
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes | What was called, named the way other agents will name it: an MCP server's own name (the one it reports in serverInfo.name), or an HTTP API's host, e.g. 'api.github.com'. Not your client's local alias for it. | |
| version | No | Version of the service/tool. | |
| operation | Yes | The tool or endpoint exactly as the server defines it, e.g. 'create_issue' -- without client prefixes such as 'mcp__github__'. | |
| error_code | No | Protocol/vendor code, e.g. '422'. | |
| error_type | No | Short failure class, e.g. 'validation_error'. | |
| latency_ms | No | Observed call latency in milliseconds. | |
| reporter_id | No | Optional stable identifier for your agent. Salted and hashed on arrival; never stored raw. | |
| schema_hash | No | Short hash of the tool schema used. | |
| error_message | No | Error text. Normalized before storage; no secrets please. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so well: it discloses anonymous public contribution, server-side normalization of error text, discarding of raw text, salted-hashed reporter_id storage, per-client rate limits, and what must never be sent. These are exactly the traits an agent needs before invoking a write to a shared network.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then usage, then privacy, then parameter notes — a sensible order. The privacy paragraph is long but each clause (banned categories, server-side normalization limits, the 'safety net, not a licence' caveat) earns its place; still, the block could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
9 parameters, 2 required, an output schema present (so return values need no explanation) and no annotations — the description fills the gaps that matter: privacy boundaries, rate limiting, normalization behavior, and the identity semantics of reporter_id. An agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; however the description adds meaning beyond the schema by explaining the purpose of reporter_id (salted/hashed, counts you as one independent reporter rather than anonymous noise), the normalization applied to error_message, and the privacy constraints on all fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (anonymously contribute) and resource (a tool/API/MCP failure to FailEcho) plus the benefit to other agents. It is clearly separable from the sibling check_tool_failure, which it names as a companion query rather than a duplicate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The trigger is explicit: 'Call this whenever a tool call fails, after (or alongside) check_tool_failure.' That gives a clear condition and ordering relative to one sibling, but it never states when NOT to use it or how it differs from report_tool_success / report_recovery_outcome, so the routing guidance is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_tool_successReport a successful tool call to the networkAInspect
Report that a tool call SUCCEEDED. This matters more than it sounds: a failure rate is failures divided by total calls, so a network that only hears about failures cannot tell a broken service from a busy one, and every status it reports would be wrong.
Cheap to call and carries no error data at all -- just which service/operation/version succeeded and how long it took. Same privacy rules apply: metadata only, never arguments or results.
| Name | Required | Description | Default |
|---|---|---|---|
| service | Yes | What was called, named the way other agents will name it: an MCP server's own name (the one it reports in serverInfo.name), or an HTTP API's host, e.g. 'api.github.com'. Not your client's local alias for it. | |
| version | No | Version of the service/tool. | |
| operation | Yes | The tool or endpoint exactly as the server defines it, e.g. 'create_issue' -- without client prefixes such as 'mcp__github__'. | |
| latency_ms | No | Observed call latency in milliseconds. | |
| reporter_id | No | Optional stable agent id; hashed, never stored raw. | |
| schema_hash | No | Short hash of the tool schema used. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does real work: it declares the call is cheap, carries no error payload, transmits metadata only, and never sends arguments or results. It omits auth/permission requirements, idempotency or duplicate-report behavior, and any rate-limit context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action, then rationale, then payload/privacy constraints — a sensible order. The middle sentence is somewhat discursive ('This matters more than it sounds...'), but it earns its place by justifying the tool's existence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, and the privacy boundary (metadata only, never arguments or results) is stated explicitly. For a 6-parameter telemetry write tool with no annotations, the description is nearly sufficient; only permission/rate-limit behavior is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters including naming conventions and hashing. The description's summary of what is carried (service/operation/version/latency) adds only framing, not new parameter semantics. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Report that a tool call SUCCEEDED'), which is directly distinguishable from the siblings report_tool_failure and check_tool_failure. An agent can pick this tool without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The explanation of why success reporting matters (failure rate is failures/total, so failure-only reporting produces wrong statuses) effectively tells the agent to report on success, not just failure, which is the key routing decision against its siblings. It stops short of an explicit 'call this after every successful call, including on retries' rule or naming the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
check_tool_failure2 fields changed- changed
Input schema / properties / operation / descriptionPrevious value: -"Operation/tool name that failed, e.g. 'create_issue'."New value: +"The tool or endpoint exactly as the server defines it, e.g. 'create_issue' -- without client prefixes such as 'mcp__github__'." - changed
Input schema / properties / service / descriptionPrevious value: -"Tool/service identifier, e.g. 'github-mcp'."New value: +"What was called, named the way other agents will name it: an MCP server's own name (the one it reports in serverInfo.name), or an HTTP API's host, e.g. 'api.github.com'. Not your client's local alias for it."
- Changed
report_tool_failure2 fields changed- changed
Input schema / properties / operation / descriptionPrevious value: -"Operation that failed."New value: +"The tool or endpoint exactly as the server defines it, e.g. 'create_issue' -- without client prefixes such as 'mcp__github__'." - changed
Input schema / properties / service / descriptionPrevious value: -"Tool/service identifier."New value: +"What was called, named the way other agents will name it: an MCP server's own name (the one it reports in serverInfo.name), or an HTTP API's host, e.g. 'api.github.com'. Not your client's local alias for it."
- Changed
report_tool_success2 fields changed- changed
Input schema / properties / operation / descriptionPrevious value: -"Operation that succeeded."New value: +"The tool or endpoint exactly as the server defines it, e.g. 'create_issue' -- without client prefixes such as 'mcp__github__'." - changed
Input schema / properties / service / descriptionPrevious value: -"Tool/service identifier."New value: +"What was called, named the way other agents will name it: an MCP server's own name (the one it reports in serverInfo.name), or an HTTP API's host, e.g. 'api.github.com'. Not your client's local alias for it."
4 tool updates
- First observed
check_tool_failure - First observed
report_recovery_outcome - First observed
report_tool_failure - First observed
report_tool_success
Related MCP Connectors
Never let your agent repeat a bug or linger on a known issue. Search 385+ failure lessons to skip known errors instantly.
Deterministic next-step decisions after failed API, MCP, automation, or AI-agent actions.
Structured failure knowledge for AI agents — dead ends, workarounds, error chains
What other agents already tried against your build error, which attempt worked, and the dead ends
Related MCP Servers
- FlicenseAqualityCmaintenancePrevents coding agents from repeatedly attempting the same failed fix by tracking attempts and blocking further fixes until the agent uses its own web search tool.4-
- AlicenseAqualityAmaintenanceAgent failure memory network. Search 235+ verified debugging lessons from real engineering sessions. Includes guided prompts for failure triage and release auditing.941491Apache 2.0
- AlicenseAqualityCmaintenanceIt enables AI agents to recover from failures by diagnosing issues, refocusing broad tasks, restoring session context, and managing retries safely with bounded memory and credential redaction.6MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to query a registry of documented AI-agent failures for debugging incidents, deployable on Cloudflare Workers.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.