There are over 20,000 MCP servers in the wild. Less than 5% make a single dollar. The rest are donated labor — talented developers building useful tools and getting nothing for it. This guide walks through adding per-call billing to any MCP server in under 5 minutes using SettleGrid, so your tools can start earning while you sleep.
The Opportunity: 95% of MCP Servers Earn Nothing
There are over 20,000 MCP servers listed on Glama, 19,000 on mcp.so, 12,500+ on the Official MCP Registry, and 6,000+ on Smithery. The MCP SDK is downloaded over 120 million times per month. Yet less than 5% of these servers generate any revenue at all. The total agent-to-tool payment volume globally is under $50K per day. This is not because developers do not want to earn money. It is because, until recently, adding billing to an MCP server required building payment infrastructure from scratch: Stripe integration, usage metering, invoice generation, webhook handling, and fraud detection.
SettleGrid eliminates that barrier. Two lines of code wrap your existing handler with per-call billing, usage metering, and Stripe payouts. No Stripe integration. No usage dashboards. No billing code. You focus on building great tools; SettleGrid handles the money.
Step 1: Install the SettleGrid SDK
Run npm install @settlegrid/mcp in your MCP server project. The SDK exports a withBilling wrapper that intercepts tool calls, meters usage, and settles payments automatically. It works with any MCP server implementation that follows the Model Context Protocol specification.
Alternatively, scaffold a new project with npx create-settlegrid-tool. The CLI creates a complete project with TypeScript, billing hooks, test harnesses, and deployment configs for Vercel, Railway, and Fly.io. You can pass flags like --category data or --pricing per-call to skip the prompts.
Verify your setup with npx settlegrid doctor. This checks your Node.js version, validates your tsconfig.json, and confirms the SDK can reach the SettleGrid API.
Step 2: Set Your Pricing
Configure pricing in your settlegrid.config.ts file. The simplest model is per-invocation: set a price in cents and every successful tool call charges that amount. For example, pricing: { model: "per-call", amount: 5 } charges 5 cents per call.
SettleGrid supports six pricing models: per-call, per-token, per-byte, per-second, tiered (different prices per method), and outcome-based (charge only on success). Start with per-call if you are unsure. It is the easiest to reason about and the easiest for consumers to understand.
Price based on value, not cost. A data enrichment tool that saves an agent 30 seconds of research is worth 10 to 25 cents, regardless of whether your compute cost is 0.1 cents. Most first-time tool builders underprice by 3 to 5 times.
Step 3: Wrap Your Handler
The core integration is two lines of code. Import settlegrid from @settlegrid/mcp, initialize it with your tool slug, and wrap your existing handler:
const sg = settlegrid.init({ toolSlug: "my-tool" })
const billed = sg.wrap(yourHandler, { costCents: 5 })
That is it. The wrap function intercepts every tool call, verifies the caller has sufficient credits, meters the usage, and settles the payment after your handler returns a successful response. Failed calls are not charged. Rate-limited calls return structured errors that agents can retry.
Your handler code does not change at all. The wrap function is transparent: it passes the same input to your handler and returns the same output to the caller. The only difference is that each call is now metered and billed.
Step 4: Deploy and Publish
Deploy your MCP server to any hosting provider. The SDK is runtime-agnostic and works in Node.js, Deno, and Bun. For serverless deployments, the SDK batches metering events and flushes them asynchronously to avoid adding latency.
Publish your tool to the SettleGrid marketplace by running npx settlegrid publish. Your listing appears in the explore page, category pages, search results, and the Discovery API that AI agents use to find tools. Listings go live within minutes.
Connect Stripe for payouts in the SettleGrid dashboard under Settings. SettleGrid uses Stripe Connect to pay tool publishers. Earnings transfer to your Stripe balance on a rolling 7-day schedule. You keep 95% of every transaction on the Free tier.
Step 5: Monitor and Grow
Use the SettleGrid dashboard to monitor usage, revenue, and consumer behavior in real time. Track calls per minute, p50/p95 latency, error rate, revenue by day, and top consumers. Set up alerts for anomalies.
Review your pricing after the first week. If your tool has high adoption but low revenue, your price is too low. If adoption is slow despite strong discovery metrics, your price may be too high or your listing needs improvement.
Add the SettleGrid badge to your GitHub README with npx settlegrid badge. Tools with README badges see 3x more discovery traffic. Register in MCP directories, write content about your tool, and leverage cross-promotion with complementary tools to accelerate growth.
Get Started
SettleGrid is free forever for most developers. The free tier includes 25,000 operations per month at 0% platform fee with 95% revenue share.
- Documentation
-
Scaffold a new tool:
npx create-settlegrid-tool - Browse 1,017 open-source templates
- MCP Billing Platforms Compared
SettleGrid — the settlement layer for AI agent payments. Free tier, 95% revenue share, 2 lines of code.
Top comments (0)