# BTCPay Server — MCP server on mcp.ai > Connect your BTCPay Server account and use 16 tools for payment processing straight from your AI agent. Connect with your own API key. BTCPay Server is a free, open-source, self-hosted Bitcoin payment processor that enables merchants to accept Bitcoin payments without intermediaries. By: mcp.ai · official Page: https://mcp.ai/btcpay_server ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_btcpay_server?ms=1787293560000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/btcpay_server/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/btcpay_server/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/btcpay_server/skill.md Postman collection (v2.1): https://mcp.ai/btcpay_server/postman.json ## Tools - btcpay_server_create_payment_request(email?: string, title: string, amount: number|string, storeId: string, currency?: string, expiryDate?: string, description?: string, embeddedCSS?: string, customCSSLink?: string, allowCustomPaymentAmounts?: boolean) — Creates a new payment request in a BTCPay Server store. Payment requests are shareable pages where customers can create invoices to pay the requested amount. Unlike direct invoices, payment requests c - btcpay_server_create_store(name: string, website?: string, speedPolicy?: string, defaultCurrency?: string, invoiceExpiration?: integer) — Tool to create a new store in BTCPay Server. Use when you need to provision a new store before processing transactions. - btcpay_server_create_user(email: string, password: string, isAdministrator?: boolean) — Tool to create a new BTCPay Server user. Use when you need to register a new user programmatically as an administrator. - btcpay_server_create_webhook(url: string, secret?: string, enabled?: boolean, storeId: string, authorizedEvents: object, automaticRedelivery?: boolean) — Registers a new webhook for a BTCPay store to receive real-time notifications when store events occur (e.g., invoice created, payment received, invoice settled). The webhook endpoint receives POST req - btcpay_server_delete_api_key(apikey: string) — Revoke a specific API key to immediately prevent its use for authentication. Use this tool when you need to disable an API key, such as when rotating credentials or when a key may have been compromise - btcpay_server_delete_payment_request(storeId: string, paymentRequestId: string) — Deletes (archives) a specific payment request from a BTCPay Server store. Use this tool when you need to remove or archive an existing payment request. The payment request will be marked as archived a - btcpay_server_delete_payout(storeId: string, payoutId: string) — Cancels (deletes) a specific payout from a BTCPay Server store. Use this tool when you need to cancel a pending payout that is no longer needed. Only payouts in 'AwaitingApproval' or 'AwaitingPayment' - btcpay_server_get_api_keys() — Retrieve information about the current API key. Returns details including the API key string, its label, and the permissions it has been granted. Use this to verify authentication is working and to ch - btcpay_server_get_payment_requests(store_id: string, includeArchived?: boolean) — Tool to list all payment requests for a specific store. Use after confirming you have the store ID. - btcpay_server_get_server_info() — Tool to retrieve information about the BTCPay Server instance. Use when needing server version, tor address, supported payment methods, and synchronization states. - btcpay_server_get_store(store_id: string) — Retrieves complete configuration and settings for a specific BTCPay Server store by its ID. Use this tool when you need to: - Get current store settings and configuration - Check store properties like - btcpay_server_get_user(id_or_email: string) — Retrieve information about a BTCPay Server user by ID or email. Use 'me' as the id_or_email parameter to get the currently authenticated user's profile. Alternatively, provide a specific user ID (UUID - btcpay_server_get_webhook(storeId: string, webhookId: string) — Retrieves detailed configuration of a specific webhook registered for a BTCPay store, including its callback URL, subscribed events, enabled status, and automatic redelivery settings. - btcpay_server_get_webhooks(storeId: string) — Lists all webhooks registered for a BTCPay Server store. Use this to retrieve webhook configurations for management, auditing, or to find webhook IDs for update/delete operations. - btcpay_server_list_apps(storeId: string) — Retrieve all apps (Point of Sale, Crowdfund, etc.) associated with a specific BTCPay Server store. Returns basic metadata for each app including its ID, name, type, creation timestamp, and archived st - btcpay_server_update_user(name?: string, email?: string, imageUrl?: string, newPassword?: string, currentPassword?: string) — Update the profile of the currently authenticated BTCPay Server user. Use this tool to modify user profile settings like display name, email, profile picture, or password. All fields are optional - on ## Example prompts - "What can I do in BTCPay Server?" - "Show me a summary of my BTCPay Server account" ## Links Docs: https://mcp.ai/docs/mcps/btcpay_server Website: https://mcp.ai/mcps/btcpay_server