Skip to main content
Glama

Connect Stripe payments

lavela.connect_stripe

Let the user's app take payments: connect their Stripe account (mode 'oauth') or create one (mode 'new' — also the fallback when oauth fails). Confirm with the user first — it starts Stripe KYC (usually 1–5 days); poll lavela.get_status for the onboarding link. status 'choice_required' started nothing: reuse one of its options (reuseAccountId) or create a new account (forceNew:true), as the user picks; with choice 'payout_country', ask the user which country their bank account is in and pass it as payoutCountry. status 'guide': Stripe doesn't take that country, nothing was created — the result lists the other ways to collect payments; lavela.payments_options (advanced) narrows them to the user's answers. Details: https://console.lavela.dev/docs/mcp#payments

Input Schema

NameRequiredDescriptionDefault
modeYes
forceNewNoAlways create a new Stripe account, skipping the reuse check.
projectIdYes
payoutCountryNoCountry of the user's bank account (ISO 3166-1, e.g. KR) — ask, don't guess. mode 'new' only.
reuseAccountIdNoReuse an existing Stripe account: an accountId from a choice_required result's options. mode 'new' only.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / payoutCountry
      Added value: +{
      +  "description": "Country of the user's bank account (ISO 3166-1, e.g. KR) — ask, don't guess. mode 'new' only.",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=false), it discloses that calling starts Stripe KYC (1–5 days), that 'choice_required' started nothing, and that 'guide' created nothing while listing alternatives. This is rich operational context the annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Content is front-loaded (mode semantics first, then status handling) and every sentence carries instructions. It is dense and multi-clause, which slightly taxes readability, but there is little waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still explains the meaningful result states (choice_required with options, guide with alternatives), KYC timing, the required user confirmation, and the polling partner tool — everything an agent needs to invoke and follow up correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 60%, but the description compensates well: it explains that 'new' is the fallback for oauth, that reuseAccountId comes from a choice_required result's options, and that forceNew forces a new account. payoutCountry and projectId semantics are largely carried by the schema, so a small residual gap remains.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('connect their Stripe account ... or create one') with a clear outcome ('let the user's app take payments'), and distinguishes the two modes by name. It is easily separable from siblings like connect_github, create_checkout, or topup_link.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly routes the agent: use 'oauth' vs 'new', 'new' is the fallback when oauth fails, confirm with the user first, poll lavela.get_status for the link, and handle 'choice_required' vs 'guide' with concrete next actions. It even names lavela.payments_options as the advanced alternative for narrowing options.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.