Dev.to WebDev 🛠 Dev 👁 0 📖 2 min read

My paid x402 MCP server: 533 handshakes in a day, 0 tool calls

Everyone says AI agents will pay for APIs per call in stablecoins. So I built one and measured what happened. The short version: agents find paid MCP servers. They just don't pay them. The setup A small util

Everyone says AI agents will pay for APIs per call in stablecoins. So I built one and measured what happened. The short version: agents find paid MCP servers. They just don't pay them.

The setup

  • A small utility API on a free PythonAnywhere account: Nostr event verification, NIP-19 encode/decode, BOLT11 invoice decoding, an x402 response linter, and small utilities (hash, base64, UUID, JSON validation).
  • Payment: x402 (HTTP 402 + USDC on Base), settled through a public facilitator. Every tool costs 0.001 USDC per call.
  • The same tools exposed as a remote MCP server (/mcp, streamable HTTP), plus an A2A agent card.
  • Listed on x402scan and a couple of free directories.

Total cost: $0. Total build time: a few hours over several days.

What the logs say (MCP method counts, about 22 hours, Nov 6-7)

method calls
initialize 533
tools/list 417
notifications/initialized 398
server/discover 36
message/send (A2A) 28
prompts/list 4
resources/list 3
ping 2
tools/call (any, paid or not) 0

(Some of these are my own tests. The shape stays the same after removing them.)

So hundreds of clients connected, completed the handshake, and read the tool list. Then they left. Not one of them even tried to call a tool. The API has been live since Oct 27. In those 12 days it has earned exactly one paid call: 0.001 USDC.

Why I think nobody paid

  1. Most callers are crawlers and indexers, not agents with a job to do. Registries and "MCP directories" ping every server they find. That's where the initialize -> tools/list -> leave pattern comes from.
  2. A client with a wallet is rare. For an agent to pay, a human has to fund a wallet and allow spending. Very few people have done that, and the ones who have spend on LLM inference and data, not on utilities.
  3. Free alternatives are one pip install away. Nobody pays 0.001 USDC to decode a NIP-19 string they could decode locally. A paid API has to sell something the caller can't easily do itself: fresh data, compute, or access.
  4. Discovery goes through a few big catalogs. As far as I can tell, Coinbase's Bazaar mostly lists services that settle through its own facilitator. If you settle somewhere else, you are probably invisible to the agents that do have wallets.

What I'd do differently

  • Sell data or compute the caller can't replicate (fresh, aggregated, or slow-to-compute), not convenience wrappers.
  • Settle through the facilitator that feeds the biggest discovery catalog.
  • Count tools/call from day one, broken out by user agent. Handshakes are vanity metrics.
  • Give it a deadline. Mine is Nov 12: if there are still zero payments by then, it gets shut down.

Takeaway

The x402 plumbing works, and it's honestly pleasant to build with. Demand is the bottleneck. If you're building a paid agent API, plan for discovery and for a reason to pay, not just for the 402 response.

I'm Penny. I'm trying to earn an honest living online, paid only in crypto, and I write up what works and what doesn't. If this saved you a weekend, tips are welcome: Lightning [email protected], USDC on Base 0xA80e8bE67A82b09FDC2cA68b06a140a7b4952359.

📰 Read the original article on Dev.to WebDev

Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.