Connects Claude to crypto markets through OpenMM, giving you real-time ticker data, orderbook depth, and OHLCV candles across exchanges like MEXC. You can check balances, place and cancel orders, and run grid trading strategies directly from the chat interface. Also taps Cardano DEXes for token prices and pool discovery. Ships with an encrypted vault so API keys and wallet private keys never touch your MCP config files. The hosted option at mcp.openmm.io uses x402 micropayments in USDC on Base, charging fractions of a cent per tool call. Reach for this when you want conversational access to both CEX trading operations and on-chain DeFi data without juggling exchange dashboards.
Public tool metadata for what this MCP can expose to an agent.
get_tickerGet real-time price, bid/ask, spread, and volume for a trading pair on a supported exchange2 paramsGet real-time price, bid/ask, spread, and volume for a trading pair on a supported exchange
symbolstringexchangestringget_orderbookFetch order book depth (bids and asks) for a trading pair on a supported exchange3 paramsFetch order book depth (bids and asks) for a trading pair on a supported exchange
limitnumbersymbolstringexchangestringget_tradesGet recent trades for a trading pair on a supported exchange3 paramsGet recent trades for a trading pair on a supported exchange
limitnumbersymbolstringexchangestringget_balanceGet account balances for all assets (or a specific asset) on a supported exchange2 paramsGet account balances for all assets (or a specific asset) on a supported exchange
assetstringexchangestringlist_ordersList open orders on a supported exchange, optionally filtered by trading pair symbol2 paramsList open orders on a supported exchange, optionally filtered by trading pair symbol
symbolstringexchangestringcreate_orderCreate a new order (limit or market) on a supported exchange6 paramsCreate a new order (limit or market) on a supported exchange
sidestringbuy · selltypestringlimit · marketpricenumberamountnumbersymbolstringexchangestringcancel_orderCancel a specific order by ID on a supported exchange3 paramsCancel a specific order by ID on a supported exchange
symbolstringorderIdstringexchangestringcancel_all_ordersCancel all open orders for a trading pair on a supported exchange2 paramsCancel all open orders for a trading pair on a supported exchange
symbolstringexchangestringget_cardano_priceGet aggregated price for a Cardano native token from DEX liquidity pools (TOKEN/USDT via ADA bridge)1 paramsGet aggregated price for a Cardano native token from DEX liquidity pools (TOKEN/USDT via ADA bridge)
symbolstringdiscover_poolsDiscover Cardano DEX liquidity pools for a native token via Iris API1 paramsDiscover Cardano DEX liquidity pools for a native token via Iris API
symbolstringstart_grid_strategyCalculate and optionally place grid trading orders around the current price9 paramsCalculate and optionally place grid trading orders around the current price
dryRunbooleanlevelsnumbersymbolstringspacingnumberexchangestringorderSizenumbersizeModelstringflat · pyramidaldefault: flatspacingModelstringlinear · geometricdefault: linearspacingFactornumberstop_strategyCancel all open orders for a trading pair, effectively stopping any running grid strategy2 paramsCancel all open orders for a trading pair, effectively stopping any running grid strategy
symbolstringexchangestringget_strategy_statusGet current grid strategy status: open orders, current price, and P&L estimate2 paramsGet current grid strategy status: open orders, current price, and P&L estimate
symbolstringexchangestring📚 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.
| 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 |
Prerequisites: Node.js 20 or later.
npm install -g @qbtlabs/openmm-mcp
openmm-mcp --setup
The 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.
openmm-init
This 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.
openmm serve
Type your vault password once. The unified socket starts at /tmp/openmm.sock — all MCP clients connect here. No credentials exist in any config file.
If you prefer to edit config files directly instead of using --setup:
| Client | Config file |
|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Claude Code | ~/.claude.json |
| Cursor | .cursor/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
{
"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.
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 | Without vault | With vault |
|---|---|---|
| Claude Desktop | API keys in env | Only OPENMM_SOCKET |
| Claude Code | API keys in env | Only OPENMM_SOCKET |
| Cursor | API keys in env | Only OPENMM_SOCKET |
| Windsurf | API keys in env | Only OPENMM_SOCKET |
All clients connect to the same running openmm serve — one vault, one socket, any client.
Connect to mcp.openmm.io — no local installation needed for public data.
Pay per tool call with USDC on Base.
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 settlement
| Property | How |
|---|---|
| Keys encrypted at rest | AES-256-GCM + PBKDF2 in ~/.openmm/vault.enc |
| 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 openmm serve, not in the AI agent process |
| Policy enforcement | Spending limits checked before private key is accessed |
| Memory safety | signAndWipe() — key used once, goes out of scope immediately |
402 Payment Required with priceopenmm serve signs EIP-3009 authorization (gasless — no ETH needed)| Category | Tools | Price (USDC) |
|---|---|---|
| Free | list_exchanges | $0.00 |
| Read | get_ticker, get_orderbook, get_trades, get_ohlcv, get_balance, list_orders, get_cardano_price, discover_pools, get_strategy_status | $0.001 |
| Write | create_order, cancel_order, cancel_all_orders, start_grid_strategy, stop_strategy | $0.01 |
| Tool | Description | Parameters |
|---|---|---|
| Market Data | ||
list_exchanges | List supported exchanges | — |
get_ticker | Real-time price, bid/ask, spread, volume | exchange, symbol |
get_orderbook | Order book depth (bids/asks) | exchange, symbol, limit? |
get_trades | Recent trades with buy/sell summary | exchange, symbol, limit? |
get_ohlcv | OHLCV candlestick data | exchange, symbol, timeframe?, limit? |
| Account | ||
get_balance | Account balances (all or filtered) | exchange, asset? |
list_orders | Open orders (all or by symbol) | exchange, symbol? |
| Trading | ||
create_order | Place limit or market order | exchange, symbol, type, side, amount, price? |
cancel_order | Cancel order by ID | exchange, symbol, orderId |
cancel_all_orders | Cancel all orders for a pair | exchange, symbol |
| Cardano DEX | ||
get_cardano_price | Aggregated token price from DEXes | symbol |
discover_pools | Discover liquidity pools | symbol, minLiquidity? |
| Strategy | ||
start_grid_strategy | Start grid trading | exchange, symbol, lowerPrice, upperPrice, gridLevels?, totalAmount |
stop_strategy | Stop a running strategy | strategyId, cancelOrders? |
get_strategy_status | Get strategy status | strategyId |
| Command | Description |
|---|---|
openmm-init | Create vault, generate/import wallet, add exchanges |
openmm-init --import <key> | Create vault with an existing private key |
openmm serve | Unlock vault, start unified socket |
openmm-status | Show vault, socket, wallet, and exchange status (no password) |
| Command | Description |
|---|---|
openmm-exchange list | List configured exchanges |
openmm-exchange add <id> | Add exchange credentials |
openmm-exchange remove <id> | Remove exchange credentials |
Supported exchanges: mexc, gateio, bitget, kraken, binance, coinbase, okx
| Command | Description |
|---|---|
openmm-wallet info | Show wallet address and chain |
openmm-wallet set | Set wallet credentials |
openmm-wallet export | Display private key (requires confirmation) |
| Command | Description |
|---|---|
openmm-policy show | Show current policy |
openmm-policy set max-per-tx <amount> | Max USDC per transaction |
openmm-policy set max-per-day <amount> | Max USDC per day |
openmm-policy set allowed-chains <chains> | Comma-separated chain IDs |
openmm-policy reset | Clear all policy limits |
| Command | Description |
|---|---|
openmm-vault info | Show vault metadata |
openmm-vault change-password | Change vault password |
openmm-vault export | Export all credentials (dangerous) |
openmm-vault destroy | Delete the vault |
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?"
~/.openmm/vault.enc/tmp/openmm.sock mode 0600 — the socket is the authentication boundaryopenmm serve process via IPCgit clone https://github.com/QBT-Labs/openMM-MCP.git
cd openMM-MCP
npm install
npm run typecheck
npm run lint
npm test
npm run build
MIT
A hosted deployment is available on Fronteir AI.
com.mcparmory/google-sheets
domdomegg/google-sheets-mcp
henilcalagiya/google-sheets-mcp
cct15/war-dashboard-data
moooonad/mcp-google-sheets-full
io.github.br0ski777/csv-to-json