MCP Billing Gateway
Billing proxy for MCP servers. Adds Stripe and x402 crypto payments without writing billing code.
Should I use this
Quality & Safety
Findings (1)
- LOWin create_server
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"mcp-billing-gateway": {
"command": "uvx",
"args": [
"mcp-billing-gateway"
]
}
}
}Runnable packages
0.1.2stdioRemote endpoints
https://mcp-billing-gateway-production.up.railway.app/mcp/streamable-httpWhat it can do
Tool inventory
Tools (12)
⚪register_operator(email, name)
Register a new operator account with Stripe Connect onboarding
Input Schema
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "Operator email address"
},
"name": {
"type": "string",
"description": "Operator or company name"
}
},
"required": [
"email",
"name"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_operator_info(api_key)
Get current operator profile and status
Input Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Operator API key"
}
},
"required": [
"api_key"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_servers(api_key)
List all MCP servers registered by the operator
Input Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Operator API key"
}
},
"required": [
"api_key"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_server(api_key, name, upstream_url, proxy_slug, description, ...)
Register a new MCP server for billing
Input Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Operator API key"
},
"name": {
"type": "string",
"description": "Server display name"
},
"upstream_url": {
"type": "string",
"description": "Upstream MCP server URL"
},
"proxy_slug": {
"type": "string",
"description": "URL slug for the billing proxy endpoint"
},
"description": {
"description": "Server description",
"type": "string"
},
"auth_mode": {
"description": "Auth mode: header (default) or query",
"type": "string"
},
"transport": {
"description": "Transport type: http (default) or stdio",
"type": "string"
},
"is_public": {
"description": "Whether to list in public server directory",
"type": "boolean"
}
},
"required": [
"api_key",
"name",
"upstream_url",
"proxy_slug"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_server(api_key, server_id)
Get server details including pricing plans
Input Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Operator API key"
},
"server_id": {
"type": "string",
"description": "Server ID"
}
},
"required": [
"api_key",
"server_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡update_server(api_key, server_id, name, description, upstream_url, ...)
Update server settings (name, description, upstream_url, is_public, status)
Input Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Operator API key"
},
"server_id": {
"type": "string",
"description": "Server ID"
},
"name": {
"description": "New server name",
"type": "string"
},
"description": {
"description": "New description",
"type": "string"
},
"upstream_url": {
"description": "New upstream URL",
"type": "string"
},
"is_public": {
"description": "Public listing toggle",
"type": "boolean"
},
"status": {
"description": "Server status (active/paused)",
"type": "string"
}
},
"required": [
"api_key",
"server_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴delete_server(api_key, server_id)
Soft-delete a server (can be restored)
Input Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Operator API key"
},
"server_id": {
"type": "string",
"description": "Server ID to delete"
}
},
"required": [
"api_key",
"server_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_plan(api_key, server_id, name, billing_model, price_per_call_usd_micro, ...)
Create a pricing plan for a server
Input Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Operator API key"
},
"server_id": {
"type": "string",
"description": "Server ID"
},
"name": {
"type": "string",
"description": "Plan name"
},
"billing_model": {
"type": "string",
"enum": [
"per_call",
"subscription",
"tiered"
],
"description": "Billing model"
},
"price_per_call_usd_micro": {
"description": "Price per call in USD micros (1/1,000,000)",
"type": "number"
},
"free_calls_per_month": {
"description": "Free calls per month",
"type": "number"
},
"is_default": {
"description": "Set as default plan for this server",
"type": "boolean"
},
"subscription_price_usd_cents": {
"description": "Monthly subscription price in cents",
"type": "number"
},
"subscription_interval": {
"description": "Subscription interval (month/year)",
"type": "string"
},
"subscription_call_limit": {
"description": "Max calls per subscription period",
"type": "number"
}
},
"required": [
"api_key",
"server_id",
"name",
"billing_model"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_plans(api_key, server_id)
List pricing plans for a server
Input Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Operator API key"
},
"server_id": {
"type": "string",
"description": "Server ID"
}
},
"required": [
"api_key",
"server_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡update_plan(api_key, plan_id, name, price_per_call_usd_micro, free_calls_per_month, ...)
Update a pricing plan
Input Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Operator API key"
},
"plan_id": {
"type": "string",
"description": "Plan ID"
},
"name": {
"description": "New plan name",
"type": "string"
},
"price_per_call_usd_micro": {
"description": "New price per call",
"type": "number"
},
"free_calls_per_month": {
"description": "New free call limit",
"type": "number"
},
"is_default": {
"description": "Set as default plan",
"type": "boolean"
},
"is_active": {
"description": "Activate or deactivate plan",
"type": "boolean"
}
},
"required": [
"api_key",
"plan_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_usage(api_key, server_id, from, to)
Get usage analytics for a server (calls, revenue, top callers)
Input Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Operator API key"
},
"server_id": {
"type": "string",
"description": "Server ID"
},
"from": {
"description": "Start date (YYYY-MM-DD)",
"type": "string"
},
"to": {
"description": "End date (YYYY-MM-DD)",
"type": "string"
}
},
"required": [
"api_key",
"server_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_revenue(api_key)
Get revenue summary and payout history
Input Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Operator API key"
}
},
"required": [
"api_key"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence