Stripe processes payments and manages customers, subscriptions, invoices, and financial data. Its MCP server supports OAuth for user-delegated access and Agent API keys for independent, persistent access.
This guide prepares Stripe for an MCP client. The Stripe agent template is separate from Stripe-side authentication and key management.
Choose a connection method
Choose OAuth for an interactive connection. Choose an Agent API key for a non-interactive agent. Stripe MCP will stop accepting full-access secret keys and ordinary restricted keys after November 30, 2026. See Stripe MCP authentication.
Recommended: OAuth
Use OAuth when the MCP client acts on behalf of a Stripe user. Start the browser consent flow, grant only the intended sandbox or live-mode accounts, and select the least privilege available for each environment. Review tool calls: OAuth can expose both read and write capabilities, depending on the granted account permissions.
Alternative: Agent API key
For a non-interactive managed agent, create an Agent API key in a Stripe sandbox. Give it only the permissions the agent needs, store it in secret storage with a named owner and rotation date, and send it as Authorization: Bearer <Agent API key>. Do not substitute a full-access secret key or an ordinary restricted key.
Connected-account note
Stripe MCP OAuth does not support acting on behalf of connected accounts. A Connect platform must use an Agent API key for its platform and provide the permitted Stripe-Account header for the connected account.
Verify Stripe MCP
Use this checklist to confirm the MCP server is connected with the intended access.
- Connect the MCP client using the reviewed OAuth grant or restricted test-mode API key.
- Confirm that Stripe MCP tools are discovered.
- Read a known test customer, invoice, or payment.
- Attempt to access live-mode data or an object outside the approved account boundary; it should be unavailable or denied.
- Confirm that creation, refunds, payouts, and other unreviewed write actions are unavailable.
Troubleshooting
If the setup does not work as expected, check these common causes.
- If authentication fails, confirm that the credential belongs to the expected Stripe account and mode, and that its redirect URI or restricted permissions match the configured connection.
- If expected test data is missing, verify that the client is using test mode and that the API key is restricted only to the needed account and read operations.
- If a live-mode object appears in a test connection, revoke the credential and review the mode and account boundary before retrying.
Moving to live mode
Treat live-mode authorization as a new review. Create a separately restricted live credential only after the vendor-side test is complete and the permitted Stripe objects/actions are documented. Never substitute a live secret key for a missing restricted permission.
Next steps
Deploy the Stripe agent template to create a governed agent in Dome that can work with the approved test-mode or live-mode boundary, with the template's included model, tools, and rules.