For developers

Sell your MCP service — get paid per call

Monetize your MCP (Model Context Protocol) server: list it free on the FiatDock marketplace, set a per-call price, and AI agents pay you directly in USDC over x402 — settled on-chain straight to your wallet. Keep 100%: the commission is currently waived for every seller. Non-custodial: FiatDock never holds your funds. Below: exactly what the publish check tests, what the gateway does on each call, what counts as answering, and what the traffic actually looks like today.

Last updated: · by FiatDock

Create your seller account →List in 5 minutes

List in four steps

1

Create an account

Sign up at /account with email and password. No keys to manage — your session signs everything.

2

Test, then publish

At /sell/new press Test connection: we complete a real MCP handshake and fill the tool picker from your own tools/list. Then add name, summary, category and price.

3

Set a payout wallet

An EVM address on Base. It receives your share of each paid call, settled directly to you.

4

(Optional) Get Verified

The $20/mo badge plus a one-time identity check, for a ✓ Verified mark buyers can filter and sort by.

Hosted or stdio — pick the one that matches your server

A listing connects agents to your service in one of two ways, and the choice decides whether it can be paid.

If you have a stdio server and want to charge for it, hosting it is the whole gap — see the host-it-to-earn guide.

What the publish check tests

Publishing runs a live probe and refuses if it fails. This is deliberate and it is the one place we fail closed: at publish time you are present and a refusal costs you one attempt, whereas a broken listing accepted silently costs a buyer money and costs you months of nothing happening. The checks:

Two things soften it. Add ?dryRun=1 to the publish request to run the entire path — validation, gate, live probe — and be told what would happen without creating anything. And after a listing exists, editing is never blocked by a rule your edit did not create: a seller whose endpoint went down must always be able to change the endpoint URL that would fix it.

What happens on a paid call

In order, every time:

  1. The buyer calls POST /s/{id} without payment and receives a 402 naming your wallet as the recipient, the exact amount, the chain and the deadline.
  2. They sign and retry. The gateway verifies the payment and claims the authorisation, so one signature can buy exactly one answer.
  3. The gateway forwards the call to your endpoint, signed with an X-FiatDock-Gateway HMAC, wrapped in the tools/call envelope for the tool your listing names.
  4. It reads your answer. Only then does it settle on-chain — a single full-price payment to you, since the commission is currently waived for every seller.

Settling after delivery is what lets the marketplace refuse nobody. It used to settle first, which meant protecting buyers from a listing that might not answer required blocking that listing outright — and at one point that was 18 of 36 live listings, every one a seller who could not earn. Now a call that produces no answer simply costs nothing, so nothing has to be blocked.

What counts as answering

Worth knowing precisely, because it decides whether you are paid. MCP over HTTP reports tool failures with HTTP 200, so the gateway reads the JSON-RPC body, not just the status:

Sellers whose servers demand their own registration or API key on top of the buyer's payment fall into the first category — the buyer paid, your server refused, and you both got nothing.

After you publish

Your hosted endpoint is re-read every six hours — hourly if it lives on an ephemeral tunnel host such as *.trycloudflare.com, whose URLs are built to disappear — and, most usefully, the moment you edit the listing: an edit re-probes the endpoint on the spot, so a fix takes effect immediately instead of waiting for the next cycle. Each pass is a security scan of your tools/list against prompt-injection and tool-poisoning rules, plus a health record from the same read. An unreachable endpoint is not suspended — a live listing has flipped healthy and unhealthy inside an hour, so a single failed check means nothing. It affects ordering only. After seven consecutive silent days a listing leaves the default catalog, stays reachable at its own URL and on your dashboard, and returns automatically on one successful check.

To find out whether anyone actually bought, use GET /v1/marketplace/sellers/me/earnings or the headline on your dashboard: settled invokes, exact USDC earned, last sale, and a row per listing. Because we are non-custodial, that page reports what settled to your wallet — not a balance we hold for you. The same authenticated responses carry a notices block naming anything currently stopping your listings from being bought, and the exact fix.

Is there any demand?

A straight answer instead of a promise. As of , third-party listings on FiatDock have taken three paid calls from wallets that are not our own, totalling $0.02 to sellers; two of those wallets identify themselves as x402 measurement instruments. Everything else that reaches the catalog is automated: crawlers, uptime monitors, x402 and MCP indexers. We publish this because a seller deciding where to list deserves the number, not the adjective.

The market around it is real, and measurable. Coinbase's public x402 index, read on 21 September 2026: 15,133 resources on 2,000 hosts, 857,072 paid calls in 30 days. But 58.7% of those resources have every paying wallet calling exactly once — that is a crawler, not a customer — and they carry 1.8% of the volume. The 4.6% of resources people come back to carry 93% of all calls, and what they sell is specific: LLM inference (about 41% of all calls), AI verdicts on onchain data, web search and page reading, contact and company enrichment, trading signals. Raw chain reads — gas, blocks, balances — are 2.6% of calls. The call-weighted median price of what repeat buyers pay for is $0.003, and 93.9% of calls settle on Base. The full measurement, with the method to reproduce it.

So the honest pitch has two halves. What to list: something derived — a verdict, a search, an enrichment, a completion — priced in cents or fractions of a cent, on Base; a field a public node already serves will be paid for once by every crawler and then not again. Where: listing here is free, takes minutes, and puts your service in the catalog, the search_services tool, llms.txt, skill.md and the x402 discovery surfaces before buyers arrive — not because they already have. Listing directories such as Smithery, Glama, mcp.so and PulseMCP pay you $0 for a listing, and hosted marketplaces such as Apify and MCPize take a 15–20% cut, hold the funds and pay out on a schedule (named as of July 2026). Here the commission is currently waived (0%; standard rate 1%), and payment settles on-chain, straight to your wallet.

Frequently asked

Do I need verification to sell?

No — anyone can publish, and the listing is live and discoverable right away. The $20/mo badge is an optional trust mark.

When do I get paid?

Per call, on-chain, as it happens — the payment settles to your wallet once your server has answered.

Is it custodial?

No. Funds move buyer→seller directly via x402; FiatDock holds nothing, and its commission (currently waived; standard 1%) is a separate payment.

Can I list a stdio/npx server without hosting it?

Yes, as a free listing pointing at your npm package name. Paid per-call listings need a hosted Streamable-HTTP HTTPS endpoint.

Get started: create your seller account · list in 5 minutes · what an MCP marketplace is · how to choose one · selling an API to agents · pricing.

Related guides: Best MCP marketplace compared · Monetize your MCP server · Sell your API to AI agents