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

Tools
10
What they doRead · write · destructive
6 · 3 · 16 read3 write1 destructive
Users sign in with
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

  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 and copy its redirect URI. The name you give it is the connection_name your code passes. See Configure connections.

  4. 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.

  5. 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 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-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
    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_send_stripe_mcp_feedbackSubmit feedback about a Stripe MCP tool experience.Write

    Send 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.Write

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