failecho

Check what other agents hit the same tool failure — and what recovery worked. Ask before retrying.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
100%
命名品質
85%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

根據工具定義與協定合規性的自動化分析。

上下文成本

~1,464Token(工具定義)
~3.1 KB典型回應大小
中等的注意力影響(128k 上下文的 1.14%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

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

可執行的套件

npmfailecho-mcp0.1.1stdio
pypifailecho-mcp0.1.1stdio

遠端端點

https://failecho.com/mcpstreamable-http

它能做什麼

工具清單

工具(4)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢check_tool_failure(service, operation, error_type, error_message, error_code, ...)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "service": {
      "description": "The MCP server's own name (serverInfo.name) or the API host, e.g. 'api.github.com'. Not your client's local alias.",
      "maxLength": 128,
      "type": "string"
    },
    "operation": {
      "description": "The tool or endpoint as the server names it, e.g. 'create_issue', not 'mcp__github__create_issue'.",
      "maxLength": 128,
      "type": "string"
    },
    "error_type": {
      "maxLength": 64,
      "type": "string",
      "description": "Failure class, e.g. 'validation_error', 'timeout', 'rate_limit', 'auth_error'."
    },
    "error_message": {
      "maxLength": 2000,
      "type": "string",
      "description": "The error text only; normalized server-side, not stored by this call."
    },
    "error_code": {
      "maxLength": 32,
      "type": "string",
      "description": "Code, e.g. '422', 'ECONNRESET'."
    },
    "version": {
      "maxLength": 64,
      "type": "string",
      "description": "Service/tool version, if known."
    },
    "schema_hash": {
      "maxLength": 64,
      "type": "string",
      "description": "Short hash of the tool schema you used (separates 'API broke' from 'schema stale')."
    },
    "reporter_id": {
      "maxLength": 200,
      "type": "string",
      "description": "Optional stable agent id; hashed, never stored raw. Lets from_other_agents be answered."
    },
    "verbose": {
      "default": false,
      "description": "Full record (timestamps, rates, effective counts, every action). Default: the compact answer.",
      "type": "boolean"
    }
  },
  "required": [
    "service",
    "operation"
  ]
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "check_tool_failureDictOutput"
}
🟡report_tool_failure(service, operation, error_type, error_message, error_code, ...)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "service": {
      "description": "The MCP server's own name (serverInfo.name) or the API host, e.g. 'api.github.com'. Not your client's local alias.",
      "maxLength": 128,
      "type": "string"
    },
    "operation": {
      "description": "The tool or endpoint as the server names it, e.g. 'create_issue', not 'mcp__github__create_issue'.",
      "maxLength": 128,
      "type": "string"
    },
    "error_type": {
      "maxLength": 64,
      "type": "string",
      "description": "Short failure class, e.g. 'validation_error'."
    },
    "error_message": {
      "maxLength": 2000,
      "type": "string",
      "description": "Error text. Normalized before storage; no secrets please."
    },
    "error_code": {
      "maxLength": 32,
      "type": "string",
      "description": "Protocol/vendor code, e.g. '422'."
    },
    "version": {
      "maxLength": 64,
      "type": "string",
      "description": "Version of the service/tool."
    },
    "schema_hash": {
      "maxLength": 64,
      "type": "string",
      "description": "Short hash of the tool schema used."
    },
    "latency_ms": {
      "minimum": 0,
      "type": "integer",
      "description": "Observed call latency in milliseconds."
    },
    "reporter_id": {
      "maxLength": 200,
      "type": "string",
      "description": "Optional stable identifier for your agent. Salted and hashed on arrival; never stored raw."
    }
  },
  "required": [
    "service",
    "operation"
  ]
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "report_tool_failureDictOutput"
}
⚪report_tool_success(service, operation, version, schema_hash, latency_ms, ...)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "service": {
      "description": "The MCP server's own name (serverInfo.name) or the API host, e.g. 'api.github.com'. Not your client's local alias.",
      "maxLength": 128,
      "type": "string"
    },
    "operation": {
      "description": "The tool or endpoint as the server names it, e.g. 'create_issue', not 'mcp__github__create_issue'.",
      "maxLength": 128,
      "type": "string"
    },
    "version": {
      "maxLength": 64,
      "type": "string",
      "description": "Version of the service/tool."
    },
    "schema_hash": {
      "maxLength": 64,
      "type": "string",
      "description": "Short hash of the tool schema used."
    },
    "latency_ms": {
      "minimum": 0,
      "type": "integer",
      "description": "Observed call latency in milliseconds."
    },
    "reporter_id": {
      "maxLength": 200,
      "type": "string",
      "description": "Optional stable agent id; hashed, never stored raw."
    }
  },
  "required": [
    "service",
    "operation"
  ]
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "report_tool_successDictOutput"
}
🟢report_recovery_outcome(fingerprint, action, successful, reporter_id)

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.

輸入結構描述

{
  "type": "object",
  "properties": {
    "fingerprint": {
      "description": "From check_tool_failure or report_tool_failure (32 hex chars).",
      "pattern": "^[0-9a-f]{32}$",
      "type": "string"
    },
    "action": {
      "description": "What you tried, e.g. 'refresh_schema' ([a-z0-9_.-]).",
      "maxLength": 64,
      "type": "string"
    },
    "successful": {
      "description": "True when the action resolved the failure.",
      "type": "boolean"
    },
    "reporter_id": {
      "maxLength": 200,
      "type": "string",
      "description": "Optional stable agent id; hashed, never stored raw."
    }
  },
  "required": [
    "fingerprint",
    "action",
    "successful"
  ]
}

輸出結構描述

{
  "type": "object",
  "additionalProperties": true,
  "title": "report_recovery_outcomeDictOutput"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本4 個工具
已驗證未記錄版本4 個工具