# BTCPay Server — how to use (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.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_btcpay_server?ms=1787295960000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `btcpay_server_create_payment_request`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/btcpay_server`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/btcpay_server/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/btcpay_server/create/payment/request` — 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
  - body: { email?: string, title: string, amount: number|string, storeId: string, currency?: string, expiryDate?: string, description?: string, embeddedCSS?: string, customCSSLink?: string, allowCustomPaymentAmounts?: boolean }
- `POST https://api.mcp.ai/api/btcpay_server/create/store` — Tool to create a new store in BTCPay Server. Use when you need to provision a new store before processing transactions.
  - body: { name: string, website?: string, speedPolicy?: string, defaultCurrency?: string, invoiceExpiration?: integer }
- `POST https://api.mcp.ai/api/btcpay_server/create/user` — Tool to create a new BTCPay Server user. Use when you need to register a new user programmatically as an administrator.
  - body: { email: string, password: string, isAdministrator?: boolean }
- `POST https://api.mcp.ai/api/btcpay_server/create/webhook` — 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
  - body: { url: string, secret?: string, enabled?: boolean, storeId: string, authorizedEvents: object, automaticRedelivery?: boolean }
- `POST https://api.mcp.ai/api/btcpay_server/delete/api/key` — 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
  - body: { apikey: string }
- `POST https://api.mcp.ai/api/btcpay_server/delete/payment/request` — 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
  - body: { storeId: string, paymentRequestId: string }
- `POST https://api.mcp.ai/api/btcpay_server/delete/payout` — 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'
  - body: { storeId: string, payoutId: string }
- `POST https://api.mcp.ai/api/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
- `POST https://api.mcp.ai/api/btcpay_server/get/payment/requests` — Tool to list all payment requests for a specific store. Use after confirming you have the store ID.
  - body: { store_id: string, includeArchived?: boolean }
- `POST https://api.mcp.ai/api/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.
- `POST https://api.mcp.ai/api/btcpay_server/get/store` — 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
  - body: { store_id: string }
- `POST https://api.mcp.ai/api/btcpay_server/get/user` — 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
  - body: { id_or_email: string }
- `POST https://api.mcp.ai/api/btcpay_server/get/webhook` — Retrieves detailed configuration of a specific webhook registered for a BTCPay store, including its callback URL, subscribed events, enabled status, and automatic redelivery settings.
  - body: { storeId: string, webhookId: string }
- `POST https://api.mcp.ai/api/btcpay_server/get/webhooks` — 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.
  - body: { storeId: string }
- `POST https://api.mcp.ai/api/btcpay_server/list/apps` — 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
  - body: { storeId: string }
- `POST https://api.mcp.ai/api/btcpay_server/update/user` — 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
  - body: { name?: string, email?: string, imageUrl?: string, newPassword?: string, currentPassword?: string }

## Example prompts
- "What can I do in BTCPay Server?"
- "Show me a summary of my BTCPay Server account"

## More
- Page: https://mcp.ai/btcpay_server
- Agent spec (llms.txt): https://mcp.ai/btcpay_server/llms.txt
- Postman collection: https://mcp.ai/btcpay_server/postman.json
