Skip to main content
@asyncbase/mcp is a Model Context Protocol server. Drop it into Claude Desktop, Cursor, Claude Code, Zed, Windsurf, or your own agent. Seven tools: send_message, pull_messages, ack_message, nack_message, list_dlq, redrive_dlq, get_docs.

Why

Natural-language control

“Redrive the 5 messages stuck in the emails DLQ” → one tool call.

Canonical code gen

get_docs lets the model fetch live API docs before generating client code.

No deploy step

Runs via npx — no install, no Docker, one JSON config line.

Install — Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
  "mcpServers": {
    "asyncbase": {
      "command": "npx",
      "args": ["-y", "@asyncbase/mcp"],
      "env": {
        "ASYNCBASE_API_KEY": "sk_live_..."
      }
    }
  }
}
Restart Claude Desktop. Tools appear in the hammer menu.

Install — Cursor

Cursor → Settings → MCP → Add new MCP server. Paste the same JSON.

Install — Claude Code (CLI)

claude mcp add asyncbase npx -- -y @asyncbase/mcp \
  --env ASYNCBASE_API_KEY=sk_live_...

Install — Zed / Windsurf / custom

Any MCP stdio client on protocol 2024-11-05 works. Point at npx -y @asyncbase/mcp with ASYNCBASE_API_KEY in env.

Point at staging

"env": {
  "ASYNCBASE_API_KEY": "sk_test_...",
  "ASYNCBASE_API_URL": "https://staging.asyncbase.dev"
}

Tools

ToolPurpose
send_messageEnqueue with delay / FIFO / dedup / TTL.
pull_messagesLong-poll a consumer group.
ack_messageMark processed. Idempotent.
nack_messageRetry with exp-backoff, or move to DLQ.
list_dlqInspect DLQ entries.
redrive_dlqRequeue DLQ messages.
get_docsFetch LLM-optimized docs. Call BEFORE writing client code.

get_docs — the secret sauce

Topics match files under docs/llm/:
{ "tool": "get_docs", "args": { "topic": "index" } }    // list
{ "tool": "get_docs", "args": { "topic": "enqueue" } }   // single
{ "tool": "get_docs", "args": { "topic": "sdk/python" } }
{ "tool": "get_docs", "args": { "topic": "all" } }       // full dump

Smoke test

“Using the asyncbase MCP, send a test message to queue ‘smoke’ with payload { "hello": "mcp" }, then show me the DLQ for that queue.”
You should see send_message followed by list_dlq in the tool-use trace.

Troubleshooting

SymptomFix
”ASYNCBASE_API_KEY env var is required”Add to the env block in config, not shell.
AUTH_INVALID on every callKey rotated or revoked. Issue a fresh one.
RATE_LIMITEDUpgrade plan or space out requests.
Tools not showingRestart the MCP client. Check JSON is valid.
npx fetch failsPin version: "@asyncbase/mcp@0.0.1"