REAVER
Heating

The Arsenal

Ten lead-intelligence weapons behind one MCP server. Your host thinks — REAVER strikes.

1 · Connect your host

claude mcp add reaver -- python -m reaver_mcp.server --transport stdio

Run from the repo root. Then ask: "find 20 bakeries in Ahmedabad" — Claude discovers prospect and calls it.

{
  "mcpServers": {
    "reaver": {
      "command": "python",
      "args": ["-m", "reaver_mcp.server", "--transport", "stdio"],
      "cwd": "/path/to/D1-Reaver-Capabl"
    }
  }
}

Settings → Connectors → Add MCP server. Replace cwd with your checkout path.

{
  "mcp": {
    "reaver": {
      "type": "local",
      "command": ["python", "-m", "reaver_mcp.server", "--transport", "stdio"],
      "enabled": true
    }
  }
}

In opencode.json. Tools appear in-session with zero restarts of your workflow.

# 1. expose with a token (refuses public binds without one)
python -m reaver_mcp.server --transport http --host 0.0.0.0 --port 8000

# 2. terminate TLS in front, then add in ChatGPT:
#    developer mode → Connectors → https://YOUR-HOST/mcp/

ChatGPT requires public HTTPS (Apps SDK plugin model). Localhost is rejected — use the tunnel or deploy steps in the README.

{
  "mcp_servers": [{
    "type": "url",
    "url": "https://YOUR-HOST/mcp/",
    "name": "reaver",
    "authorization_token": "YOUR_TOKEN"
  }],
  "tools": [{ "type": "mcp_toolset", "mcp_server_name": "reaver" }]
}

Claude Messages API, beta header mcp-client-2025-11-20. Same bearer token as --token.

npx @modelcontextprotocol/inspector
# transport: STDIO → command: python, args: -m reaver_mcp.server --transport stdio
# or HTTP → URL: http://127.0.0.1:8000/mcp/ (+ Bearer token if set)

Click every tool, break everything safely. This is how Phase 1–7 were verified.

2 · Tool reference

3 · Transports & auth

STDIO

Local hosts (Claude Code/Desktop, OpenCode, Inspector). No auth, no ports — the OS pipe is the trust boundary.

HTTP

Remote hosts. --host 127.0.0.1 stays open; any other bind refuses to start without --token. Bearer middleware returns 401 otherwise. TLS terminates at your proxy.

Rules

output_format is csv (default) or json — nothing else. Counts cap at 200. Errors never leak paths or keys.

4 · Troubleshooting

401 on /mcp/

Send Authorization: Bearer <token>. Same value as the server's --token.

Port already bound

A stale server is squatting (we've been bitten). Find it: netstat -ano | findstr :8000, kill the PID, restart.

prospect fails at compile

Free-tier LLM quota exhausts mid-day across providers. The run fails honestly — wait for reset or add a Cerebras/Mistral key.

Empty pool / shortfall

Sources genuinely exhausted after 3 waves. Narrow geography, loosen criteria, or retry — caches make reruns cheap.