Announcing Dome Managed Agents.

Try it now

How to set up the Stripe MCP server

Configure Stripe MCP with OAuth or an Agent API key, test-mode data first, and separate live-mode approval.
Tu Nguyen

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.

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.

More from the blog.

Audit schema v2
Existing detectorPass
New fieldactor_scope
CompatibilityChecked
decision_id dec_42tool_call call_8fbackend_req req_91
MCP setup

Next perspective,straight to your inbox.

Subscribe

Each new perspective and field guide, the week it publishes. Nothing else.

Product updates

Release notes and platform changes live on the updates page.

Every agent you run,under one system of control.