PREVIEW · TEST MODE — no real money moves yet. Payouts are not live.
Stevens Keys by Marc Stevens
From the team behind Surface

Charge for your MCP server.
Keep your customers.

Stevens Keys is the license-key and metering layer for MCP server creators. Issue keys, validate them at the edge, count usage, and revoke access in seconds. Sell from your own site, README, or listing. It's billing, not a storefront.

Create a free creator account See how to connect

What you get

License keys

Issue keys from the dashboard or API. We store only a SHA-256 hash. You see the key once, at creation.

Edge validation + metering

One call validates a key and records usage. You get allow/deny, plan, and remaining quota back.

Fast revocation

Revoke or suspend a key and the next validation is denied. There's no 24-hour cache window.

Per-key quotas

Set monthly limits per product or per key. Over-quota calls are denied and counted.

Creator dashboard

Keys, usage by day, top keys, and a revenue ledger with your split already worked out.

No hosting lock-in

Your server runs wherever it runs now. Add one SDK call in front of your tools.

Pricing

85 / 15

You keep 85% of sales processed through Stevens Keys. The platform fee is 15%. There's no compute deduction and no monthly fee.

Free tier

Free to sign up. Unlimited keys. Up to 50,000 validations per month per creator. Free key-gated plans for your users (default 3,000 calls per key per month). You only pay the 15% when you make a sale.

Payouts

Payouts via Stripe Connect are in development and not live yet. Until they launch, revenue figures in the dashboard are simulated.

How to connect

  1. Create a product for your MCP server in the dashboard. You get a product_id.
  2. Issue keys to your users, either by hand or with POST /v1/keys from your own checkout.
  3. Validate on every call with the TypeScript SDK or a single HTTP request:
import { StevensKeys, withLicense } from "@marcstevens/stevens-keys";

const keys = new StevensKeys({ baseUrl: "https://stevens-keys.pages.dev", productId: "prod_..." });

export default { fetch: withLicense(keys, (req) => handleMcp(req)) };
curl -X POST https://stevens-keys.pages.dev/v1/validate \
  -H "Authorization: Bearer sk_mcp_test_..." \
  -H "Content-Type: application/json" \
  -d '{"product_id":"prod_...","units":1}'
# 200 {"allow":true,"status":"active","quota":{"limit":3000,"used":1,...}}
# 403 {"allow":false,"status":"revoked"}

The SDK package isn't on npm yet. It's coming with the public launch.

Built by the team behind Surface

We run Surface, a free MCP server with per-request metering. Surface is our first internal customer on Stevens Keys.