MCP Billing Gateway

Billing proxy for MCP servers. Adds Stripe and x402 crypto payments without writing billing code.

Should I use this

Quality & Safety

A
Description quality
84%
Schema completeness
100%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'create_server' description lacks action verbin create_server

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,340Tokens (tool definitions)
~1.1 KBTypical response size
Moderate attention impact (1.05% of 128k context)

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

pypimcp-billing-gateway0.1.2stdio

Remote endpoints

https://mcp-billing-gateway-production.up.railway.app/mcp/streamable-http

What it can do

Tool inventory

Tools (12)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
⚪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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded12 tools
verifiedversion not recorded12 tools
verifiedversion not recorded12 tools