Skip to main content
Glama

stripe_api_write

Destructive

[WRITE — changes the user's live Stripe account] Create, update or delete Stripe objects with any POST/DELETE method (customers, products, prices, invoices, coupons, refunds…). Requires confirm:true. Refunds and other money movement may need the user's approval in Stripe first; the reply then says NOT DONE YET and gives the approval link.

Input Schema

NameRequiredDescriptionDefault
confirmNoMust be true to run. Set it only after the user has seen and agreed to the exact request.
parametersNoAll path, query and body values for the call. Path parameters go here named as in the path's braces (e.g. 'id' for /v1/customers/{id}). Array fields such as line_items must be JSON arrays.
human_confirmationNoOnly after the user approved a held request at Stripe's approval link: pass the approval_token Stripe gave them, with the exact same other arguments.
stripe_api_operation_idYesThe Stripe operation id, e.g. GetCustomers, GetSubscriptions, PostCustomers. Find it with stripe_api_search.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the destructiveHint/openWorldHint annotations: it warns that changes hit the user's live account, that refunds may be held for the user's approval in Stripe, and that the reply will read 'NOT DONE YET' with an approval link. That held-request behavior is exactly the non-obvious trait an agent would otherwise misread as a failure.

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

Conciseness5/5

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

Three compact sentences, front-loaded with the destructive warning, then the operation scope, then the confirmation and approval mechanics. No filler.

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?

For a generic pass-through write tool with a nested parameters object, it covers the destructive scope, the confirmation gate, the held-approval recovery path, and how to locate the operation id. No output schema exists, but the description explains what a held response looks like.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents confirm, parameters, human_confirmation and the operation id. The description reinforces the confirm:true requirement and the approval-token flow but adds little syntax beyond that, so baseline 3 applies.

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?

States a specific verb set (create/update/delete) and resource (Stripe objects via POST/DELETE), with concrete examples of object types. The 'WRITE' prefix and 'POST/DELETE' qualifier cleanly separate it from stripe_api_read.

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

Usage Guidelines4/5

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

Clear context for when to use: any mutating Stripe call, with the confirm:true prerequisite and the approval-link path for money movement. It never explicitly names stripe_api_read as the alternative for GETs, leaving that inference to the agent.

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.

Resources