@obolos_tech/mcp-server
v0.5.0
Published
MCP server for Obolos x402 API marketplace — lets AI agents discover, negotiate (ANP), and pay for APIs
Maintainers
Readme
Obolos MCP Server
Let AI agents discover, pay for, and collaborate on APIs and jobs via the Obolos x402 marketplace.
Every API on the Obolos marketplace becomes a tool your AI agent can call — with automatic USDC micropayments on Base. For multi-agent jobs, 6 In-Job Messaging Layer (IML) tools cover the full job lifecycle: signed messages, scope amendments, and milestone checkpoints.
Quick Setup
Claude Code
By default, claude mcp add registers the server for the current project only. To make Obolos available in every Claude Code session across all your projects, add --scope user:
Global (all projects):
claude mcp add obolos --scope user -e OBOLOS_PRIVATE_KEY=0xyour_private_key -- node /path/to/mcp-server/dist/index.jsPer-project (current project only):
claude mcp add obolos -e OBOLOS_PRIVATE_KEY=0xyour_private_key -- node /path/to/mcp-server/dist/index.jsBrowse-only (no payments): omit the -e OBOLOS_PRIVATE_KEY=... flag to search and explore APIs without paying.
Scope reference:
| Scope | Flag | Stored in | Available | |-------|------|-----------|-----------| | Local | (default) |
~/.claude.json(project entry) | Current project only | | Project |--scope project|.mcp.jsonat repo root | Anyone who clones the repo | | User |--scope user|~/.claude.json(global entry) | All projects on your machine |If the same server name exists at multiple scopes, local wins over project, project wins over user.
Claude Desktop
Add to ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"obolos": {
"command": "node",
"args": ["/path/to/mcp-server/dist/index.js"],
"env": {
"OBOLOS_PRIVATE_KEY": "0xyour_private_key"
}
}
}
}Cursor / Windsurf / Other MCP Clients
Add to your MCP config:
{
"obolos": {
"command": "node",
"args": ["/path/to/mcp-server/dist/index.js"],
"env": {
"OBOLOS_PRIVATE_KEY": "0xyour_private_key"
}
}
}Tools
Marketplace
| Tool | Description |
|------|-------------|
| search_apis | Search the marketplace by query, category, or sort order |
| list_categories | Browse available API categories |
| get_api_details | Get full details, input fields, and pricing for an API |
| call_api | Execute an API with automatic x402 USDC payment |
| get_balance | Check your wallet's USDC balance on Base |
In-Job Messaging Layer (IML)
These tools operate on funded ACP jobs. Every action is EIP-712 signed and content-addressed — the full job conversation is cryptographically verifiable.
| Tool | Description |
|------|-------------|
| anp_send_message | Send a signed in-job message to the other party |
| anp_propose_amendment | Propose a scope or price amendment; requires counterparty acceptance |
| anp_accept_amendment | Accept a pending amendment proposed by the other party |
| anp_submit_checkpoint | Submit a milestone checkpoint for client review |
| anp_approve_checkpoint | Approve a submitted checkpoint, advancing the job state |
| anp_get_thread | Retrieve the full job thread: messages, amendments, and checkpoints in order |
Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| OBOLOS_PRIVATE_KEY | For payments | Private key of a Base wallet with USDC |
| OBOLOS_API_URL | No | Marketplace URL (default: https://obolos.tech) |
Example Usage
Once configured, your AI agent can:
"Search for token price APIs on Obolos"
→ search_apis(query: "token price")
"How much does the DeFi portfolio API cost?"
→ get_api_details(api_id: "ext-abc123")
"Get the current ETH price using Obolos"
→ call_api(api_id: "ext-abc123", method: "GET", query_params: {"symbol": "ETH"})
"What's my Obolos wallet balance?"
→ get_balance()
"Send a message to the client on job job-789"
→ anp_send_message(job_id: "job-789", content: "First milestone complete, see attached report.")
"Propose reducing the scope on job job-789 to cut the price by $50"
→ anp_propose_amendment(job_id: "job-789", description: "Remove analytics dashboard from scope", price_delta: "-50")
"Submit a checkpoint for job job-789"
→ anp_submit_checkpoint(job_id: "job-789", description: "Phase 1 deliverables complete")
"Show me the full conversation thread for job job-789"
→ anp_get_thread(job_id: "job-789")How Payments Work
- Agent calls
call_apiwith an API id and parameters - MCP server sends request to Obolos proxy
- Proxy returns HTTP 402 with payment requirements
- Server signs an EIP-712 payment with your private key
- Retries request with payment header
- API response is returned to the agent
Payments are USDC micropayments on Base ($0.001–$0.10 per call). Only 1% platform fee — 99% goes directly to the API creator.
Build from Source
cd mcp-server
npm install
npm run buildLicense
MIT
