The openmm-mcp server exposes cryptocurrency trading and market data tools to AI agents (via Claude Desktop, Cursor, Windsurf, etc.) across supported exchanges (MEXC, Bitget, Gate.io, Kraken) and Cardano DEX, through 13 tools:
Market Data
get_ticker— Real-time price, bid/ask, spread, and volume for any trading pairget_orderbook— Order book depth (bids/asks) with configurable limitget_trades— Recent trade history with configurable limit
Account Management
get_balance— View balances for all assets or a specific assetlist_orders— List open orders, optionally filtered by trading pair
Trading
create_order— Place limit or market buy/sell orderscancel_order— Cancel a specific order by IDcancel_all_orders— Cancel all open orders for a trading pair
Automated Grid Strategy
start_grid_strategy— Deploy grid trading orders around the current price, with linear/geometric spacing and flat/pyramidal sizing models; includes dry-run preview modestop_strategy— Stop a running strategy by cancelling all its ordersget_strategy_status— Check strategy status, open orders, current price, and P&L estimate
Cardano DEX
get_cardano_price— Aggregated token prices from Cardano DEX liquidity pools (INDY, SNEK, MIN, NIGHT)discover_pools— Discover Cardano DEX liquidity pools for a native token
The server also provides structured resources (supported exchanges, grid strategy docs, example profiles) and pre-built prompts for market analysis, portfolio overview, and grid setup. It supports stdio and HTTP transport modes and can be run locally, via Docker, or as a hosted remote server.
Allows access to aggregated Cardano token prices and liquidity pool discovery from decentralized exchanges (DEXes) via on-chain data.
@qbtlabs/openmm-mcp
📚 Documentation · 🤖 AI Skills Portal · 🔌 API Reference
MCP server for OpenMM — exposes market data, account, trading, and strategy tools to AI agents via any MCP client.
Two Ways to Use
Option | Best For | API Keys | Payments |
Local (npm) | Full control, your own keys | Encrypted vault | Free |
Hosted (mcp.openmm.io) | No setup, pay-per-use | Not needed for public data | x402 USDC |
Local Setup
Prerequisites: Node.js 20 or later.
1. Install and configure
npm install -g @qbtlabs/openmm-mcp
openmm-mcp --setupThe setup wizard writes the correct MCP config for your client (Claude Desktop, Claude Code, Cursor, Windsurf). No credentials are stored in config files — only the socket path.
2. Initialize encrypted vault
openmm-initThis creates an encrypted vault at ~/.openmm/vault.enc containing your wallet key and exchange API credentials. You'll set a password, generate (or import) a wallet, and optionally add exchange keys.
3. Start the server
openmm serveType your vault password once. The unified socket starts at /tmp/openmm.sock — all MCP clients connect here. No credentials exist in any config file.
Manual configuration
If you prefer to edit config files directly instead of using --setup:
Client | Config file |
Claude Desktop |
|
Claude Code |
|
Cursor |
|
Windsurf |
|
{
"mcpServers": {
"openmm": {
"command": "node",
"args": ["/path/to/openmm-mcp/dist/index.js"],
"env": {
"MCP_TRANSPORT": "stdio",
"OPENMM_SOCKET": "/tmp/openmm.sock",
"PAYMENT_SERVER": "https://mcp.openmm.io",
"X402_TESTNET": "true"
}
}
}
}Replace /path/to/openmm-mcp with the actual install path. For Claude Desktop, use the full path to node (e.g. from which node) to avoid nvm/PATH issues.
Tip: Run
openmm-mcp --setupinstead — it writes the correct absolute paths automatically.
No API keys. No private keys. No passwords. Just the socket path.
Without vault (quick start)
You can skip the vault and pass API keys directly in the env block:
{
"mcpServers": {
"openmm": {
"command": "npx",
"args": ["@qbtlabs/openmm-mcp"],
"env": {
"MEXC_API_KEY": "your_key",
"MEXC_SECRET": "your_secret"
}
}
}
}The vault strengthens every scenario — nothing sensitive exists in any config file, process environment, or client memory.
Client compatibility
Client | Without vault | With vault |
Claude Desktop | API keys in env | Only |
Claude Code | API keys in env | Only |
Cursor | API keys in env | Only |
Windsurf | API keys in env | Only |
All clients connect to the same running openmm serve — one vault, one socket, any client.
Hosted Server with x402 Payments
Connect to mcp.openmm.io — no local installation needed for public data.
Pay per tool call with USDC on Base.
How it works
AI Agent (Claude / Cursor / Windsurf)
│ MCP stdio — no keys in config
▼
MCP Client Process
(reads OPENMM_SOCKET — credentials never here)
│ Unix socket /tmp/openmm.sock (mode 0600)
▼
openmm serve — unified vault process
┌──────────────────────────────────┐
│ ~/.openmm/vault.enc │
│ AES-256-GCM + PBKDF2 │ ← wallet key + exchange keys, one vault
│ │ │
│ Policy Engine │ ← maxPerTx, maxPerDay, allowedChains
│ (checked before key is touched) │
│ │ │
│ signAndWipe() │ ← key used inline, wiped from memory
└──────────────────────────────────┘
│ EIP-3009 signature only
▼
mcp.openmm.io → x402 verification → Base L2 settlementSecurity properties
Property | How |
Keys encrypted at rest | AES-256-GCM + PBKDF2 in |
Keys never in client memory | MCP process only holds socket path |
Keys never in config files | No API keys, no private keys anywhere in config |
Process isolation | Signing happens in |
Policy enforcement | Spending limits checked before private key is accessed |
Memory safety |
|
Payment flow
Agent calls a tool
Server returns
402 Payment Requiredwith priceopenmm servesigns EIP-3009 authorization (gasless — no ETH needed)Server submits payment on-chain and returns data
Tool Pricing
Category | Tools | Price (USDC) |
Free |
| $0.00 |
Read |
| $0.001 |
Write |
| $0.01 |
Available Tools (15)
Tool | Description | Parameters |
Market Data | ||
| List supported exchanges | — |
| Real-time price, bid/ask, spread, volume |
|
| Order book depth (bids/asks) |
|
| Recent trades with buy/sell summary |
|
| OHLCV candlestick data |
|
Account | ||
| Account balances (all or filtered) |
|
| Open orders (all or by symbol) |
|
Trading | ||
| Place limit or market order |
|
| Cancel order by ID |
|
| Cancel all orders for a pair |
|
Cardano DEX | ||
| Aggregated token price from DEXes |
|
| Discover liquidity pools |
|
Strategy | ||
| Start grid trading |
|
| Stop a running strategy |
|
| Get strategy status |
|
CLI Reference
Setup & Server
Command | Description |
| Create vault, generate/import wallet, add exchanges |
| Create vault with an existing private key |
| Unlock vault, start unified socket |
| Show vault, socket, wallet, and exchange status (no password) |
Exchange Credentials
Command | Description |
| List configured exchanges |
| Add exchange credentials |
| Remove exchange credentials |
Supported exchanges: mexc, gateio, bitget, kraken, binance, coinbase, okx
Wallet
Command | Description |
| Show wallet address and chain |
| Set wallet credentials |
| Display private key (requires confirmation) |
Spending Policy
Command | Description |
| Show current policy |
| Max USDC per transaction |
| Max USDC per day |
| Comma-separated chain IDs |
| Clear all policy limits |
Advanced
Command | Description |
| Show vault metadata |
| Change vault password |
| Export all credentials (dangerous) |
| Delete the vault |
Example Usage
Check BTC price:
"Get me the BTC/USDT ticker on MEXC"Place an order:
"Buy 0.1 ETH at $2400 on Kraken"Start grid strategy:
"Start a grid strategy on MEXC for INDY/USDT between $0.10 and $0.15 with 10 levels and $500 total"Check Cardano token:
"What's the current price of SNEK on Cardano DEXes?"Security
Vault: AES-256-GCM encrypted at
~/.openmm/vault.encPassword: Interactive terminal only — never in any config file, env var, or CLI flag
Socket:
/tmp/openmm.sockmode0600— the socket is the authentication boundaryPolicy: Spending limits enforced at the socket before the private key is touched
Isolation: Private key never enters any MCP client process memory — signing happens in the
openmm serveprocess via IPC
Development
git clone https://github.com/QBT-Labs/openMM-mcp-agent.git
cd openMM-mcp-agent
npm install
npm run typecheck
npm run lint
npm test
npm run buildResources
OpenMM SDK — Underlying trading SDK
x402 Package — Payment integration
MCP Specification — Model Context Protocol docs
Base Network — L2 for USDC payments
License
MIT
Hosted deployment
A hosted deployment is available on Fronteir AI.