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






