Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Stripe MCP server

Vendor MCP
Open markdown

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 11 tools.

Tools
11
What they doRead · write · destructive
6 · 4 · 16 read4 write1 destructive
Users sign in with
OAuth app
Scalekit's or your own

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

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. 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>
  3. Create the Stripe MCP connection

    In AgentKit > Connections, create a Stripe MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Stripe, so you don't need to register an OAuth app.

  4. 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.actions
    const connector = 'stripemcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { 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 call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'stripemcp_list_available_accounts_or_orgs',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • stripemcp_list_available_accounts_or_orgsLists all Stripe accounts available in this session with their stripe_context and livemode values.Read-only

    List 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-only

    Manage 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-only

    Search 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 user question about integrating with Stripe will be used to search the documentation.
    languagestring
    The programming language to search for in the documentation.one of dotnetgojavanodephprubypythoncurl
    search_only_api_refboolean
    When set to true, search only in the Stripe API reference documentation instead of the full documentation set. Use true when users need specific API implementation details, code examples, or parameter references. Use false (default) for conceptual explanations, best practices, integration guides, or troubleshooting help.
  • stripemcp_stripe_api_detailsGet the full parameter schema for a specific Stripe API operation.Read-only

    Stripe 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-only

    Stripe 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
    All path, query, and request-body values for the API call. Include path parameters here, named as in the path's curly braces (e.g. 'id' for /v1/customers/{id}). 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
    stripe_contextstringrequired
    The account to target for this request. Use the `stripe_context` value returned by list_available_accounts_or_orgs.
  • stripemcp_atlas_company_formationStripe Atlas: start or resume a Delaware C corp/LLC formation.Write

    Atlas Company Formation

    Stripe Atlas: start or resume a Delaware C corp/LLC formation. Set action to: - "list": check for existing applications before "create", using an authorized account. Returns applications the current user can access as primary representative. Show any matches to the user. Applications with submitted_at are already submitted; offer to resume only drafts or create a separate company. - "create": create a new Atlas application, which also creates a new Stripe merchant required for Atlas. You can call "create" from a sandbox or testmode account; the new Stripe account is always a live account. Follow the returned authorization instructions. - "retrieve": load the formation and next step on the authorized Atlas account. - "advance": save step and data. Follow next_step_instructions and next_step_schema; steps can be revisited. For a chosen merchant_id, get stripe_context from list_available_accounts_or_orgs. That tool checks session access, not application existence. If the account is missing, authorize it with manage_stripe_accounts and refresh the account list before retrieving its formation. Drafts only: submission, signing, payment, and personal tax IDs happen in the Dashboard. Creation is not idempotent. After a timeout or unclear failure, don't retry "create"; use "list" and "retrieve" before resending only missing changes using returned IDs.

    Inputs

    actionstringrequired
    List accessible Atlas applications, create a new one, retrieve the current formation, or save a formation step.one of listcreateretrieveadvance
    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.
    dataobject
    Answers matching the returned next_step_schema. Required for advance except validate, where it is ignored. Omit for list, create, and retrieve.
    stepstring
    Required for advance; use the step returned by retrieve. Omit for list, create, and retrieve.
  • stripemcp_send_stripe_feedbackShare feedback about Stripe's products.Write

    Send Stripe Feedback

    Share feedback about Stripe's products. Submit when the user gives product feedback or you observe something concrete that worked or failed. Do not report model behavior, the user's local environment, an unclear prompt, or a recovered tool error. Use actor "human" for the user's own words; "agent" for your observations. Not a support channel — no ticket or reply.

    Inputs

    contextstringrequired
    What the user was trying to accomplish. Do not include sensitive business information.
    messagestringrequired
    What broke or worked, concrete and specific. At least 5 words.
    sentimentstringrequired
    positive, negative, or neutralone of positivenegativeneutral
    actorstring
    Who decided to submit: human or agent. Defaults to agent.one of humanagent
    feature_areastring
    Product area this feedback is about.one of paymentsconnectsubscriptionsbillingpayoutsreportinginvoicinginvoicescheckouttaxradarissuingterminaltreasurycapitaldocswebhooksclidashboardcryptostablecoinsmanaged-paymentsmcpidentityskillsappsother