revolut-merchant-mcp
This server acts as a Model Context Protocol (MCP) interface for the Revolut Merchant API, allowing AI assistants to read and manage customers, payment methods, orders, subscriptions, plans, and webhooks — with write operations gated by default.
Customers:
Read: List customers (optionally by email), retrieve customer details by ID
Write (gated): Create, update, delete customers
Payment Methods:
Read: List and retrieve payment methods
Write (gated): Update and delete payment methods
Orders:
Read: List recent orders (with optional limit), retrieve order details by ID
Write (gated): Create, update, capture, cancel, pay, refund, and increment authorisation for orders
Subscriptions:
Read: List subscriptions (optionally by customer ID), retrieve subscription and cycle details
Write (gated): Create, update, cancel subscriptions; change plan; update renewal date
Plans:
Read: List plans, retrieve plan details (including variations) by ID
Write (gated): Create new plans
Webhooks:
Read: List and retrieve webhook details
Write (gated): Create, update, delete webhooks; rotate signing secrets
Safe defaults: Runs in sandbox mode by default; writes are disabled unless REVOLUT_MCP_ALLOW_WRITES=true is set; production access requires explicit opt-in via REVOLUT_I_UNDERSTAND_PRODUCTION=true.
Manages Revolut Merchant API resources: customers, orders, subscriptions, and plans, enabling payment acceptance and subscription management.
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., "@revolut-merchant-mcpshow my recent orders"
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.
revolut-merchant-mcp
A Model Context Protocol (MCP) server for the Revolut Merchant API — letting MCP-aware AI assistants (Claude Desktop, Cursor, agent harnesses) read and manage Revolut customers, payment methods, orders, subscriptions, plans, and webhooks.
Why this exists. The existing community Revolut MCP wraps the Revolut Business API (accounts, balances, transfers). This server targets the Merchant API — the surface you use to accept payments and run subscriptions — which had no MCP server until now.
Status: alpha / proof-of-concept. Sandbox-first, read-only by default.
Features
Broad Merchant API coverage across six domains. Read tools are always
registered; write (mutating) tools are registered only when
REVOLUT_MCP_ALLOW_WRITES=true — so the default posture is read-only.
Domain | Read tools (always on) | Write tools (gated by |
Customers |
|
|
Payment methods (customer-nested) |
|
|
Orders |
|
|
Subscriptions |
|
|
Plans |
|
|
Webhooks |
|
|
That's 14 read tools and 21 write tools (35 total).
Safe defaults: sandbox unless you explicitly opt into production; writes disabled unless explicitly enabled; idempotency keys + transient-error retry in the transport layer.
Related MCP server: Recharge Storefront API MCP Server
Install
# with uv (recommended)
uv pip install -e ".[dev]"
# or pip
pip install -e ".[dev]"Configure
Copy .env.example and set your sandbox key:
Variable | Required | Default | Notes |
| ✅ | — | Merchant API secret (sandbox or live) |
|
| Sent as | |
|
|
| |
|
| Required to run against production | |
|
| Register the create/cancel tools |
Sandbox keys come from the Revolut Sandbox Business dashboard (Merchant API).
Run
REVOLUT_MERCHANT_SECRET_KEY=sk_sandbox_... revolut-merchant-mcpThe server speaks MCP over stdio.
Claude Desktop / Cursor
{
"mcpServers": {
"revolut-merchant": {
"command": "revolut-merchant-mcp",
"env": {
"REVOLUT_MERCHANT_SECRET_KEY": "sk_sandbox_...",
"REVOLUT_SANDBOX": "true"
}
}
}
}Architecture
config.py env → Config (sandbox/prod guard, write gate)
client.py async transport: auth, versioning, idempotency, retry, errors
operations/ one module per domain (customers, orders, subscriptions,
plans, webhooks); each holds framework-free async fns plus a
register(mcp, client, allow_writes, safe) that wires its tools
server.py FastMCP wrapper — iterates the domain registrars (writes gated)The pure functions in operations/ have no MCP dependency, so the API layer
is fully testable with respx and reusable outside the server. Payment methods
are customer-nested (/customers/{id}/payment-methods) and so live in the
customers module.
Develop
ruff check .
pytestTests mock the Revolut sandbox host with respx — no live keys, no network.
Safety notes
This server can mutate live data (customers, payment methods, orders, subscriptions, plans, and webhooks — including refunds and order capture) when writes are enabled against a production key. Production and writes are both off by default and each requires an explicit opt-in.
Treat your Merchant secret like any payment credential. Prefer a sandbox key for anything agent-driven.
License
MIT © Sherman Studio Ltd. Not affiliated with or endorsed by Revolut.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Sherman-Studio/revolut-merchant-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server