A boilerplate MCP server with Stripe integration for paid tools and Google/Github authentication
Six tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. Tool names lack action verbs (add, calculate, check_payment_history are acceptable but onetime_add, subscription_add, metered_add are vague about what distinguishes them). All tools have descriptions (10-80 chars), but most are too brief to guide LLM selection. Input schemas present but parameter descriptions are minimal (1-2 words). No documented output schemas. Error handling and recovery guidance absent. Composition issues: three tools (onetime_add, subscription_add, metered_add) perform the same operation (add two numbers) with different payment models, this should be a single tool with a payment_mode parameter, not three separate tools.
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.
Three tools (onetime_add, subscription_add, metered_add) duplicate functionality with unclear naming. Names do not convey the payment model distinction. Should consolidate into a single 'add' tool with a payment_mode enum parameter.
Tool names lack action verbs or are ambiguous. 'onetime_add', 'subscription_add', 'metered_add' do not clearly signal what distinguishes them from 'add'. Rename to clarify intent (e.g., 'add_with_onetime_payment', or better: consolidate into one tool).
Descriptions are too brief (40-80 chars). 'Adds two numbers together for one-time payment' lacks context on when to use it vs alternatives, prerequisites (logged-in user?), or what happens on success/failure. Expand to 100-200 chars with selection guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
No output schemas documented. LLMs cannot plan downstream calls or extract results. Document what each tool returns (e.g., add returns {result: number}, check_payment_history returns {subscriptions: [...], one_time_purchases: [...]}).
Parameter descriptions are minimal (1-2 words: 'First number', 'Second number'). No guidance on valid ranges, formats, or constraints. Add min/max bounds and explain what happens with edge cases (division by zero, negative numbers).