A boilerplate MCP server with Stripe integration for paid tools and Google/Github authentication, deployed on Cloudflare Workers
This boilerplate demonstrates basic tool structure with 6 tools, all with descriptions and input schemas. However, definitions lack depth and specificity. Tool names are generic (add, calculate) without clear verb-noun patterns. Descriptions are minimal (10-50 chars) and lack context on when to use each tool or what distinguishes them. Parameter descriptions exist but are sparse. No output schemas documented. Error handling is absent from visible code. The payment-gated tools (onetime_add, subscription_add, metered_add) are poorly differentiated, their descriptions don't explain the business logic or when an agent should choose one over another. This is a boilerplate, not production-grade.
This tool adds two numbers together.
This tool performs a calculation on two numbers.
This tool checks for active subscriptions and one-time purchases for the logged in user's Stripe customer ID.
Adds two numbers together for metered usage.
Adds two numbers together for one-time payment.
Adds two numbers together for paid subscribers.
Tool names lack action verbs and are ambiguous. 'add' and 'calculate' don't distinguish intent. 'onetime_add', 'subscription_add', 'metered_add' are compound names that conflate payment model with operation. Should be 'add_numbers_onetime_payment', 'add_numbers_subscription', etc., or better yet, a single 'add_numbers' tool with a 'billing_model' parameter.
Descriptions are too brief (10-50 chars) and lack context. 'This tool adds two numbers together' doesn't explain when to use 'add' vs 'calculate', or why payment-gated variants exist. No mention of prerequisites (logged-in user, active subscription) or what the tool returns beyond the sum.
check_payment_history has empty input schema ({}). No parameters documented. Unclear what user context is required or how the tool identifies the customer. Does it use the logged-in user's Stripe ID? How does the agent know if a user is eligible?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. What does 'add' return? A number? An object with {result, timestamp}? What does check_payment_history return, a list of subscriptions, a boolean, or structured payment records?
No error handling or recovery guidance visible. If a payment fails, what does the agent see? If a user is not logged in, does the tool return a clear error message or a cryptic failure? No error classification (retryable vs fatal) documented.