MCP Stripe Server

  • src
# stripe_server/tools.py from mcp.types import Tool def get_stripe_tools() -> list[Tool]: return [ Tool( name="customer_create", description="Create a new customer in Stripe", inputSchema={ "type": "object", "properties": { "email": {"type": "string", "format": "email"}, "name": {"type": "string"}, "metadata": {"type": "object"} }, "required": ["email"] } ), Tool( name="customer_retrieve", description="Retrieve a customer's details", inputSchema={ "type": "object", "properties": { "customer_id": {"type": "string"} }, "required": ["customer_id"] } ), Tool( name="customer_update", description="Update customer information", inputSchema={ "type": "object", "properties": { "customer_id": {"type": "string"}, "update_fields": { "type": "object", "description": "Fields to update (email, name, metadata, etc.)" } }, "required": ["customer_id", "update_fields"] } ), Tool( name="payment_intent_create", description="Create a payment intent for processing payments", inputSchema={ "type": "object", "properties": { "amount": {"type": "integer", "description": "Amount in cents"}, "currency": {"type": "string", "default": "usd"}, "payment_method_types": { "type": "array", "items": {"type": "string"}, "default": ["card"] }, "customer": {"type": "string"}, "metadata": {"type": "object"} }, "required": ["amount", "currency"] } ), Tool( name="charge_list", description="List recent charges", inputSchema={ "type": "object", "properties": { "limit": {"type": "integer", "maximum": 100, "default": 10}, "customer_id": {"type": "string"} } } ), Tool( name="refund_create", description="Create a refund for a charge", inputSchema={ "type": "object", "properties": { "charge_id": {"type": "string"}, "amount": {"type": "integer", "description": "Amount in cents to refund"}, "reason": { "type": "string", "enum": ["duplicate", "fraudulent", "requested_by_customer"] } }, "required": ["charge_id"] } ) ]