Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "check_tool_failure", "report_recovery_outcome", "report_tool_failure" and 1 more
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false}Changed the definition of "check_tool_failure", "report_recovery_outcome", "report_tool_failure" and 1 more
{"properties":{"error_code":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Code, e.g. '422', 'ECONNRESET'."},"error_message":{"anyOf":[{"maxLength":200032,"type":"string"},{"type":"null"}],"defaulterror_message":null,{"description":"The error text only; normalized server-side, not stored by this call."},"error_type":{"anyOf":[{"maxLength":642000,"type":"string"},{
Changed the definition of "check_tool_failure", "report_recovery_outcome", "report_tool_failure" and 1 more
Use FailEcho when another tool fails, before retrying blindly.Usethis 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.Callitthis BEFOREretrying. 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 (refreshretrying astalefailed toolschema,fall back toAPIanotherorprovider,
Changed the definition of "check_tool_failure"
⟨234 unchanged words⟩ ":"Service","type":"string"},"verbose":{"default":false,"description":"Return the full record (timestamps, per-window rates, effective counts, every action). Default false: the compact answer an agent acts on, about a quarter of the tokens.","title":"Verbose","type":"boolean"},"version":{"anyOf":[{"maxLength":64, ⟨23 unchanged words⟩
Verified owner set by dns_txt proof on failecho.com
pypi:failecho-mcp (package_pypi) — from mcp_registry
npm:failecho-mcp (package_npm) — from mcp_registry
Changed the definition of "check_tool_failure"
⟨207 unchanged words⟩ , so weigh it as one reporter's experience. This works before any other agent has joined: five attempts back a recommendation and all five can be your own. `recommendation.from_other_agents` tells you which -- false means your own history is answering you, true means somebody else's did. Pass `reporter_id` if you want that distinction; it is salted and hashed on arrival. Reading is free, anonymous, unauthenticated and never ⟨7 unchanged words⟩
Certificate recorded, valid to 2026-12-09
Authorization not required
First tool surface recorded: 4 tools (server version 0.1.0)
Showing the latest 11 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨29 unchanged words⟩ ,"type":"string"},"reporter_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Optional stable agent id; hashed, never stored raw.","maxLength":200,"type":"string"},"successful":{"description":"True when ⟨13 unchanged words⟩
{"properties":{"error_code":{"anyOf":[{"maxLength":32,"type":"string"},{"type":"null"}],"default":null,"description":"Protocol/vendor code, e.g. '422'."},"error_message":{"anyOf":[{"maxLength":200032,"type":"string"},{"type":"null"}],"defaulterror_message":null,{"description":"Error text. Normalized before storage; no secrets please."},"error_type":{"anyOf":[{"maxLength":642000,"type":"string"},{"type":"null"}],"defaulterror_type":null,{"description":"Short failure class, e.g. 'validation_error'."},"latency_ms":{"anyOf":[{"minimum":0,"typemaxLength":"integer"}64,{"type":"nullstring"}],"defaultlatency_ms":null,{"description":"Observed call latency in milliseconds.","minimum":0,"type":"integer"},"operation":{"description":"The tool ⟨13 unchanged words⟩ ,"type":"string"},"reporter_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Optional stable identifier for your agent. Salted and hashed on arrival; never stored raw."},"schema_hash":{"anyOf":[{"maxLength":64200,"type":"string"},{"type":"null"}],"defaultschema_hash":null,{"description":"Short hash of the tool schema used.","maxLength":64,"type":"string"},"service":{"description":"The MCP ⟨17 unchanged words⟩ ,"type":"string"},"version":{"anyOfdescription":[{"maxLengthVersion of the service/tool.":64,"typemaxLength":"string"}64,{"type":"null"}],"default":null,"description":"Version of the service/tool.string"}},"required":["service","operation" ⟨2 unchanged words⟩
{"properties":{"latency_ms":{"anyOfdescription":[{"minimumObserved call latency in milliseconds.":0,"typeminimum":"integer"}0,{"type":"null"}],"default":null,"description":"Observed call latency in milliseconds.integer"},"operation":{"description":"The tool ⟨13 unchanged words⟩ ,"type":"string"},"reporter_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Optional stable agent id; hashed, never stored raw."},"schema_hash":{"anyOf":[{"maxLength":64200,"type":"string"},{"type":"null"}],"defaultschema_hash":null,{"description":"Short hash of the tool schema used.","maxLength":64,"type":"string"},"service":{"description":"The MCP ⟨17 unchanged words⟩ ,"type":"string"},"version":{"anyOfdescription":[{"maxLengthVersion of the service/tool.":64,"typemaxLength":"string"}64,{"type":"null"}],"default":null,"description":"Version of the service/tool.string"}},"required":["service","operation" ⟨2 unchanged words⟩
⟨8 unchanged words⟩ null"}],"default":null,"description":"Protocol/vendor codeCode, e.g. '422', 'ECONNRESET'.","title":"Error Code"},"error_message":{"anyOf":[{"maxLength" ⟨5 unchanged words⟩ default":null,"description":"The error textyou received.only;Normalizednormalized server-side(identifiers replaced,credential-shaped substrings redacted) and nevernot stored by this call.Do not include prompts, tool arguments, secrets or user content.","title":"Error Message"},"error_type":{"anyOf":[{"maxLength" ⟨4 unchanged words⟩ null"}],"default":null,"description":"Short failureFailure class, e.g. 'validation_error', 'timeout', 'rate_limit', 'auth_error'.","title":"Error Type"},"operation":{"description":"The tool or endpointexactlyas the serverdefinesnames it, e.g. 'create_issue'-- without client prefixes such,asnot'mcp__github__'.'mcp__github__create_issue'.","maxLength":128,"title":"Operation","type":"string"},"reporter_id":{"anyOf" ⟨6 unchanged words⟩ ,"default":null,"description":"Optional stableidentifier for your agent. Saltedagentandid; hashedon arrival and, never storedby this call; it only lets FailEcho tell whether the evidence it just gave you came fromraw.aLetsdifferentfrom_other_agentsreporter.","title":"ReporterbeIdanswered."},"schema_hash":{"anyOf":[{"maxLength ⟨8 unchanged words⟩ :"Short hash of the tool schema youused. Lets FailEcho separateused'the(separatesAPI'API broke' from'your tool schema is stale'.","title":"Schema'schemaHashstale')."},"service":{"description":"What was called, named the way other agents will name it: anThe MCP server's own name (the one it reports inserverInfo.name),oran HTTPtheAPI'sAPI host, e.g. 'api.github.com'. Not your client's localalias for it.alias.","maxLength":128,"title":"Service","type":"string"},"verbose":{"default":false,"description":"Return the fullFull record (timestamps,per-windowrates, effective counts, every action). Defaultfalse: the compactanswer an agent acts on, about a quarter of the tokens.","title":"Verboseanswer.","type":"boolean"},"version":{ ⟨6 unchanged words⟩ null"}],"default":null,"description":"Version of the failingService/toolservice/toolversion, if known.","title":"Version"}},"required":["service","operation"],"title":"check_tool_failureArguments","type":"object"}
Afteryou actedacting on aknownfailure --retriedretry,waitedwait,refreshed a stale schemarefresh_schema,reconnectedreconnect,fell back to anotheruse_fallback,providerreauthenticate -- report whether itactually 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'.worked. Every recommendationother agentsothersreceiveget is built fromthesethese.reports.Pass the`fingerprint` returnedfingerprintbyfrom`check_tool_failure`check_tool_failure or`report_tool_failure`. Common actions: retry, wait, refresh_schema, remove_optional_field, reconnect, use_fallback, reauthenticate, abort. Reportreport_tool_failure; one outcome perattempt, not one per retry-loop iteration: a single reporter contributes at most 5 attempts per hour to any action's confidence.attempt.
⟨2 unchanged words⟩ :{"description":"What you tried, e.g.'refresh_schema'. Lowercase,'refresh_schema' ([a-z0-9_.-], spaces become underscores.).","maxLength":64,"title":"Action","type":"string"},"fingerprint":{"description":"Fingerprint fromFrom check_tool_failure or report_tool_failure (32lowercasehexcharacterschars).","pattern":"^[0-9a-f]{32}$","title":"Fingerprint","type":"string"},"reporter_id":{"anyOf" ⟨10 unchanged words⟩ stable agent id; hashed, never stored raw.","title":"Reporter Id"},"successful":{"description":"True when the action resolved the failure.","title":"Successful","type":"boolean"}},"required":["fingerprint","action","successful"],"title":"report_recovery_outcomeArguments","type":"object"}
Anonymously contributeReport atool/API/MCP failurefailedtotool/API/MCPFailEchocall soother autonomous systemsothers can recogniseit. Callit;thiscallwheneverafter atool call failsfailure,after (oralongside)`check_tool_failure`.check_tool_failure. PRIVACY--: this is a sharedpublicnetwork. Send failure metadataONLY.onlyNever--includenever prompts,model messages,tool arguments, tool results, request or response bodies,HTTPheaders, cookies, API keys, tokens,customer names,emails oranyuser content.The errorErrormessagetext is normalized server-side(numbers, UUIDs, emails, URLs, IPsandtokens replaced with placeholders; credential-shaped substrings redacted) andthe rawtext is discarded, but that is a safety net, not a licence to send sensitivestringdata. Passdiscarded.aA stable`reporter_id` if you can: it is salted andreporter_id (hashedbefore storage,isnever stored raw, and lets the network)countmakes youasoneindependentreporter instead of anonymous noise. Writes are rate limited per client.
⟨10 unchanged words⟩ null,"description":"Protocol/vendor code, e.g. '422'.","title":"Error Code"},"error_message":{"anyOf":[{"maxLength" ⟨8 unchanged words⟩ Error text. Normalized before storage; no secrets please.","title":"Error Message"},"error_type":{"anyOf":[{"maxLength" ⟨7 unchanged words⟩ "description":"Short failure class, e.g. 'validation_error'.","title":"Error Type"},"latency_ms":{"anyOf":[{"minimum" ⟨7 unchanged words⟩ ,"description":"Observed call latency in milliseconds.","title":"Latency Ms"},"operation":{"description":"The tool or endpointexactlyas the serverdefinesnames it, e.g. 'create_issue'-- without client prefixes such,asnot'mcp__github__'.'mcp__github__create_issue'.","maxLength":128,"title":"Operation","type":"string"},"reporter_id":{"anyOf" ⟨15 unchanged words⟩ Salted and hashed on arrival; never stored raw.","title":"Reporter Id"},"schema_hash":{"anyOf":[{"maxLength" ⟨8 unchanged words⟩ :"Short hash of the tool schema used."
Report that atoolcall SUCCEEDED.This matters more than it sounds: a failureFailurerateratesisare failuresdivided by totalovercalls,allsocalls; a network that only hearsaboutfailures cannot tellabrokenservicefroma busy one, and every status it reports would be wrong. Cheap to call and carriesbusy.noNo error dataat all--just which service/operation/version succeeded and how long it took. Same privacy rules apply: metadata onlyservice,never argumentsoperation,orversion,results.latency.
⟨11 unchanged words⟩ ,"description":"Observed call latency in milliseconds.","title":"Latency Ms"},"operation":{"description":"The tool or endpointexactlyas the serverdefinesnames it, e.g. 'create_issue'-- without client prefixes such,asnot'mcp__github__'.'mcp__github__create_issue'.","maxLength":128,"title":"Operation","type":"string"},"reporter_id":{"anyOf" ⟨10 unchanged words⟩ stable agent id; hashed, never stored raw.","title":"Reporter Id"},"schema_hash":{"anyOf":[{"maxLength" ⟨8 unchanged words⟩ :"Short hash of the tool schema used.","title":"Schema Hash"},"service":{"description":"What was called, named the way other agents will name it: anThe MCP server's own name (the one it reports inserverInfo.name),oran HTTPtheAPI's