The Stripe MCP connector routes your AI agent's tool calls to Stripe's own MCP server through Scalekit. Each user signs in to Stripe once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 10 tools.
- Tools
- 10
- What they doRead · write · destructive
- 6 · 3 · 16 read3 write1 destructive
- Users sign in with
- OAuth
- OAuth app
- Your own Stripe app
What you can do
- Read Stripe data: look up customers, subscriptions, payments, and other objects in a Stripe account available to the session
- Create and refund: create or delete Stripe objects such as customers and refunds, with confirmation for sensitive actions
- Analyze revenue: run SQL reporting queries on revenue, products, payments, and subscription billing data
- Search documentation: find answers in Stripe docs and the API reference, including parameters and error codes
- Plan integrations: get use cases, decision guides, and doc links before building payments or billing
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Stripe MCP connection
In AgentKit > Connections, create a Stripe MCP connection and copy its redirect URI. The name you give it is the
connection_nameyour code passes. See Configure connections.Register an OAuth app
Stripe connections use your own OAuth app. Register one with Stripe and add the redirect URI you copied.
Then enter the app's Client ID and Client Secret on the Stripe MCP connection.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'stripemcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Stripe MCP:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'stripemcp_list_available_accounts_or_orgs',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "stripemcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Stripe MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="stripemcp_list_available_accounts_or_orgs",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolstripemcp_list_available_accounts_or_orgsLists all Stripe accounts available in this session with their stripe_context and livemode values.Read-onlyList available accounts or orgs
Lists all Stripe accounts available in this session with their stripe_context and livemode values. Call this first to get stripe_context and livemode before any account-specific operation. Ask the user which account to use unless already specified, and warn before switching between test mode and live mode.
Inputs
This tool takes no inputs.
stripemcp_manage_stripe_accountsReturns a URL to the Stripe Dashboard where the user can add accounts, remove accounts, or change permissions for this session.Read-onlyManage Stripe accounts
Returns a URL to the Stripe Dashboard where the user can add accounts, remove accounts, or change permissions for this session. Use when the user wants to add, remove, or modify permissions for an account — no need to call list_available_accounts_or_orgs first. After the user confirms they completed their changes, call list_available_accounts_or_orgs to sync the updated account list.
Inputs
This tool takes no inputs.
stripemcp_search_stripe_documentationSearch Stripe official documentation and API reference for answers.Read-onlySearch Stripe Documentation
Search Stripe official documentation and API reference for answers. Use this to look up Stripe concepts, API parameters, error codes, or integration guidance.
Inputs
questionstringrequired- The question or topic to search Stripe documentation for.
languagestring- Programming language for code examples in results. Defaults to no specific language.one of
dotnetgojavanodephprubypythoncurl search_only_api_refboolean- Set to true to search only the API reference. Set to false (default) to search all documentation including guides and tutorials.
stripemcp_stripe_api_detailsGet the full parameter schema for a specific Stripe API operation.Read-onlyStripe Api Details
Get the full parameter schema for a specific Stripe API operation. Use stripe_api_search to find the operation ID first (e.g. GetCustomers, PostRefunds), then call this to see all available parameters.
Inputs
livemodebooleanrequired- Whether to operate in livemode (true) or test mode/ sandbox (false). Must match the livemode of the stripe_context account.
stripe_api_operation_idstringrequired- The Stripe API operation ID to get details for. Get valid IDs from stripe_api_search (e.g. GetCustomers, PostRefunds, PostSubscriptions).
stripe_contextstringrequired- The account to target for this request. Use the `stripe_context` value returned by list_available_accounts_or_orgs.
stripemcp_stripe_api_readExecute a read-only (GET) Stripe API operation by its operation ID and parameters.Read-onlyStripe API Read
Execute a read-only (GET) Stripe API operation by its operation ID and parameters. Use stripe_api_search to discover available operations and stripe_api_details to see their parameters before executing.
Inputs
livemodebooleanrequired- Whether to operate in livemode (true) or test mode/ sandbox (false). Must match the livemode of the stripe_context account.
parametersobjectrequired- Parameters for the API call. Include path parameters (e.g. 'customer' for /v1/customers/{customer}), query parameters, and body parameters. Array fields (e.g. line_items) must be passed as a JSON array value, not as a plain string.
stripe_api_operation_idstringrequired- The operation ID to execute (e.g. PostCustomers, GetPaymentIntents).
stripe_contextstringrequired- The account to target for this request. Use the `stripe_context` value returned by list_available_accounts_or_orgs.
stripemcp_stripe_api_searchSearch available Stripe API operations by intent and resource.Read-onlyStripe Api Search
Search available Stripe API operations by intent and resource. Returns operation IDs (e.g. PostCustomers, GetSubscriptions) with their HTTP method and parameters — use these with stripe_api_details or stripe_api_read/stripe_api_write.
Inputs
intentstringrequired- The intent of the operation. Examples: create, list, refund.
livemodebooleanrequired- Whether to operate in livemode (true) or test mode/ sandbox (false). Must match the livemode of the stripe_context account.
resourcestringrequired- Target resource the operation is looking to manipulate. Examples: customer, payout methods, issuing card transactions.
stripe_contextstringrequired- The account to target for this request. Use the `stripe_context` value returned by list_available_accounts_or_orgs.
limitinteger- Maximum number of results to return.default
5
stripemcp_send_stripe_mcp_feedbackSubmit feedback about a Stripe MCP tool experience.WriteSend Stripe Mcp Feedback
Submit feedback about a Stripe MCP tool experience. Use source=user for feedback from a human, source=agent for feedback generated by an AI agent.
- Idempotent
Inputs
contextstringrequired- Additional context about what you were trying to do when you used the tool.
quotestringrequired- A direct quote or specific observation about the tool experience.
sentimentstringrequired- Sentiment of the feedback. Valid values: positive, negative, neutral.one of
positivenegativeneutral sourcestringrequired- Who generated this feedback. Valid values: user (human feedback), agent (AI-generated feedback).one of
useragent tool_namestring- Name of the specific Stripe MCP tool this feedback is about.
stripemcp_stripe_analyticsAnalyze Stripe data (e.g.WriteStripe Analytics
Analyze Stripe data (e.g. revenue, products, or payments) and run SQL-based reporting queries. Supports ad-hoc SQL (execute_query_run/retrieve_query_run against searchable tables via search_query_tables/retrieve_query_table) and pre-built subscription/billing metric templates (execute_query_template/retrieve_query_template). Monetary values are returned in the smallest currency unit.
Inputs
intentstringrequired- The intent of the tool call.one of
execute_query_runretrieve_query_runsearch_query_tablesretrieve_query_tableexecute_query_templateretrieve_query_template livemodebooleanrequired- Whether to operate in livemode (true) or test mode/ sandbox (false). Must match the livemode of the stripe_context account.
stripe_contextstringrequired- The account to target for this request. Use the `stripe_context` value returned by list_available_accounts_or_orgs.
paramsobject- The parameters for the tool call. Required parameters depend on the intent.
stripemcp_stripe_implementation_plannerStripe payment integration planner.WriteStripe Implementation Planner
Stripe payment integration planner. Use this BEFORE writing code when the user wants to accept payments, sell products online, set up billing, or build any Stripe integration — it returns use cases, decision trees, documentation links, and a guide_id for follow-up calls. Successor to stripe_integration_recommender.
Inputs
livemodebooleanrequired- Whether to operate in livemode (true) or test mode/ sandbox (false). Must match the livemode of the stripe_context account.
messagestringrequired- For new guides: describe the use case or business requirements. For existing guides: provide the latest user response or the full accepted transcript.
stripe_contextstringrequired- The account to target for this request. Use the `stripe_context` value returned by list_available_accounts_or_orgs.
acceptboolean- Set to true when returning the completed decision tree with your chosen options to receive the finalized integration guide.
guide_idstring- ONLY pass a guide_id that was returned by a previous call to this tool in this conversation. Never fabricate, guess, or reuse guide_ids from other sessions. If you do not have a guide_id from a prior response, omit this field entirely. Invalid guide_ids will be rejected.
stripemcp_stripe_api_writeExecute a write (POST/DELETE) Stripe API operation by its operation ID and parameters.DestructiveStripe API Write
Execute a write (POST/DELETE) Stripe API operation by its operation ID and parameters. Use stripe_api_search to discover available operations and stripe_api_details to see their parameters before executing. May require human confirmation for sensitive operations.
Inputs
livemodebooleanrequired- Whether to operate in livemode (true) or test mode/ sandbox (false). Must match the livemode of the stripe_context account.
parametersobjectrequired- Parameters for the API call. Include path parameters (e.g. 'customer' for /v1/customers/{customer}), query parameters, and body parameters. Array fields (e.g. line_items) must be passed as a JSON array value, not as a plain string.
stripe_api_operation_idstringrequired- The operation ID to execute (e.g. PostCustomers, GetPaymentIntents).
stripe_contextstringrequired- The account to target for this request. Use the `stripe_context` value returned by list_available_accounts_or_orgs.
human_confirmationobject- This tool might require human confirmation. To run it, first invoke it with the desired parameters, ignoring the `approval_token` parameter. If it requires human confirmation, the response will include an approval request ID and a URL to an approval page for the human to approve the tool call. Present this URL to the human as a clickable markdown link, and after they confirm approval, call the tool again with the same parameters plus `approval_token`.
No tools match.