failecho

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

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
100%
Calidad de los nombres
85%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~1,464Tokens (definiciones de herramientas)
~3.1 KBTamaño de respuesta típico
Impacto moderado en la atención (1.14% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

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

Paquetes ejecutables

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

Puntos de conexión remotos

https://failecho.com/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (4)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢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.

Esquema de entrada

{
  "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"
  ]
}

Esquema de salida

{
  "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.

Esquema de entrada

{
  "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"
  ]
}

Esquema de salida

{
  "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.

Esquema de entrada

{
  "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"
  ]
}

Esquema de salida

{
  "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.

Esquema de entrada

{
  "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"
  ]
}

Esquema de salida

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

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada4 herramientas
verificadoversión no registrada4 herramientas