streamable-httpMITupdated 15d ago
Discovery is free: POST /mcp speaks JSON-RPC 2.0 per the Model Context Protocol (initialize, tools/list, ping). Execution is metered: POST /v1/t/{tool} sits behind an x402 v2 paywall. An unpaid request gets HTTP 402 with payment requirements; a paid request carries a PAYMENT-SIGNATURE header and settles USDC through the facilitator before the tool runs.
What can you do with Paid MCP Metering?
paid-mcp-metering
Metered MCP tools, priced per call.
Discovery is free: POST /mcp speaks JSON-RPC 2.0 per the Model Context Protocol (initialize, tools/list, ping). Execution is metered: POST /v1/t/{tool} sits behind an x402 v2 paywall. An unpaid request gets HTTP 402 with payment requirements; a paid request carries a PAYMENT-SIGNATURE header and settles USDC through the facilitator before the tool runs.
Live deployment
Base URL: https://paid-mcp-metering.vercel.app
GET /health— free, publicPOST /mcp— free discoveryPOST /v1/t/{tool}— metered; currently answers503 settlement_not_configuredbecauseX402_PAY_TOis unset on the deployment (settlementConfigured:falsein/healthis the honest switch). No payment can be accepted until a receiving address is configured.
server.json declares this URL as the registry remote.
Tools
| Tool | Price | What it returns |
|---|---|---|
web_search |
$0.001/call | Ranked live web results with source URLs |
deep_research |
$0.01/call | Multi-source research pass with a synthesized answer plus cited sources |
Upstreams are Exa (primary) and Tavily (fallback). Every handler returns live upstream output or throws — there is no canned response.
Rails
x402 v2, USDC, EIP-155 network selected by X402_NETWORK (default Base Sepolia testnet, CAIP-2 eip155:84532). Facilitator defaults to https://x402.org/facilitator.
| Env var | Purpose |
|---|---|
X402_PAY_TO |
Receiving address. Required for settlement; unset serves 402 requirements only |
X402_NETWORK |
CAIP-2 network id (default eip155:84532) |
X402_FACILITATOR_URL |
x402 facilitator endpoint |
EXA_API_KEY / TAVILY_API_KEY |
Search upstream credentials |
Run
npm install
npm run build
npm start # node dist/x402-server.js
npm test # build + node --test dist/test-x402.js
Free discovery:
curl -s localhost:4021/mcp -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Paid execution:
curl -s localhost:4021/v1/t/web_search -H 'Content-Type: application/json' \
-d '{"query":"x402 protocol","max_results":3}'
# -> 402 with payment requirements; pay via an x402 client and retry with PAYMENT-SIGNATURE
Registry
server.json targets the official MCP Registry as io.github.dev55acc-ai/paid-mcp-metering. Tagging v* runs .github/workflows/publish-mcp.yml: tests, build, npm publish (when NPM_TOKEN is set), then registry publish authenticated by GitHub OIDC — no stored registry credential.
License
MIT
Install
Add Paid MCP Metering to your client. Pick the one you use.
claude mcp add --transport http paid-mcp-metering https://paid-mcp-metering-clsiojdd7-benlafreniere6-3913s-projects.vercel.app/mcpcodex mcp add paid-mcp-metering --url https://paid-mcp-metering-clsiojdd7-benlafreniere6-3913s-projects.vercel.app/mcp{
"mcpServers": {
"paid-mcp-metering": {
"url": "https://paid-mcp-metering-clsiojdd7-benlafreniere6-3913s-projects.vercel.app/mcp"
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
{
"servers": {
"paid-mcp-metering": {
"type": "http",
"url": "https://paid-mcp-metering-clsiojdd7-benlafreniere6-3913s-projects.vercel.app/mcp"
}
}
}Add to `.vscode/mcp.json` in your workspace.
{
"mcpServers": {
"paid-mcp-metering": {
"url": "https://paid-mcp-metering-clsiojdd7-benlafreniere6-3913s-projects.vercel.app/mcp"
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"paid-mcp-metering": {
"serverUrl": "https://paid-mcp-metering-clsiojdd7-benlafreniere6-3913s-projects.vercel.app/mcp"
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
2 tools
Paid MCP Metering exposes 2 tools to a connected agent.
- web_search
- $0.001/call
- deep_research
- $0.01/call
Score
70 / 100
Good
- Documentation22/25
- Maintenance19/25
- Trust13/20
- Capability4/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 8 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 2 tool(s) documented
- Provides prompt templates
- Provides resources
- 6 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Version history
| Versions | Published |
|---|---|
| 2.0.0Latest | Aug 23, 2026 |
| 1.0.1 | Aug 23, 2026 |