170 lines
6.6 KiB
Markdown
170 lines
6.6 KiB
Markdown
# Stripe MCP Server - Tools Implementation Summary
|
|
|
|
## Overview
|
|
**Total Tools: 77** (target: 60-80) ✅
|
|
|
|
All 14 tool files have been fully implemented with proper TypeScript types, Zod validation, and comprehensive Stripe API coverage.
|
|
|
|
## Tool Breakdown by Category
|
|
|
|
### 1. **customers.ts** (6 tools)
|
|
- `stripe_list_customers` - List all customers with filtering
|
|
- `stripe_get_customer` - Retrieve specific customer
|
|
- `stripe_create_customer` - Create new customer
|
|
- `stripe_update_customer` - Update customer details
|
|
- `stripe_delete_customer` - Delete customer
|
|
- `stripe_search_customers` - Search customers by query
|
|
|
|
### 2. **charges.ts** (5 tools)
|
|
- `stripe_list_charges` - List all charges
|
|
- `stripe_get_charge` - Retrieve specific charge
|
|
- `stripe_create_charge` - Create direct charge
|
|
- `stripe_update_charge` - Update charge details
|
|
- `stripe_capture_charge` - Capture authorized charge
|
|
|
|
### 3. **payment-intents.ts** (7 tools)
|
|
- `stripe_list_payment_intents` - List all payment intents
|
|
- `stripe_get_payment_intent` - Retrieve specific payment intent
|
|
- `stripe_create_payment_intent` - Create new payment intent
|
|
- `stripe_update_payment_intent` - Update payment intent
|
|
- `stripe_confirm_payment_intent` - Confirm payment intent
|
|
- `stripe_cancel_payment_intent` - Cancel payment intent
|
|
- `stripe_capture_payment_intent` - Capture payment intent
|
|
|
|
### 4. **payment-methods.ts** (6 tools)
|
|
- `stripe_list_payment_methods` - List payment methods for customer
|
|
- `stripe_get_payment_method` - Retrieve specific payment method
|
|
- `stripe_create_payment_method` - Create payment method
|
|
- `stripe_update_payment_method` - Update payment method
|
|
- `stripe_attach_payment_method` - Attach to customer
|
|
- `stripe_detach_payment_method` - Detach from customer
|
|
|
|
### 5. **refunds.ts** (5 tools)
|
|
- `stripe_list_refunds` - List all refunds
|
|
- `stripe_get_refund` - Retrieve specific refund
|
|
- `stripe_create_refund` - Create refund
|
|
- `stripe_update_refund` - Update refund metadata
|
|
- `stripe_cancel_refund` - Cancel pending refund
|
|
|
|
### 6. **disputes.ts** (4 tools)
|
|
- `stripe_list_disputes` - List all disputes
|
|
- `stripe_get_dispute` - Retrieve specific dispute
|
|
- `stripe_update_dispute` - Submit evidence for dispute
|
|
- `stripe_close_dispute` - Accept dispute
|
|
|
|
### 7. **subscriptions.ts** (7 tools)
|
|
- `stripe_list_subscriptions` - List all subscriptions
|
|
- `stripe_get_subscription` - Retrieve specific subscription
|
|
- `stripe_create_subscription` - Create new subscription
|
|
- `stripe_update_subscription` - Update subscription
|
|
- `stripe_cancel_subscription` - Cancel subscription
|
|
- `stripe_resume_subscription` - Resume paused subscription
|
|
- `stripe_list_subscription_items` - List subscription items
|
|
|
|
### 8. **invoices.ts** (11 tools)
|
|
- `stripe_list_invoices` - List all invoices
|
|
- `stripe_get_invoice` - Retrieve specific invoice
|
|
- `stripe_create_invoice` - Create draft invoice
|
|
- `stripe_update_invoice` - Update draft invoice
|
|
- `stripe_finalize_invoice` - Finalize draft
|
|
- `stripe_pay_invoice` - Pay invoice manually
|
|
- `stripe_void_invoice` - Void invoice
|
|
- `stripe_send_invoice` - Send to customer
|
|
- `stripe_list_invoice_items` - List invoice items
|
|
- `stripe_create_invoice_item` - Create one-time charge
|
|
- `stripe_delete_invoice_item` - Delete invoice item
|
|
|
|
### 9. **products.ts** (6 tools)
|
|
- `stripe_list_products` - List all products
|
|
- `stripe_get_product` - Retrieve specific product
|
|
- `stripe_create_product` - Create new product
|
|
- `stripe_update_product` - Update product
|
|
- `stripe_delete_product` - Delete product
|
|
- `stripe_search_products` - Search products by query
|
|
|
|
### 10. **prices.ts** (4 tools)
|
|
- `stripe_list_prices` - List all prices
|
|
- `stripe_get_price` - Retrieve specific price
|
|
- `stripe_create_price` - Create new price
|
|
- `stripe_update_price` - Update price metadata
|
|
|
|
### 11. **payouts.ts** (6 tools)
|
|
- `stripe_list_payouts` - List all payouts
|
|
- `stripe_get_payout` - Retrieve specific payout
|
|
- `stripe_create_payout` - Create manual payout
|
|
- `stripe_update_payout` - Update payout metadata
|
|
- `stripe_cancel_payout` - Cancel pending payout
|
|
- `stripe_reverse_payout` - Reverse a payout
|
|
|
|
### 12. **balance.ts** (3 tools)
|
|
- `stripe_get_balance` - Get current account balance
|
|
- `stripe_list_balance_transactions` - List balance history
|
|
- `stripe_get_balance_transaction` - Retrieve specific transaction
|
|
|
|
### 13. **events.ts** (2 tools)
|
|
- `stripe_list_events` - List webhook events
|
|
- `stripe_get_event` - Retrieve specific event
|
|
|
|
### 14. **webhooks.ts** (5 tools)
|
|
- `stripe_list_webhook_endpoints` - List all endpoints
|
|
- `stripe_get_webhook_endpoint` - Retrieve specific endpoint
|
|
- `stripe_create_webhook_endpoint` - Create new endpoint
|
|
- `stripe_update_webhook_endpoint` - Update endpoint
|
|
- `stripe_delete_webhook_endpoint` - Delete endpoint
|
|
|
|
## Quality Features
|
|
|
|
### ✅ TypeScript Compilation
|
|
- All files pass `npx tsc --noEmit` with zero errors
|
|
- Proper type imports from `../types/index.js` and `../clients/stripe.js`
|
|
|
|
### ✅ Zod Validation
|
|
- Comprehensive input schemas for all tools
|
|
- Rich descriptions for every parameter
|
|
- Proper enum types, unions, and nested objects
|
|
|
|
### ✅ Stripe API Best Practices
|
|
- **Form-encoded params** - Client handles encoding automatically
|
|
- **Cursor pagination** - `starting_after`/`ending_before` support
|
|
- **Amount fields in cents** - Documented in schemas
|
|
- **Expandable fields** - `expand[]` param support
|
|
- **Idempotency keys** - Auto-generated for create operations
|
|
- **Proper HTTP methods** - GET/POST/DELETE as appropriate
|
|
|
|
### ✅ Tool Naming Convention
|
|
- Consistent pattern: `stripe_verb_noun`
|
|
- Examples: `stripe_list_customers`, `stripe_create_payment_intent`
|
|
|
|
### ✅ Handler Structure
|
|
- Signature: `async (client: StripeClient, args: any) => Promise<T>`
|
|
- Returns raw API response (not wrapped in content structure)
|
|
- Clean parameter extraction and validation
|
|
|
|
## Implementation Notes
|
|
|
|
1. **No modifications** were made to:
|
|
- `src/types/index.ts` - Type definitions (as required)
|
|
- `src/clients/stripe.ts` - API client (as required)
|
|
- `src/server.ts` - Server shell (as required)
|
|
- `src/main.ts` - Entry point (as required)
|
|
|
|
2. **All 14 tool stub files** were replaced with full implementations
|
|
|
|
3. **Export pattern**: Each file uses `export default [...]` to match server's import expectations
|
|
|
|
4. **Error handling**: Delegated to client layer (retry, rate limiting, etc.)
|
|
|
|
5. **TypeScript strict mode**: All files are fully typed and compile cleanly
|
|
|
|
## Next Steps
|
|
|
|
Server is ready for:
|
|
- Building: `npm run build`
|
|
- Testing: Integration tests with test API keys
|
|
- Deployment: Publishing to npm registry
|
|
- Documentation: API reference generation
|
|
|
|
---
|
|
|
|
**Status**: ✅ COMPLETE - All 77 tools implemented, TypeScript verified, ready for deployment.
|