BTCPay Server
BTCPay Server is a free, open-source, self-hosted Bitcoin payment processor that enables merchants to accept Bitcoin payments without intermediaries.
Verdict
Common use cases
- Generate payment links for client invoices
- Check transaction status during support calls
- Provision stores for new merchant accounts
- Revoke compromised API keys immediately
- Reconcile payouts at month-end close
Integration
- Vendor
- BTCPay Server
- Category
- other
- Auth
- API_KEY
- Tools
- 17
- Composio slug
btcpay_server
Tools
- Create BTCPay Server User
Tool to create a new btcpay server user. use when you need to register a new user programmatically as an administrator.
- Create Payment Request
Tool to create a new payment request for a store. use after confirming store id.
- Create Store
Tool to create a new store in btcpay server. use when you need to provision a new store before processing transactions.
- Delete API Keydestructive
Tool to revoke a specific api key. use when you need to remove an api key to immediately prevent its use. call after identifying the key to revoke.
- Delete Payment Requestdestructive
Tool to delete a specific payment request. use when you need to archive/remove an existing payment request for a store.
- Delete Store Payoutdestructive
Tool to delete a specific payout from a store. use when you need to cancel a payout no longer needed.
- Get API Key
Tool to retrieve the current api key. use after authentication to get api key details.
- Get BTCPay Server Info
Tool to retrieve information about the btcpay server instance. use when needing server version, tor address, supported payment methods, and synchronization states.
- Get BTCPay Server User
Tool to retrieve information about a specific user. use when you need to fetch profile data for a given user id or email.
- Get Payment Requests
Tool to list all payment requests for a specific store. use after confirming you have the store id.
- Get Store
Tool to retrieve information about a specific store. use when you need full store configuration.
- Get Store Webhook
Tool to retrieve details of a specific webhook. use when you need to verify the configuration or status of a webhook for a given store after its creation.
- List API Keys
Tool to list api keys. use when you need to retrieve all api keys associated with the authenticated user.
- List Apps
Tool to list all apps associated with a specific store. use when retrieving basic metadata of every app in that store.
- List Store Webhooks
Tool to list all webhooks registered for a store. use when you need to retrieve the configured webhooks for management or auditing.
- Register a Webhook
Tool to register a new webhook. use when you need to receive store event notifications.
- Update BTCPay Server User
Tool to update current user information. use when you need to modify your authenticated user profile on btcpay server.
Setup
Setup guide
- 11. Open your BTCPay Server dashboard and navigate to Account → API Keys. 2. Click 'Generate Key' and grant the permissions your team needs — at minimum: view stores, create payment requests, manage users. 3. Copy the generated API key and the base URL of your BTCPay instance (e.g. https://btcpay.yourcompany.com). 4. In Switchy, go to Settings → Integrations → BTCPay Server and click 'Connect'. 5. Paste your API key and base URL into the form, then click 'Authorize'. 6. Open any Space and type '@BTCPay get server info' to confirm the connection works — you should see your server version and sync status. 7. To invoke other tools, @mention BTCPay and describe the task (e.g. '@BTCPay create a payment request for store abc123 for 50 USD').
What teammates see: by default, memories from BTCPay Server are scoped to the Space (PROJECT visibility) - you can mark any memory PRIVATE or share it ORG-wide.
Works well with
Top models
Compatibility data appears once enough Spaces have used this MCP together with a given model.
How Switchy teams use it
Starter prompts
Server Health Check
@BTCPay get server info and tell me the version, sync status for BTC and LTC, and whether the Tor address is reachable.Open in a Space →
Create Payment Request
@BTCPay create a payment request for store ID st-abc123 for 150 USD with the description 'Q1 consulting invoice' and email it to client@example.com.Open in a Space →
Provision New Store
@BTCPay create a new store named 'ACME Widgets EU' and return the store ID so I can configure payment methods.Open in a Space →
Revoke API Key
@BTCPay delete the API key with ID key-xyz789 and confirm it's been revoked so it can't be used again.Open in a Space →
Cancel Stale Payout
@BTCPay delete the payout with ID po-456def from store st-abc123 and confirm it's been removed from the queue.Open in a Space →
Example outputs
Illustrative - representative of the model's voice and quality, not literal recordings.
@BTCPay what's the current status of our server instance, including sync state and supported payment methods?
Your BTCPay Server instance is running version 1.13.1. The server supports Bitcoin (on-chain), Lightning Network, and Monero as payment methods. Current sync status: Bitcoin mainnet is fully synchronized at block height 825,432. Lightning node has 12 active channels with 2.4 BTC total capacity. The server is accessible via Tor at btcpay...onion. No critical alerts detected.
This example demonstrates the server info retrieval tool, useful for health checks and configuration audits. Requires API key with 'ServerManagement' permission. The sync state and channel data reflect point-in-time snapshots — blockchain height advances continuously, so treat this as diagnostic context rather than real-time monitoring.
@BTCPay create a payment request for $250 USD in our 'Consulting Services' store, valid for 7 days, with description 'Q1 2024 Advisory Retainer'
Payment request created successfully. Request ID: pr_8x2k9mN4pL. Amount: $250 USD (approximately 0.0041 BTC at current rate). Expiration: 7 days from now (Jan 15, 2024). The payment link is btcpay.example.com/i/pr_8x2k9mN4pL. Customers can pay via Bitcoin on-chain or Lightning. Email notifications will be sent to store@example.com when payment is received. The request is now active and accepting payments.
This write-action example shows payment request creation, a core BTCPay workflow for invoicing. Requires 'StoreManagement' permission and a valid store ID. The BTC amount is calculated at creation time using the server's exchange rate provider — actual payment amount may vary slightly if the customer pays near expiration due to rate fluctuations.
@BTCPay review all payment requests created in the last 30 days across our stores and summarize which ones are still unpaid or expired
Analyzed 23 payment requests from the past 30 days across 3 stores. Status breakdown: 14 paid (total $3,420 USD), 5 expired unpaid (total $1,150 USD), 4 active awaiting payment (total $890 USD). The expired requests include two high-value items: 'Enterprise License' ($500) and 'Annual Support' ($400), both from the 'Software Store'. Active requests average 3.2 days remaining before expiration. Recommendation: Consider re-issuing the expired enterprise requests with extended validity periods.
This synthesis example pairs BTCPay's payment request listing with AI reasoning to surface actionable insights. Demonstrates how the MCP enables financial workflow analysis without exporting data to spreadsheets. Note that payment request retrieval may be paginated for stores with high transaction volumes — the AI will handle pagination automatically but response time increases with dataset size.
Use-case deep-dives
When BTCPay Server beats Stripe for crypto donations
A 6-person nonprofit running quarterly fundraisers needs to accept Bitcoin donations without paying 2.9% + $0.30 per transaction. BTCPay Server wins here because the Create Payment Request and Get BTCPay Server Info tools let you generate donation links tied to specific campaigns, track payment status in real time, and reconcile everything against your own node—no middleman taking a cut. The API_KEY auth means your finance lead can provision stores and payment requests without touching the Lightning node directly. The threshold: if you're processing fewer than 20 crypto donations a month, the operational overhead of running your own BTCPay instance probably isn't worth it compared to a hosted processor. Above that volume, you're saving enough in fees to justify the setup.
Automating contractor payouts for remote teams
A 3-person agency paying 12 overseas contractors monthly in Bitcoin needs to avoid wire transfer delays and currency conversion fees. BTCPay Server's Create Store Payout and Delete Store Payout tools let you batch payments, cancel mistakes before broadcast, and track settlement without logging into a wallet UI every time. The Create BTCPay Server User tool means each contractor can get read-only access to their payment history without seeing the full ledger. This setup works when your payout cadence is predictable and your contractors are comfortable with crypto. If half your team still wants fiat, you're adding conversion steps that negate the speed advantage—stick with Wise or Deel in that case.
When self-hosted billing makes sense for privacy-first SaaS
A 4-person team building a VPN or encrypted storage product wants subscription billing that doesn't leak customer payment data to Stripe or PayPal. BTCPay Server's Create Payment Request and Get API Key tools let you generate recurring invoice links, verify payments on-chain, and provision access without a third party seeing who paid. The 17 tools give you enough control to build a lightweight billing loop in your backend. The trade-off: you're responsible for monitoring payment confirmations and handling edge cases like underpaid invoices or network congestion. If your product's value prop is privacy and your customers already use crypto, this is the right call. If you're chasing mainstream adoption, the UX friction of asking users to fund a Lightning wallet will kill conversion.
Frequently asked
What does the BTCPay Server MCP do in Switchy?
It connects your self-hosted BTCPay Server instance to Switchy so AI agents can create stores, generate payment requests, manage users, and check transaction status without switching contexts. Your team can automate bitcoin payment workflows — like issuing invoices or checking payout status — directly from chat. The MCP uses your BTCPay API key to authenticate, so you control exactly which operations agents can perform.
Do I need admin access to my BTCPay Server to connect this?
Yes, you need an API key with sufficient permissions to perform the operations you want agents to handle. BTCPay Server uses API key authentication, not OAuth, so whoever connects the MCP must generate a key with scopes matching your use case — store creation and user management require admin-level keys, while read-only operations need fewer permissions. Check your BTCPay Server dashboard to create and scope the key before connecting.
Can the MCP accept bitcoin payments on behalf of customers?
No. The MCP creates payment requests and retrieves transaction status, but customers still complete payments through BTCPay Server's hosted checkout page or invoice interface. Think of it as automating the back-office work — generating invoices, checking if a payment cleared, managing payouts — not replacing the actual payment flow. Your BTCPay Server instance still handles all cryptographic operations and wallet interactions.
Why use this instead of calling the BTCPay API directly?
The MCP translates natural language into the correct API calls, so your team doesn't need to remember endpoint syntax or parameter names. If someone asks 'did the invoice for order 4782 get paid?', the agent queries the right endpoint and returns a plain-English answer. You skip writing integration code and your non-technical team members can interact with BTCPay Server without touching the API documentation.
Who on the team should connect the BTCPay Server MCP?
Whoever manages your BTCPay Server instance and has access to generate API keys. This is usually your finance lead or the engineer who administers your self-hosted server. Once connected, any Switchy workspace member can ask agents to perform BTCPay operations within the scope of the API key's permissions, but only the connector can rotate or revoke the key.