Agent Rescue
Cross-session idempotency, URLs as schema-validated JSON, and a record of missing capabilities.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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": {
"agent-rescue": {
"url": "https://agent-rescue.vercel.app/api/mcp"
}
}
}Remote endpoints
https://agent-rescue.vercel.app/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (3)
🟢check_and_claim(key, ttl_seconds, metadata)
Atomically check whether an action identified by a key was already performed, and claim it if not. Use it before performing a non-idempotent action that may have completed in an earlier attempt (a payment, a message, a write), or when you need to remember something across sessions. Returns 'claimed' if you are first and 'already_done' if not. Do not use it as a general data store or as a result cache.
Input Schema
{
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "Stable identifier for the action, e.g. 'invoice-2026-07-A491:pay'."
},
"ttl_seconds": {
"type": "integer",
"description": "How long the claim lasts, in seconds. Default 86400 (1 day), max 30 days."
},
"metadata": {
"type": "object",
"description": "Small payload returned alongside the claim. Do not include secrets."
}
},
"required": [
"key"
],
"additionalProperties": false
}🟢fetch_structured(url, schema, instructions)
Fetch a public URL and return its content as JSON validated against the schema you pass. Use it when you need data from a page and cannot parse it reliably yourself. Do not use it for URLs requiring authentication or a session, for internal networks, or when you already have the content — extract it yourself in that case. `extracted_by` tells you where the answer came from: `structured_data` when the page already published it (JSON-LD, OpenGraph, or a JSON body — exact and free) or `model` when it had to be extracted from the text. If structured extraction is unavailable, the response carries `degraded: true`, `data: null` and the page `text` for you to parse: check `degraded` before reading `data`.
Input Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL."
},
"schema": {
"type": "object",
"description": "JSON Schema of the object you want back. Missing fields come back as null."
},
"instructions": {
"type": "string",
"description": "Optional. What exactly to look for if the page is ambiguous."
}
},
"required": [
"url",
"schema"
],
"additionalProperties": false
}🟢request_capability(need, context, deadline, would_pay)
Record a specific need that none of the tools available to you can cover. Today it almost always answers that the capability is unavailable, and suggests alternatives only when they genuinely exist; its purpose is to measure what agents ask for and nobody serves. Use it when you are blocked by a missing capability — not for general questions, and not for anything you can work out by reasoning.
Input Schema
{
"type": "object",
"properties": {
"need": {
"type": "string",
"description": "What exactly you need, in one or two sentences. Do not include personal data."
},
"context": {
"type": "string",
"description": "Optional. What you tried and why it did not work."
},
"deadline": {
"type": "string",
"description": "Optional. ISO 8601."
},
"would_pay": {
"type": "boolean",
"description": "Optional. Whether your policy allows paying to get this solved. Answer honestly: a false answer unlocks nothing and degrades the measurement."
}
},
"required": [
"need"
],
"additionalProperties": false
}Community
Evidence