RECOVER — Decide Safely After a Failed Machine Action

Choose the safest next action after an API, MCP, or agent failure before retrying.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
90%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~334Tokens (tool definitions)
~3.3 KBTypical response size
Minimal attention impact (0.26% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "recover": {
      "url": "https://recover-api-production-bbba.up.railway.app/mcp"
    }
  }
}

Remote endpoints

https://recover-api-production-bbba.up.railway.app/mcpstreamable-http

What it can do

Tool inventory

Tools (1)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
⚪recover_decide(method, status, error, attempt, maxAttempts, ...)

Use immediately after an API, MCP tool, automation, or agent action fails and before retrying. Especially use after timeouts, 5xx/429 responses, uncertain execution, or any side-effecting action that may already have completed. Returns the safest deterministic next action: RETRY_NOW, WAIT, REPAIR_REQUEST, VERIFY_FIRST, ESCALATE, or ABORT. Do not use before an action or for successful actions.

Input Schema

{
  "type": "object",
  "properties": {
    "method": {
      "type": "string",
      "description": "HTTP/action method when known, e.g. GET, POST, PATCH, DELETE."
    },
    "status": {
      "type": "number",
      "description": "Failure HTTP/status code when available."
    },
    "error": {
      "type": "string",
      "description": "Short failure/error message."
    },
    "attempt": {
      "type": "number",
      "description": "Current attempt number."
    },
    "maxAttempts": {
      "type": "number",
      "description": "Maximum allowed attempts if known."
    },
    "sideEffect": {
      "type": "boolean",
      "description": "True if the failed action could create, modify, send, charge, delete, or otherwise change external state."
    },
    "idempotencyKey": {
      "type": "boolean",
      "description": "True if a valid idempotency key protects a retry."
    },
    "providerRetryable": {
      "type": "boolean",
      "description": "True only when the provider explicitly marks the failure retryable."
    },
    "uncertainExecution": {
      "type": "boolean",
      "description": "True when it is unknown whether the action completed before the failure became visible."
    },
    "headers": {
      "type": "object",
      "description": "Relevant response headers such as Retry-After.",
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded1 tools
verifiedversion not recorded1 tools
verifiedversion not recorded1 tools