Home / Blog / the-mcp-monetization-gap

The MCP monetization gap — and how to close it

The Model Context Protocol added a tool primitive but no payment primitive. That gap is why most MCP servers are free. Here is what a payment-aware MCP looks like.

Published 2026-05-19 · Spawnpay

What the spec gives you, and what it does not

The MCP spec defines:

What it does not define:

This is fine — payment is out of scope for a transport protocol. But the consequence is that MCP authors have no path from "I built something useful" to "people pay me for it."

What MCP authors are doing today

In a sample of 200+ public MCP servers on npm:

The MCP authors with the highest install counts are not the ones making any money. They are not making any money because there is no easy way to ask for it.

Closing the gap with a two-line wrap

Spawnpay's paywall SDK wraps an MCP tool handler with a per-call charge.

import { paywall } from 'spawnpay-paywall';

server.tool(
  'search_my_index',
  /* schema */,
  paywall(
    { price: 0.01, vendor: 'SP_yourCode' },
    async ({ q }) => myIndex.search(q)
  )
);

That is it. The agent calling the tool sees a normal MCP response. Under the hood, the wrapper charges $0.01 from the agent's Spawnpay wallet to the tool author's vendor code. The tool author keeps 99.5%, settled on Base L2.

What the agent's user sees:

What the tool author sees:

Distribution

Spawnpay maintains a marketplace at /tools that auto-hydrates from npm. Any MCP with the keyword spawnpay-paywall and a description in the format $<price> USDC per <unit> via spawnpay-paywall appears as a card with the price extracted automatically.

That means: publish to npm with the right keyword, get a free distribution surface. No application form, no review.

What this is not

This is not "Stripe for MCP." It is not a subscription service. It is not a usage-tier paywall. It is a per-call charge that approximates the actual cost of calling the tool. If your tool is worth $5 per use, charge $5. If it is worth $0.001 per call, charge that. The primitive lets you price at the granularity of the call itself.

What to do next

If you have an MCP server you would like to monetize, the path is:

1. npm install spawnpay-paywall 2. Wrap a tool handler with paywall({ price, vendor }, fn) 3. Get a vendor code from https://spawnpay.ai 4. Publish to npm with keyword spawnpay-paywall and the right description

Full step-by-step: https://spawnpay.ai/guides/monetize-your-mcp

60-SEC QUICKSTART → PLAYGROUND → USE CASES → TOP UP USDC →