Enables payment processing operations including initializing payments, verifying transactions, processing refunds, and managing customers and invoices through Stripe's payment platform
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Fin-MCP Payment Serverinitialize a $50 payment via Stripe for customer@example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Fin-MCP
Fin-MCP is a self-hosted, modular MCP that allows AI agents or enterprise systems to interact with multiple payment providers (e.g., Stripe, Paystack) via a single unified API. It abstracts the provider logic so agents can call payment operations seamlessly.
Features
MCP for Payments: AI agents can perform payment actions without knowing provider details.
Dynamic MCP tools: Initialize payment, verify payment, refund, create customers, and invoices.
Optional authentication: Protect MCP access with API keys.
Metadata endpoint: Agents can discover available tools and supported providers.
Self-hosted MCP: Full control over deployments and provider credentials.
Extensible: Add new tools or providers with minimal changes.
Protocol-driven tool execution: Agents can call any tool via
/mcp/call.Provider abstraction: MCP selects or routes to the appropriate payment provider automatically (e.g., based on provider like stripe, based on currency (soon)).
Table of Contents
Installation
git clone https://github.com/Veri5ied/fin-mcp.git
cd fin-mcpInstall dependencies
bun installConfiguration
Create a .env file in the root:
# Enable or disable API key authentication
ENABLE_AUTH=false
# API key for auth (only used if ENABLE_AUTH=true)
FIN_MCP_KEY=supersecret-fin-key
# Stripe secret key (required for Stripe provider)
STRIPE_SECRET=sk_test_1234567890ENABLE_AUTH: Set totruefor secure access;falsefor testing or private networks.FIN_MCP_KEY: Your self-generated secret key.STRIPE_SECRET: Stripe API secret for payment operations.
Running the MCP
bun run devOpen http://localhost:3000 in your browser.
API Endpoints
1. Get Metadata
GET /mcp/metadataAgents discover available payment tools and providers
{
"tools": [
{
"name": "initialize_payment",
"description": "Start a payment",
"providers": ["stripe", "paystack"]
}
]
}2. Call a Tool
POST /mcp/callAgents execute payment operations through the MCP protocol.
Headers (if auth enabled):
Authorization: Bearer <FIN_MCP_KEY>
Content-Type: application/jsonBody Example (Stripe Initialize Payment):
{
"tool": "initialize_payment",
"input": {
"provider": "stripe",
"amount": 5000,
"currency": "USD",
"email": "customer@example.com"
},
"idempotency_key": "unique-key-123"
}Response:
{
"status": "ok",
"result": {
"id": "cs_test_1234",
"object": "checkout.session"
}
}Adding New Providers
Create a new adapter in
src/providers/.Implement the required interfaces (
PaymentProvider, or extend specific tool interfaces).Add the adapter to the provider registry (
src/providers/registry.ts).Update
metadata.tsto include the new provider for relevant tools.
The MCP will automatically route calls based on the
providerfield in the request payload.
Development Notes
Idempotency: Use
idempotency_keyin/mcp/callto prevent duplicate operations.Audit Logging: MCP logs every call via
logAudit()for traceability.Extensibility: You can define new tools without modifying the core callHandler — just add the tool interface and adapter implementation.
Optional Authentication: Set
ENABLE_AUTH=falsefor testing or private self-hosted environments.
License
MIT License — free to use and modify for your self-hosted deployments.
💡 Optional Add-ons
Integrate AI agents to call
/mcp/calldynamically.Add support for webhooks from payment providers.
Add fully typed output interfaces for each provider to eliminate
anyresponses.
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.