RevolutX MCP Server
Provides AI agents with tools to interact with the Revolut X crypto exchange for order management, market data, portfolio analysis, and more via the Model Context Protocol.
README
RevolutX MCP Server
A Model Context Protocol (MCP) server for the Revolut X Crypto Exchange REST API. This server exposes a comprehensive set of tools that allow AI agents to interact with the Revolut X exchange — placing orders, fetching market data, managing positions, and more.
All private API requests are authenticated using Ed25519 request signing (X-Revx-Signature), following the official Revolut X authentication protocol.
Features
Orders
| Tool | Description | Auth |
|---|---|---|
place_order |
Place a new limit or market order | ✅ Private |
cancel_order |
Cancel an active order by ID | ✅ Private |
cancel_all_orders |
Cancel all active orders | ✅ Private |
get_order |
Get details of a specific order by ID | ✅ Private |
get_active_orders |
Get active orders with filters (symbols, states, types, side) | ✅ Private |
get_historical_orders |
Get historical orders with date range and pagination | ✅ Private |
get_order_fills |
Get fills (trades) for a specific order | ✅ Private |
Trades
| Tool | Description | Auth |
|---|---|---|
get_all_trades |
Get all public trades (market history) for a symbol | ✅ Private |
get_private_trades |
Get authenticated client trade history | ✅ Private |
Market Data
| Tool | Description | Auth |
|---|---|---|
get_order_book_snapshot |
Authenticated order book snapshot for a trading pair | ✅ Private |
get_candles |
Historical OHLCV candle data with configurable intervals | ✅ Private |
get_tickers |
Latest bid/ask/mid/last prices for all pairs | ✅ Private |
Public Market Data
| Tool | Description | Auth |
|---|---|---|
get_last_trades |
Latest 100 trades on the exchange | 🌐 Public |
get_order_book |
Public order book (max 5 price levels) | 🌐 Public |
Configuration
| Tool | Description | Auth |
|---|---|---|
get_currencies |
All supported currencies and their configuration | ✅ Private |
get_pairs |
All traded currency pairs and their configuration | ✅ Private |
Balance
| Tool | Description | Auth |
|---|---|---|
get_balances |
Account balances for the authenticated user | ✅ Private |
Prompts
| Prompt | Description |
|---|---|
analyze-market |
Analyze market conditions for a specific trading pair |
create-ladder-strategy |
Generate a ladder trading strategy with multiple orders |
portfolio-summary |
Analyze current portfolio value based on balances and prices |
risk-assessment |
Comprehensive portfolio risk analysis |
order-management |
Review and manage active orders with recommendations |
market-comparison |
Compare conditions across multiple trading pairs |
price-alert-setup |
Set up price monitoring strategy with target alerts |
Prerequisites
- Node.js >= 18
- npm
- A Revolut X API Key (obtain from the Revolut X web app)
- An Ed25519 private key (for request signing)
Installation
-
Clone the repository:
git clone https://github.com/Bilel-Eljaamii/revolutx-mcp.git cd revolutx-mcp -
Install dependencies:
npm install
Configuration
-
Copy the example environment file:
cp .env.example .env -
Edit
.envand configure both required variables:# Your Revolut X API Key (64-character alphanumeric string) REVOLUTX_API_KEY=your_api_key_here # Your Ed25519 Private Key for request signing REVOLUTX_PRIVATE_KEY="-----BEGIN PRIVATE KEY----- your_base64_private_key_here -----END PRIVATE KEY-----"
Note: Both
REVOLUTX_API_KEYandREVOLUTX_PRIVATE_KEYare required for all private endpoints. Public endpoints (get_last_trades,get_order_book) work without authentication.
Generating an Ed25519 Key Pair
openssl genpkey -algorithm Ed25519 -out private.pem
openssl pkey -in private.pem -pubout -out public.pem
Upload the public key to your Revolut X account settings, and set the contents of private.pem as REVOLUTX_PRIVATE_KEY in your .env file.
Scripts
| Command | Description |
|---|---|
npm run build |
Compile TypeScript to JavaScript |
npm run dev |
Build and run the server |
npm start |
Run the compiled server |
npm run typecheck |
Type-check without emitting files |
npm run lint |
Run ESLint on source files |
npm run lint:fix |
Run ESLint with auto-fix |
npm run format |
Format source files with Prettier |
npm run format:check |
Check formatting without writing |
npm run clean |
Remove the dist/ directory |
npm run rebuild |
Clean and rebuild |
npm test |
Run tests with Jest |
Usage
Build & Run
npm run build
npm start
Or in a single step:
npm run dev
MCP Client Configuration
To use this server with an MCP client (e.g., Claude Desktop, Cursor), add the following to your MCP client configuration:
{
"mcpServers": {
"revolutx": {
"command": "node",
"args": ["/path/to/revolutx-mcp/dist/index.js"],
"env": {
"REVOLUTX_API_KEY": "your_api_key_here",
"REVOLUTX_PRIVATE_KEY": "-----BEGIN PRIVATE KEY-----\nyour_base64_key\n-----END PRIVATE KEY-----"
}
}
}
}
Replace /path/to/revolutx-mcp with the absolute path to your project directory.
Architecture
src/
├── index.ts # MCP server entry point
├── utils.ts # Auth (Ed25519 signing), error handling
├── tools/
│ ├── balance/
│ │ └── get_balances.ts
│ ├── configuration/
│ │ ├── get_currencies.ts
│ │ └── get_pairs.ts
│ ├── orders/
│ │ ├── place_order.ts
│ │ ├── cancel_order_by_id.ts
│ │ ├── cancel_all_orders.ts
│ │ ├── get_order_by_id.ts
│ │ ├── get_active_orders.ts
│ │ ├── get_historical_orders.ts
│ │ └── get_order_fills.ts
│ ├── trades/
│ │ ├── get_all_trades.ts
│ │ └── get_private_trades.ts
│ ├── market_data/
│ │ ├── get_order_book_snapshot.ts
│ │ ├── get_candles.ts
│ │ └── get_tickers.ts
│ └── public_market_data/
│ ├── get_last_trades.ts
│ └── get_order_book.ts
├── resources/
│ └── index.ts
└── prompts/
└── index.ts
Authentication Flow
All private API requests follow the Revolut X Ed25519 signing protocol:
- Generate a timestamp (
Date.now()) - Concatenate:
timestamp + HTTP_METHOD + path + query + body - Sign with
crypto.sign(null, message, privateKey)(pure Ed25519) - Attach headers:
X-Revx-API-Key,X-Revx-Timestamp,X-Revx-Signature
API Reference
This server implements the complete Revolut X Crypto Exchange REST API:
License
ISC
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.