Skip to content

unitedideas/resolve-mcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Resolve MCP Server

PyPI Python License MCP

Structured error recovery for AI agents. When your agent hits a 429, a connection timeout, or an auth failure, Resolve returns a resolution playbook -- not a generic error message.

Works with Claude Code, Claude Desktop, Cursor, Windsurf, and any MCP-compatible client.

The problem

AI agents crash on API errors they could recover from. A 429 Too Many Requests from OpenAI needs exponential backoff. A Stripe authentication_error needs credential rotation. A Postgres ECONNREFUSED needs a connection pool reset. But agents don't know any of this -- they either retry blindly or give up.

The solution

Resolve provides structured resolution playbooks for 20+ services. Each resolution includes:

  • Category -- rate_limit, auth, payment, connection, timeout, server_error, overloaded, quota, validation, and more
  • Action -- backoff_and_retry, abort, check_credentials, switch_region, etc.
  • Backoff schedule -- exact delays in seconds (e.g., [1, 2, 4, 8, 16])
  • Max retries -- how many attempts before giving up
  • Recovery notes -- specific steps for the service and error code
  • Confidence score -- below 0.75 means generic fallback; above means high-confidence match

Tools

Tool Description
resolve_error Look up a resolution for a service + error code/message. Returns structured playbook.
list_services List all 20+ supported services. No API key required.
submit_feedback Report whether a resolution helped. Improves quality over time.
get_free_key Provision a free API key (500 req/month) with just an email.

Supported services

anthropic aws cloudflare discord docker gemini github huggingface linear openai opensrs pinecone postgres redis resend sendgrid shopify stripe supabase twilio

Quick start

1. Install

pip install resolve-mcp

Or run directly with uvx (no install needed):

uvx resolve-mcp

2. Get a free API key

From your terminal:

curl -s -X POST https://resolve.arflow.io/billing/free-key \
  -H 'Content-Type: application/json' \
  -d '{"email":"you@example.com"}' | jq -r .api_key

Or call the get_free_key tool from within your MCP client -- no terminal needed.

3. Configure your client

Claude Code

claude mcp add resolve -e RESOLVE_API_KEY=rsl_your_key -- python -m resolve_mcp

Or add to .claude/settings.json:

{
  "mcpServers": {
    "resolve": {
      "command": "python",
      "args": ["-m", "resolve_mcp"],
      "env": {
        "RESOLVE_API_KEY": "rsl_your_key_here"
      }
    }
  }
}

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "resolve": {
      "command": "python",
      "args": ["-m", "resolve_mcp"],
      "env": {
        "RESOLVE_API_KEY": "rsl_your_key_here"
      }
    }
  }
}

Cursor / Windsurf / any MCP client

{
  "resolve": {
    "command": "python",
    "args": ["-m", "resolve_mcp"],
    "env": {
      "RESOLVE_API_KEY": "rsl_your_key_here"
    }
  }
}

Standalone (stdio)

RESOLVE_API_KEY=rsl_your_key python -m resolve_mcp

Usage examples

Agent hits a rate limit:

Agent: "I got a 429 from OpenAI"
-> resolve_error(service="openai", error_code="429")

Returns:
{
  "category": "rate_limit",
  "action": "backoff_and_retry",
  "backoff_schedule": [1, 2, 4, 8, 16],
  "max_retries": 5,
  "notes": "Token-per-minute limit. Reduce batch size or switch to a higher-tier key.",
  "confidence": 0.95
}

Agent gets an auth failure:

Agent: "Stripe returned authentication_error"
-> resolve_error(service="stripe", error_code="authentication_error")

Returns:
{
  "category": "auth",
  "action": "check_credentials",
  "backoff_schedule": [],
  "max_retries": 0,
  "notes": "API key is invalid or revoked. Verify the key starts with sk_live_ or sk_test_. Check Stripe dashboard for key status.",
  "confidence": 0.92
}

Feedback loop:

Agent: "The resolution worked."
-> submit_feedback(resolution_id="3fa85f64-...", helpful=true)

Why not just hardcode retry logic?

You can. But then you maintain retry strategies for every service your agent calls, across every error code, and update them when services change their rate limit behavior. Resolve centralizes this so your agent code stays clean and the resolution data stays current.

API

The MCP server wraps the Resolve REST API:

Endpoint Method Auth required
/resolve POST Yes
/services GET No
/resolve/feedback POST Yes
/billing/free-key POST No

Full OpenAPI spec: resolve.arflow.io/openapi.json

Pricing

Plan Requests/month Price
Free 500 $0
Pro 50,000 $29/mo
Fleet 500,000 $99/mo

Get started free: resolve.arflow.io

Contributing

Issues and PRs welcome. If you want resolution data for a service we don't cover yet, open an issue with the service name and common error codes.

License

MIT

About

MCP server for structured error recovery for AI agents. Returns resolution playbooks (backoff schedules, retry strategies, recovery steps) for 20+ services. Free tier: 500 req/month.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages