DopamineDesk x402 Marketplace MCP Server
Model Context Protocol (MCP) server and machine-to-machine data API gateway powered by the x402 Payment Protocol on Base Mainnet.
No API key. No account. No subscription. A live-source catalog of pay-per-call products — EVM chain reads, stock quotes and SEC filings, FX rates, token security audits, OFAC sanctions screening, LEI and VIN lookups, and more — priced from $0.001 per call and paid per request in USDC.
Try any product free before you pay. Every billable route accepts ?preview=true and returns a bounded sample of the real deliverable from the real live source, so an agent can verify the data is worth buying first. Previews are for evaluation: long lists and long fields are clipped, every response says whether it was truncated, and short results come back complete.
curl "https://ai-data-marketplace-1042299154756.us-central1.run.app/api/v1/evm_block_number?preview=true"
Install
Run directly with npm:
npx -y dopaminedesk-ai-data-marketplace-mcp
Claude Desktop or another stdio-compatible MCP client:
{
"mcpServers": {
"dopaminedesk-data-arcade": {
"command": "npx",
"args": ["-y", "dopaminedesk-ai-data-marketplace-mcp"]
}
}
}
Optional one-call purchasing
Version 2.8.3 can complete the x402 challenge, authorization, retry, and settlement automatically. The buyer key stays inside the buyer's local MCP process; the marketplace never receives it. Use a dedicated low-balance Base wallet, not a primary wallet.
{
"mcpServers": {
"dopaminedesk-data-arcade": {
"command": "npx",
"args": ["-y", "dopaminedesk-ai-data-marketplace-mcp"],
"env": {
"X402_AUTO_PAY": "true",
"X402_EVM_PRIVATE_KEY": "YOUR_DEDICATED_BUYER_WALLET_KEY",
"X402_MAX_PAYMENT_USDC": "0.25"
}
}
}
}
Call any product with auto_pay: true. The adapter refuses a price above X402_MAX_PAYMENT_USDC, refuses conflicting payment inputs, and never falls back to an uncapped purchase. Without these environment variables, preview and manual-signature behavior remains unchanged.
Official MCP Registry name: io.github.jblaz6335/ai-data-marketplace.
Published Distribution
- npm:
dopaminedesk-ai-data-marketplace-mcp, version 2.8.3 - Official MCP Registry:
io.github.jblaz6335/ai-data-marketplace, active - Smithery:
jblaz6335/dopaminedesk-agent-data-arcade, live - PulseMCP: queued for ingestion through its Official MCP Registry feed
Every product in the catalog is billable and backed by a declared live source, a verified snapshot, or a transparent deterministic processor - there are no sample fixtures. Every API response identifies its data mode, availability, billing state, and backing source. Counts and prices always come from the live OpenAPI document, never from this README.
The newest demand-led lanes add low-cost atomic calls and answer-ready bundles for:
- read-only agent transaction preflight, ERC-20 allowances, and contract proxy evidence;
- atomic EVM block height, block, transaction, receipt, and account nonce reads;
- native balance reads, deployed bytecode inspection, bounded read-only contract calls, and capped event-log retrieval;
- live public Shopify catalog search with current products, variants, prices, availability, images, and UCP capabilities;
- GLEIF legal-entity identity and official OFAC SDN name screening;
- official NHTSA VIN decoding, recalls, complaints, and buyer safety reports.
The MCP adapter builds its tool list from the production OpenAPI document. It does not maintain a stale hand-written endpoint list.
Production API Service
- Base Service URL:
https://ai-data-marketplace-1042299154756.us-central1.run.app - OpenAPI Specification:
https://ai-data-marketplace-1042299154756.us-central1.run.app/openapi.json - Postman 1-Click Collection:
https://ai-data-marketplace-1042299154756.us-central1.run.app/postman.json - LLM Manifest:
https://ai-data-marketplace-1042299154756.us-central1.run.app/llms.txt - x402 Protocol Manifest:
https://ai-data-marketplace-1042299154756.us-central1.run.app/.well-known/x402 - x402scan Marketplace Page:
https://www.x402scan.com/server/8dd63536-ba25-40f4-b36a-7d05ed18d007
The paid OpenAPI contract contains exactly the billable products - nothing more. Withdrawn concepts return HTTP 404 rather than lingering as unpayable routes.
Data Schema Inspection Mode
Client applications and autonomous agents can evaluate response schemas and data quality without executing a paid transaction by adding the preview=true parameter. The preview is a bounded sample of the same live result, carries preview_truncated and a purchase block describing the paid call, and is rate limited per tool so it stays an evaluation step rather than a free tier:
curl -s "https://ai-data-marketplace-1042299154756.us-central1.run.app/api/v1/candles?preview=true&ticker=bitcoin"
The Loop Lane - what agents call every iteration
| Endpoint | What it reads | Settlement (USDC) |
|---|---|---|
GET /api/v1/evm_balance | Native balance on Base, Ethereum, or Arbitrum | 0.001 |
GET /api/v1/evm_block_number | Current block height | 0.001 |
POST /api/v1/evm_call | Bounded read-only contract call | 0.002 |
GET /api/v1/evm_receipt | Execution status, gas, and event logs | 0.003 |
GET /api/v1/evm_logs | Contract events with optional topic filter | 0.003 |
POST /api/v1/scrape_md | Public page to bounded Markdown | 0.003 |
GET /api/v1/url_metadata | Title, description, OG image, status | 0.003 |
GET /api/v1/whale_alerts | Large ERC-20 transfers from recent blocks | 0.005 |
GET /api/v1/pwned_check | HIBP k-anonymity breached-hash check | 0.005 |
Beyond the loop lane: market data, SEC filings, sanctions screening, VIN and entity verification, token security, and composite research briefs. The complete current list with live prices is always the OpenAPI document - this README deliberately does not duplicate it.
Standard x402 v2 Payment Flow
Every billable product uses x402 v2 exact payments on Base mainnet, settled through the Coinbase CDP facilitator:
- Call a paid endpoint without payment and read the base64-encoded
PAYMENT-REQUIREDresponse header. - Use an x402 v2 client and buyer wallet to sign the exact USDC authorization.
- Retry with the resulting
PAYMENT-SIGNATUREheader. - On success, read the settled transaction details from
PAYMENT-RESPONSE.
The MCP adapter returns both the decoded challenge and the original payment_required_header. A compatible buyer can sign that challenge and retry the same tool with the payment_signature input. Buyers who configure the optional capped local wallet can instead set auto_pay: true and complete the entire flow in one tool call. Successful responses include payment_response_header.
The server advertises Bazaar-compatible discovery schemas on every 402 challenge while keeping seller-owned OpenAPI, MCP, sitemap, and agent-purchase documents canonical. The Coinbase CDP facilitator handles verification and settlement; USDC is delivered directly to the configured marketplace wallet.
Legacy Integration Client (client.py)
The included Python helper preserves the confirmed-transaction fallback for older integrations that do not yet use an x402 v2 signing client:
import requests
MARKETPLACE_URL = "https://ai-data-marketplace-1042299154756.us-central1.run.app"
# 1. Request the standard challenge and legacy invoice body
invoice_response = requests.get(f"{MARKETPLACE_URL}/api/v1/candles?ticker=bitcoin")
invoice = invoice_response.json()["x402_invoice"]
print("Pay this Base USDC invoice with an external wallet:", invoice)
# 2. After paying externally, retry with the real Base transaction hash and invoice ID
headers = {
"x-402-payment-tx": "0x_YOUR_REAL_BASE_TRANSACTION_HASH",
"x-402-payment-id": invoice["payment_id"]
}
data = requests.get(f"{MARKETPLACE_URL}/api/v1/candles?ticker=bitcoin", headers=headers).json()
print("Payload Result:", data)
License
MIT License. Open-source Model Context Protocol server.