Openmm Mcp

io.github.QBT-LabsPublished by GitHub account QBT-Labsv1.0.14Updated Oct 24, 2026

MCP server for OpenMM — exposes market data, account, trading, and strategy tools to AI agents

VerifiedStreamable HTTPWeb executableFinanceBusiness & Commerce

Overview

AI-generated overview

OpenMM MCP gives an AI assistant crypto market data, exchange account access, order placement and grid strategy tools across several exchanges and Cardano…

What you can do
  • List supported exchanges and their required credentials
  • Read market data: tickers, order books, recent trades and OHLCV candles
  • Check account balances and list open orders on a connected exchange
  • Place limit or market orders, cancel one order or all orders for a pair
  • Query Cardano DEX token prices and discover liquidity pools
  • Start, stop and inspect grid trading strategies with P&L estimates
When to use it
Useful when you want an assistant to monitor crypto markets, check exchange balances and open orders, or place and manage trades and grid strategies through natural language. Also handy for quick Cardano native token price checks from DEX liquidity pools.
Requirements
Either the hosted endpoint at mcp.openmm.io, or a local install needing Node.js 20 or later. Local use requires running the setup and vault commands, a vault password entered in the terminal, and exchange API keys (for example MEXC_API_KEY and MEXC_SECRET) either in the encrypted vault or in the env block. Hosted public data needs no keys but is paid per call in USDC on Base.
Before you install
This server can move real money: create_order, cancel_order, cancel_all_orders and the grid strategy tools place and cancel live trades, and the hosted option charges USDC per tool call. The vault stores a wallet private key and exchange API credentials, and openmm-wallet export and openmm-vault export can reveal them. Exchange keys passed in the env block sit in plain text in client config files. Review spending policy limits before use.

Installation

In SourceWeft

  1. Open Openmm Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.QBT-Labs%2Fopenmm-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "openmm": {
      "type": "http",
      "url": "https://mcp.openmm.io/mcp"
    }
  }
}

README

@qbtlabs/openmm-mcp

[smithery badge] [npm version] [npm downloads] [License: MIT] [Ask DeepWiki]

📚 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.

[openmm-mcp MCP server]

Two Ways to Use

OptionBest ForAPI KeysPayments
Local (npm)Full control, your own keysEncrypted vaultFree
Hosted (mcp.openmm.io)No setup, pay-per-useNot needed for public datax402 USDC

Local Setup

Prerequisites: Node.js 20 or later.

1. Install and configure

bash
npm install -g @qbtlabs/openmm-mcpopenmm-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.

2. Initialize encrypted vault

bash
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.

3. Start the server

bash
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.

Manual configuration

If you prefer to edit config files directly instead of using --setup:

ClientConfig 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
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 --setup instead — 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:

json
{  "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

ClientWithout vaultWith vault
Claude DesktopAPI keys in envOnly OPENMM_SOCKET
Claude CodeAPI keys in envOnly OPENMM_SOCKET
CursorAPI keys in envOnly OPENMM_SOCKET
WindsurfAPI keys in envOnly OPENMM_SOCKET

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 settlement

Security properties

PropertyHow
Keys encrypted at restAES-256-GCM + PBKDF2 in ~/.openmm/vault.enc
Keys never in client memoryMCP process only holds socket path
Keys never in config filesNo API keys, no private keys anywhere in config
Process isolationSigning happens in openmm serve, not in the AI agent process
Policy enforcementSpending limits checked before private key is accessed
Memory safetysignAndWipe() — key used once, goes out of scope immediately

Payment flow

  1. Agent calls a tool
  2. Server returns 402 Payment Required with price
  3. openmm serve signs EIP-3009 authorization (gasless — no ETH needed)
  4. Server submits payment on-chain and returns data

Tool Pricing

CategoryToolsPrice (USDC)
Freelist_exchanges$0.00
Readget_ticker, get_orderbook, get_trades, get_ohlcv, get_balance, list_orders, get_cardano_price, discover_pools, get_strategy_status$0.001
Writecreate_order, cancel_order, cancel_all_orders, start_grid_strategy, stop_strategy$0.01

Available Tools (15)

ToolDescriptionParameters
Market Data
list_exchangesList supported exchanges—
get_tickerReal-time price, bid/ask, spread, volumeexchange, symbol
get_orderbookOrder book depth (bids/asks)exchange, symbol, limit?
get_tradesRecent trades with buy/sell summaryexchange, symbol, limit?
get_ohlcvOHLCV candlestick dataexchange, symbol, timeframe?, limit?
Account
get_balanceAccount balances (all or filtered)exchange, asset?
list_ordersOpen orders (all or by symbol)exchange, symbol?
Trading
create_orderPlace limit or market orderexchange, symbol, type, side, amount, price?
cancel_orderCancel order by IDexchange, symbol, orderId
cancel_all_ordersCancel all orders for a pairexchange, symbol
Cardano DEX
get_cardano_priceAggregated token price from DEXessymbol
discover_poolsDiscover direct ADA pools via Minswap and SundaeSwapsymbol
Strategy
start_grid_strategyStart grid tradingexchange, symbol, lowerPrice, upperPrice, gridLevels?, totalAmount
stop_strategyStop a running strategystrategyId, cancelOrders?
get_strategy_statusGet strategy statusstrategyId

CLI Reference

Setup & Server

CommandDescription
openmm-initCreate vault, generate/import wallet, add exchanges
openmm-init --import <key>Create vault with an existing private key
openmm serveUnlock vault, start unified socket
openmm-statusShow vault, socket, wallet, and exchange status (no password)

Exchange Credentials

CommandDescription
openmm-exchange listList 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

Wallet

CommandDescription
openmm-wallet infoShow wallet address and chain
openmm-wallet setSet wallet credentials
openmm-wallet exportDisplay private key (requires confirmation)

Spending Policy

CommandDescription
openmm-policy showShow 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 resetClear all policy limits

Advanced

CommandDescription
openmm-vault infoShow vault metadata
openmm-vault change-passwordChange vault password
openmm-vault exportExport all credentials (dangerous)
openmm-vault destroyDelete 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.enc
  • Password: Interactive terminal only — never in any config file, env var, or CLI flag
  • Socket: /tmp/openmm.sock mode 0600 — the socket is the authentication boundary
  • Policy: 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 serve process via IPC

Development

bash
git clone https://github.com/QBT-Labs/openMM-MCP.gitcd openMM-MCPnpm installnpm run typechecknpm run lintnpm testnpm run build

Resources

License

MIT

Hosted deployment

A hosted deployment is available on Fronteir AI.

Source: README.md at commit 7f10368

Tools

15

list_exchanges

List all supported exchanges with their IDs, features, and required credentials

Takes no parameters.

get_ticker

Get real-time price, bid/ask, spread, and volume for a trading pair

Parameterssymbolrequiredexchangerequired

get_orderbook

Fetch order book depth (bids and asks) for a trading pair

Parameterslimitsymbolrequiredexchangerequired

get_trades

Get recent trades for a trading pair

Parameterslimitsymbolrequiredexchangerequired

get_ohlcv

Get OHLCV (candlestick) data for a trading pair

Parameterslimitsymbolrequiredexchangerequiredtimeframe

get_balance

Get account balances for all assets (or a specific asset) on a supported exchange

Parametersassetexchangerequired

list_orders

List open orders on a supported exchange, optionally filtered by trading pair symbol

Parameterssymbolexchangerequired

create_order

Create a new order (limit or market) on a supported exchange

Parameterssiderequiredtyperequiredpriceamountrequiredsymbolrequiredexchangerequired

cancel_order

Cancel a specific order by ID on a supported exchange

ParameterssymbolrequiredorderIdrequiredexchangerequired

cancel_all_orders

Cancel all open orders for a trading pair on a supported exchange

Parameterssymbolrequiredexchangerequired

get_cardano_price

Get aggregated price for a Cardano native token from DEX liquidity pools (TOKEN/USDT via ADA bridge)

Parameterssymbolrequired

discover_pools

Discover Cardano DEX liquidity pools for a native token via Iris API

Parameterssymbolrequired

start_grid_strategy

Calculate and optionally place grid trading orders around the current price

ParametersdryRunlevelssymbolrequiredspacingexchangerequiredorderSizesizeModelspacingModelspacingFactor

stop_strategy

Cancel all open orders for a trading pair, effectively stopping any running grid strategy

Parameterssymbolrequiredexchangerequired

get_strategy_status

Get current grid strategy status: open orders, current price, and P&L estimate

Parameterssymbolrequiredexchangerequired

Version history

1
  1. v1.0.14LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts