Skip to main content
Glama
jsyapps

Stripe MCP Server

by jsyapps

Stripe MCP Server

A Model Context Protocol (MCP) server that provides Stripe payment integration capabilities to Claude Desktop. This server enables you to create payment links, process payments, manage products and customers directly from Claude.

Features

  • Create payment links with products and prices

  • List and manage existing payment links

  • Update payment link settings

  • Support for billing address collection and promotion codes

Payment Processing

  • Create and confirm payment intents

  • Monitor payment status

  • Handle customer payment methods

Product & Price Management

  • Create and manage products

  • Set up pricing (one-time or recurring)

  • Product catalog management

Customer Management

  • Create and manage customer records

  • View customer payment history

  • Customer data management

Related MCP server: Stripe MCP

Setup

1. Install Dependencies

cd stripe_mcp
npm install

2. Build the Server

npm run build

3. Set Up Environment Variables

Create a .env file in the stripe_mcp directory:

STRIPE_SECRET_KEY=sk_test_your_stripe_secret_key_here

You can get your Stripe secret key from your Stripe Dashboard.

4. Configure Claude Desktop

Add the following to your Claude Desktop MCP configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "stripe": {
      "command": "node",
      "args": [
        "/path/to/your/stripe_mcp/dist/index.js"
      ],
      "env": {
        "STRIPE_SECRET_KEY": "sk_test_your_stripe_secret_key_here"
      }
    }
  }
}

Replace /path/to/your/stripe_mcp/ with the actual path to your stripe_mcp directory.

Usage Examples

// Create a simple payment link for a $20 service
create_payment_link({
  line_items: [{
    price_data: {
      currency: "usd",
      unit_amount: 2000, // $20.00 in cents
      product_data: {
        name: "Tutoring Session",
        description: "1-hour math tutoring session"
      }
    },
    quantity: 1
  }],
  billing_address_collection: "required",
  allow_promotion_codes: true
})

Create a Payment Intent

// Create a payment intent for direct processing
create_payment_intent({
  amount: 5000, // $50.00 in cents
  currency: "usd",
  description: "Monthly subscription payment",
  receipt_email: "customer@example.com"
})

Create a Customer

// Create a customer record
create_customer({
  email: "student@example.com",
  name: "John Doe",
  metadata: {
    student_id: "12345"
  }
})

Available Tools

  • create_payment_link - Create new payment links

  • list_payment_links - List existing payment links

  • get_payment_link - Get payment link details

  • update_payment_link - Update payment link settings

Payment Processing

  • create_payment_intent - Create payment intents

  • confirm_payment_intent - Confirm payments

  • get_payment_intent - Get payment details

  • list_payment_intents - List payment intents

Products & Prices

  • create_product - Create products

  • list_products - List products

  • get_product - Get product details

  • create_price - Create prices

  • list_prices - List prices

Customer Management

  • create_customer - Create customers

  • list_customers - List customers

  • get_customer - Get customer details

  • get_customer_payments - Get payment history

Development

Run in Development Mode

npm run dev

Test the Server

After building and configuring, restart Claude Desktop and you should see the Stripe tools available in your conversations.

Security Notes

  • Never expose your Stripe secret keys publicly

  • Use test keys during development

  • Set up webhooks in production for reliable payment status updates

  • Follow Stripe's security best practices

Support

For issues with this MCP server, please check:

  1. Your Stripe API keys are correct

  2. The server builds without errors (npm run build)

  3. Claude Desktop configuration is properly set up

  4. Environment variables are loaded correctly

For Stripe API questions, refer to the Stripe Documentation.

Available Tools

17 tools
confirm_payment_intentC

Confirm a payment intent

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPayment intent ID
return_urlNoURL to return to after payment
payment_methodNoPayment method ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only states that it confirms a payment intent, but does not mention potential side effects like charging the customer, the need for return_url, or what the response contains. This is a significant gap.

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?

The description is a single, short sentence that is front-loaded and free of unnecessary wording. Although it is minimal, it is not verbose; it earns a score slightly above the minimum because it conveys the core purpose without being wordy.

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

Completeness2/5

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

The tool has a simple schema but no output schema and no annotations, and the description is too brief to explain critical behavior such as return values, side effects, or when additional parameters like return_url are required. This is inadequate for a payment confirmation tool.

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 coverage is 100%: each parameter (id, return_url, payment_method) has a description in the input schema. The tool description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description uses the verb 'Confirm' with the resource 'payment intent', clearly identifying the action and distinguishing it from sibling tools like get_payment_intent or create_payment_intent. However, it lacks any additional scope or nuance, so it stops short of a 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, and gives no context about prerequisites or workflow. An agent is left without direction on how to choose this tool among the payment-related siblings.

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

create_customerC

Create a customer

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoCustomer name
emailNoCustomer email
phoneNoCustomer phone
metadataNoAdditional metadata
descriptionNoCustomer description

TDQS

C2.4/5.0
Behavior1/5

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

With no annotations, the description carries the full burden of disclosing behavioral traits. It merely states "Create a customer" with no mention of side effects, required permissions, idempotency, response format, or what happens if the customer already exists. This is a significant gap for a create operation.

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

Conciseness2/5

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

The description is extremely short, but this is under-specification rather than effective conciseness. It offers no structural benefit or added information over the tool name itself, making it nearly tautological.

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

Completeness1/5

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

The tool has 5 parameters (no required ones), no output schema, and no annotations. The description only restates the tool's name, providing no context about return values, side effects, or how this fits into the broader customer workflow. It is wholly inadequate for a create tool.

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?

The schema covers 100% of the parameters with descriptions, so the baseline is 3. The tool description adds no additional meaning beyond what the schema already provides. For instance, it does not explain how the parameters relate to the creation process or which are typically used together.

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

Purpose4/5

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

The description clearly states the action (create) and the resource (customer), which distinguishes it from sibling tools that list, get, or update customers or other entities. However, it lacks any additional scoping or clarifying details, so it is clear but minimal.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, use cases, or exclusions. For example, it does not clarify when to use create_customer instead of create_product or create_payment_intent, nor when a customer might already exist.

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

create_payment_intentC

Create a payment intent for processing payments

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount in cents
currencyYesCurrency code (e.g., usd)
customerNoCustomer ID
metadataNoAdditional metadata
descriptionNoDescription of the payment
receipt_emailNoEmail for receipt

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of disclosing behavioral traits. It mentions 'processing payments' but does not describe side effects, lifecycle (e.g., intent must be confirmed later), authentication needs, or reversibility.

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?

The description is a single sentence, front-loaded with the verb 'Create' and contains no unnecessary words. It is concise and well-structured, though minimal.

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

Completeness2/5

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

Given 6 parameters, no annotations, and no output schema, the description is insufficiently complete. It does not explain the payment intent lifecycle or how it relates to sibling tools, leaving critical context missing for correct usage.

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?

The input schema has 100% parameter coverage with descriptions for all 6 fields, so the description adds no additional parameter meaning. Baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states 'Create a payment intent' with a specific verb and resource. It is distinct from siblings like create_payment_link, but lacks explicit differentiation (e.g., 'use this for initial payment setup').

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like confirm_payment_intent or create_payment_link. The description merely states what it does, leaving the agent to infer usage.

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

create_priceC

Create a price for a product

ParametersJSON Schema
NameRequiredDescriptionDefault
productYesProduct ID
currencyYesCurrency code
metadataNoAdditional metadata
recurringNoFor subscription pricing
unit_amountNoPrice in cents

TDQS

C2.9/5.0
Behavior1/5

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

With no annotations, the description carries the full burden of disclosing behavior. It only repeats the tool's purpose without explaining side effects, idempotency, required permissions, or how recurring vs. one-time pricing behaves. This is a significant gap for a mutation tool.

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?

The description is a single, concise sentence with no filler. It is front-loaded with the action and resource. However, the extreme brevity is close to under-specification, so it does not earn a 5.

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

Completeness2/5

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

Despite a rich input schema with nested objects and optional recurring/unit_amount fields, the description does not explain expected behavior when optional fields are omitted, nor the return value. The lack of annotations and output schema makes this incomplete for reliable tool invocation.

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 input schema already documents all parameters. The description adds no parameter-level meaning beyond what the schema provides, but the schema descriptions (e.g., 'Price in cents', 'For subscription pricing') are adequate.

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 clearly states a specific action ('Create a price') and the resource ('for a product'). It is distinct from sibling tools like list_prices and create_product, which perform different operations on different resources.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or scenarios where another tool (e.g., create_product or create_payment_link) would be more appropriate.

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

create_productC

Create a product

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesProduct name
metadataNoAdditional metadata
descriptionNoProduct description

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure, but 'Create a product' only restates the action. It doesn't specify side effects, required permissions, idempotency, or what the response contains, leaving the agent without crucial behavioral context.

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

Conciseness3/5

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

The description is extremely concise, which is generally good, but it's under-specified. It communicates the core action in three words, yet this brevity sacrifices valuable context that could be included without being verbose, such as noting required fields or use cases.

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

Completeness2/5

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

Given the tool has 3 parameters, no output schema, and no annotations, the description is insufficient. It doesn't mention return values, error conditions, or how this fits into the broader product lifecycle, making it incomplete for an agent to invoke confidently.

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?

The schema descriptions cover 100% of the parameters (name, metadata, description), so the baseline is 3. The tool description adds no additional parameter semantics, but the schema already provides adequate meaning for each field.

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

Purpose4/5

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

The description 'Create a product' clearly states the verb (create) and the resource (product), making the tool's primary purpose evident. However, it doesn't provide additional context to distinguish it from sibling create tools like create_price or create_customer, though the resource is explicitly different.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. While the name implies it's for creating products, the description doesn't mention any prerequisites, when not to use it, or compare it with related tools like create_price or create_payment_link.

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

get_customerC

Get customer details

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCustomer ID

TDQS

C2.7/5.0
Behavior1/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It does not mention what the tool returns, error behavior, authentication requirements, or any side effects. 'Get customer details' simply restates the tool's purpose without adding behavioral context.

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?

The description is a single short sentence, front-loaded and free of extraneous words. It is appropriately concise for a simple retrieval tool, although it borders on under-specification.

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

Completeness2/5

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

With a single parameter, no output schema, and no annotations, the description should at least explain what 'details' includes or what kind of response to expect. It does not, and it also fails to differentiate from sibling tools, leaving the agent with minimal context.

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?

The input schema covers the only parameter 'id' with description 'Customer ID' (100% coverage). The description adds no additional meaning to the parameter, so the schema carries the full burden. Baseline 3 applies for high schema coverage.

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

Purpose4/5

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

The description 'Get customer details' uses a specific verb ('Get') and resource ('customer details'), clearly indicating a retrieval operation. It is distinguishable from siblings like 'get_customer_payments' and 'list_customers' by focusing on general customer information, though the term 'details' is somewhat vague.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as 'list_customers' or 'get_customer_payments'. There is no context about prerequisites, common use cases, or exclusions, leaving the agent to infer usage solely from the tool name.

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

get_customer_paymentsB

Get payment history for a customer

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoLimit number of results
customer_idYesCustomer ID

TDQS

B3.1/5.0
Behavior2/5

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

There are no annotations, so the description bears full responsibility for disclosing behavior. It only states the basic purpose and does not mention read-only nature, pagination, ordering, what constitutes 'payment history', or any side effects. For a read tool, the lack of detail is a notable gap.

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?

The description is a single, front-loaded sentence with no unnecessary words. It is concise and easy to parse, though it could benefit from slightly more detail without becoming verbose.

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

Completeness2/5

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

The tool lacks annotations and an output schema, so the description should explain return values or behavioral nuances to be complete. It does not describe what the payment history contains, how limit is applied, or any response structure, leaving significant gaps for an agent.

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 coverage is 100% and both parameters (customer_id, limit) have descriptions in the schema. The tool description adds no additional parameter semantics beyond the schema, so the baseline of 3 is appropriate.

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

Purpose4/5

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

The description 'Get payment history for a customer' clearly identifies the verb (get) and resource (payment history) with a customer scope. It is unambiguous and distinct from sibling tools like get_payment_intent or get_payment_link, though it does not explicitly name alternatives.

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

Usage Guidelines3/5

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

The phrase 'for a customer' implies this tool is used when you need a customer's payment records, especially given the customer_id parameter. However, it provides no explicit when-to-use guidance or differentiation from alternatives like list_payment_intents or get_payment.

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

get_payment_intentB

Get payment intent details

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPayment intent ID

TDQS

B3.3/5.0
Behavior2/5

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

There are no annotations, so the description must carry the full burden of behavioral disclosure. It only says 'Get payment intent details' and does not mention return format, error behavior, or whether the operation is read-only, which is a notable gap for an unannotated tool.

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?

The description is a single concise sentence with no filler words. It is front-loaded with the action and resource, and every word earns its place. Ideal for a simple retrieval tool.

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

Completeness3/5

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

Given the simplicity (1 param, no output schema), the description is adequate but not complete. It doesn't describe the returned details (e.g., status, amount) or edge cases, which would be expected since no output schema exists. Overall, it meets the minimum viable threshold.

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?

The input schema fully covers the single parameter 'id' with description 'Payment intent ID', so schema coverage is 100%. The description adds no additional meaning to the parameter, thus receiving the baseline score of 3.

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 'Get payment intent details' clearly specifies the action (get) and resource (payment intent), and distinguishes it from siblings like confirm_payment_intent or get_payment_link. The verb and object are unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as list_payment_intents or confirm_payment_intent. It does not state any exclusions or prerequisite conditions, leaving usage entirely implied.

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

get_productB

Get product details

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesProduct ID

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description only states 'Get product details', which implies a read operation but gives no information about return format, error handling, permissions, or side effects.

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?

The description is a single concise sentence with no filler, effectively communicating the tool's core function.

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

Completeness3/5

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

Given the simple nature of the tool (one parameter, no output schema), the description is minimally sufficient but lacks details about what 'product details' includes or any related context; score of 3.

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?

The input schema fully documents the required 'id' parameter with description 'Product ID', so the description does not need to add parameter details; baseline score of 3.

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?

Description 'Get product details' clearly identifies a retrieval action for a product resource, distinguishing it from sibling tools like get_payment_link or create_product.

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

Usage Guidelines2/5

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

Description provides no context on when to choose this over alternatives, such as list_products or get_customer; no prerequisites or exclusions are mentioned.

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

list_customersD

List customers

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoFilter by email
limitNoLimit number of results

TDQS

D1.7/5.0
Behavior1/5

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

No annotations are provided, and the description gives no behavioral information such as whether it returns all customers, supports pagination, or the format of the response. The description carries no burden of disclosure.

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

Conciseness2/5

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

While extremely short, the description is under-specified rather than concise. It simply restates the tool name without adding useful information, so it does not 'earn its place.'

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

Completeness1/5

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

With no annotations, no output schema, and a minimal description, the context is severely lacking. Agents are not told what the returned data looks like, whether there is pagination, or any parameters' behavior.

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?

The input schema provides full descriptions for both parameters (email and limit), so the baseline is 3. The description itself adds no further parameter context, but the schema suffices.

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

Purpose2/5

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

The description "List customers" is a direct restatement of the tool name, providing no additional detail about the resource, scope, or behavior. It does not distinguish from sibling tools like get_customer or get_customer_payments beyond the resource name.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool over alternatives. No mention of filters, pagination, or use cases is provided.

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

list_payment_intentsB

List payment intents

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoLimit number of results
customerNoFilter by customer ID

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description must convey behavioral traits, but it only says 'List'. It does not disclose pagination behavior, default limits, ordering, or whether it returns only successful intents. The agent is left to infer the full behavior from the schema alone.

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?

The description is a single, front-loaded sentence with zero wasted words. It communicates the essential purpose efficiently, matching the calibration example for conciseness.

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

Completeness3/5

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

Given the tool's simplicity (2 optional params, no output schema), the description is minimally viable but has gaps: it lacks usage guidance, pagination details, and any differentiation from similar list tools. The schema helps, but the description alone does not fully equip an agent.

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%, with both parameters ('limit' and 'customer') clearly described in the input schema. The description adds no extra semantic detail beyond what the schema provides, so the baseline score of 3 is appropriate.

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 'List payment intents' uses a specific verb (list) and explicit resource (payment intents), clearly distinguishing it from siblings like get_payment_intent (singular fetch) and create_payment_intent. It is unambiguous and directly states the operation.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It does not mention that it is the standard way to fetch multiple intents, nor does it distinguish from list_payment_links or get_customer_payments. The description is purely a statement of function without context.

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

list_pricesC

List prices

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoLimit number of results
activeNoFilter by active status
productNoFilter by product ID

TDQS

C2.4/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only repeats the tool name and fails to mention read-only status, return format, pagination, or any side effects, which is a significant gap.

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

Conciseness2/5

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

At only two words, the description is extremely concise but under-specified. It acts as a title rather than a functional description, offering no structure or additional information, which is closer to under-specification than effective brevity.

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

Completeness2/5

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

Given the tool has three parameters, no output schema, and no annotations, the description is too minimal to contextualize the tool's behavior. It does not explain what a 'price' represents in this context or what the response will look like, leaving the agent with limited understanding.

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?

The input schema provides descriptions for all three parameters (limit, active, product), achieving 100% coverage. The description adds no extra parameter meaning, but the baseline of 3 is appropriate given the schema's completeness.

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

Purpose4/5

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

The description clearly states the action ('list') and the resource ('prices'), making the tool's purpose unambiguous. It differentiates from siblings like list_products or list_payment_links by naming the specific resource, though it offers no additional detail beyond the tool name.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. There is no mention of context, prerequisites, or exclusions, leaving the agent without direction on tool selection.

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

list_productsC

List products

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoLimit number of results
activeNoFilter by active status

TDQS

C2.4/5.0
Behavior1/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only states 'List products' and does not disclose the return format, default limit, inclusion of inactive products, or any side effects. The schema hints at an 'active' filter, but the description does not elaborate on behavior.

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

Conciseness2/5

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

The description is extremely short and under-specified, essentially repeating the tool name without adding useful detail. While concise, it does not earn its place because it lacks the necessary information an agent needs to make informed decisions.

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

Completeness2/5

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

The tool has two optional parameters and no output schema. The description fails to explain what the response looks like, any default behavior, or how the parameters affect the result. For a list operation, this is incomplete and leaves critical gaps for an agent.

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?

The schema provides descriptions for both parameters ('limit' and 'active'), covering 100% of parameters. The description adds no additional meaning about how these parameters affect results, so the schema handles the semantic load. Baseline 3 is appropriate.

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

Purpose4/5

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

The description 'List products' uses a clear verb and resource, identifying the primary function. It distinguishes from sibling tools like 'list_prices' or 'list_customers' by naming the specific resource, but adds no extra scope or context beyond the tool name.

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

Usage Guidelines2/5

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

No usage guidance is provided. The description does not mention when to use this tool versus alternatives like 'get_product' or 'list_prices', nor does it clarify whether this lists all products or only those matching the 'active' filter. There are no exclusions or alternative references.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 17 tool updatesv1.0.0
    • First observedconfirm_payment_intent
    • First observedcreate_customer
    • First observedcreate_payment_intent
    • First observedcreate_payment_link
    • First observedcreate_price
    • First observedcreate_product
    • First observedget_customer
    • First observedget_customer_payments
    • First observedget_payment_intent
    • First observedget_payment_link
    • First observedget_product
    • First observedlist_customers
    • First observedlist_payment_intents
    • First observedlist_payment_links
    • First observedlist_prices
    • First observedlist_products
    • First observedupdate_payment_link

TDQS

C2.9/5.0

Scored across 17 tools

Disambiguation4/5

Tools are clearly divided by resource (payment links, payment intents, products, prices, customers), but there is some potential overlap between payment links and payment intents, and between list_payment_intents and get_customer_payments. Descriptions help distinguish them, but an agent might occasionally misselect.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., create_payment_link, list_prices, get_customer), using lowercase snake_case throughout. This makes the API predictable and easy to navigate.

Tool Count4/5

17 tools is slightly above the ideal range but still appropriate for Stripe's domain, covering payment links, intents, products, prices, and customers. Each tool addresses a distinct need, though a few could be consolidated without loss.

Completeness3/5

Core CRUD operations exist for payment links, products, and customers, but are incomplete: products and customers lack update/delete, prices lack a get endpoint, and payment intents lack cancel/refund capabilities. This creates workflow gaps for managing the full lifecycle.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers