Skip to main content
Glama
CSOAI-ORG

Stripe Billing MCP

create_subscription

Subscribe a Stripe customer to a price or plan using customer ID and price ID, with optional trial days.

Instructions

Subscribe a customer to a price/plan.

Args: customer_id: Stripe customer ID (cus_...) price_id: Stripe price ID (price_...) trial_days: Optional trial period in days

Behavior: This tool generates structured output without modifying external systems. Output is deterministic for identical inputs. No side effects. Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage.

When to use: Use this tool when you need structured analysis or classification of inputs against established frameworks or standards.

When NOT to use: Not suitable for real-time production decision-making without human review of results. Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
api_keyNo
price_idYes
trial_daysNo
customer_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

D1.2/5.0
Behavior1/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It claims the tool is 'read-only', 'produces no side effects', and 'does not modify any external state, databases, or files.' For a tool named create_subscription with Stripe customer/price IDs, this is highly misleading and likely false. The detailed behavioral bullets are transparent in form but inaccurate in substance.

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

Conciseness1/5

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

The description is long and highly repetitive: 'no side effects', 'read-only', and 'no authentication' appear multiple times. The boilerplate 'Behavioral Transparency' section duplicates earlier claims and adds irrelevant content for a subscription tool. The verbosity obscures rather than clarifies the tool's actual purpose.

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?

Given no output schema and no annotations, the description should clarify the real effect, return value, and side effects. Instead it describes a fictional in-memory analysis tool and omits what happens when a subscription is created. It is incomplete and misleading for the actual Stripe operation implied by the tool name and inputs.

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

Parameters2/5

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

The Args section adds useful meaning for customer_id, price_id, and trial_days, including ID format hints. However, schema coverage is 0% and the api_key parameter is completely omitted. The later auth note refers to MEOK_API_KEY environment variable, not the api_key parameter, leaving one parameter undocumented and creating confusion.

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

Purpose1/5

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

The opening line 'Subscribe a customer to a price/plan' states a clear verb and resource, but the next lines claim 'This tool generates structured output without modifying external systems' and describe it as 'structured analysis or classification.' This directly contradicts the tool's name, Stripe parameters, and sibling tools. An agent cannot determine whether this creates a subscription or performs read-only analysis.

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?

The 'When to use' section says to use it for 'structured analysis or classification,' which does not match a subscription-creation tool. The 'When NOT to use' warning about 'real-time production decision-making' is unrelated and provides no guidance on when to choose create_subscription over siblings like create_checkout_session or cancel_subscription.

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