Stripe Fraud MCP
TypeScript Model Context Protocol (MCP) server that wraps the official stripe SDK. The server focuses on fraud and Radar operations while still exposing a raw request tool that lets an LLM call any Stripe REST endpoint. It is designed to run locally or inside Smithery for hosting.
Features
stripe_fraud_insight– Given apayment_intent_idorcharge_id, pulls Radar early fraud warnings, risk scores, disputes, refunds, and reviews, then returns a recommendation (refund,manual_review, ormonitor).stripe_create_refund– Creates refunds against a charge or payment intent, supporting partial amounts, reasons, and metadata.stripe_raw_request– Full access to the Stripe API viastripe.rawRequest, so you can reach any endpoint that is not yet wrapped in a specialized tool.- Built for Smithery (stdio + Streamable HTTP builds) so you can host it as a managed MCP service without writing glue code.
Prerequisites
- Node.js 20+
- Stripe secret key with the necessary permissions.
- Smithery CLI (
npx @smithery/cli) for local builds and development.
Smithery Configuration
The Smithery runtime picks up the configuration schema that lives in src/index.ts. When you install or run the server you will be prompted for:
| Config key | Required | Description |
|---|---|---|
stripe_api_key |
✅ | Secret key used to authenticate Stripe requests. |
stripe_api_version |
❌ | Optional API version override (defaults to your account version). |
default_stripe_account |
❌ | Optional connected account ID used when a request does not specify one. |
log_level |
❌ | Minimum log level to emit (debug, info, warn, error). Defaults to info. |
The repository includes smithery.yaml, so Smithery knows to treat it as a TypeScript project and to compile from src/index.ts.
Local Development
npm install
npm run dev # wraps `smithery dev`
smithery dev will prompt for your configuration values (or you can provide a --config file). It spins up both stdio and SHTTP transports so you can test with smithery proxy, Claude Desktop, or any MCP client.
Building for Deployment
npm run build:stdio– Produces.smithery/stdio/index.cjsfor stdio transport.npm run build:shttp– Produces.smithery/shttp/index.cjsfor Streamable HTTP transport.npm run build– Builds both artefacts.
When you push to Smithery, it runs the same build pipeline and hosts the generated artefact automatically.
Tool Reference
stripe_status
- Input: Optional
stripe_accountoverride. - Output: Current server time, effective configuration (API version, log level, default account), and key flags from the Stripe account (charges/payouts enabled). Useful for quick health checks in Smithery.
stripe_fraud_insight
- Input:
payment_intent_idorcharge_id(one required),include_events(boolean, defaulttrue). - Output: Structured fraud/risk summary with Stripe Radar data and an automated recommendation.
stripe_create_refund
- Input:
payment_intent_idorcharge_id, optionalamount,reason,metadata. - Output: Created refund plus Stripe response metadata.
stripe_raw_request
- Input: HTTP method (
GET,POST,DELETE),path, optionalquery,payload,idempotency_key,stripe_account,api_version. - Output: Raw response body and headers so you can reach any Stripe endpoint from the LLM.
Project Scripts
npm run dev– Runssmithery devfor interactive local development.npm run build– Builds stdio and SHTTP bundles under.smithery/.npm run build:stdio/npm run build:shttp– Build individual transports.npm run typecheck– TypeScript diagnostics without emitting files.
Logging
- The server emits structured JSON logs with timestamps, logger names, and context to make triage in Smithery or other observability tooling straightforward.
- Set
log_levelin the Smithery configuration to control verbosity;debugincludes every Stripe call and fraud-analysis step, whileinfosurfaces tool invocations and outcomes. - Sensitive values (Stripe API keys, tokens, etc.) are automatically redacted from logged context.
Next Steps
- Add additional purpose-built tools for dispute responses, Radar rule management, value list operations, etc., by wrapping the official SDK in new MCP handlers.
- Implement optional caching or memoization if you anticipate repeated lookups.
- Instrument with logging/observability before production use.