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.