OpenMM MCP
Servidor de trading cripto nativo de IA com 13 ferramentas para dados de mercado, execução de ordens, estratégias em grade e DeFi Cardano em múltiplas exchanges.
Documentação
@qbtlabs/openmm-mcp
📚 Documentação · 🤖 Portal de Habilidades de IA · 🔌 Referência da API
Servidor MCP para OpenMM — expõe ferramentas de dados de mercado, conta, negociação e estratégia para agentes de IA por meio de qualquer cliente MCP.
Duas Formas de Uso
| Opção | Melhor Para | Chaves de API | Pagamentos |
|---|---|---|---|
| Local (npm) | Controle total, suas próprias chaves | Cofre criptografado | Grátis |
| Hospedado (mcp.openmm.io) | Sem configuração, pague por uso | Não necessário para dados públicos | x402 USDC |
Configuração Local
Pré-requisitos: Node.js 20 ou posterior.
1. Instalar e configurar
npm install -g @qbtlabs/openmm-mcp
openmm-mcp --setup
O assistente de configuração grava a configuração MCP correta para o seu cliente (Claude Desktop, Claude Code, Cursor, Windsurf). Nenhuma credencial é armazenada em arquivos de configuração — apenas o caminho do socket.
2. Inicializar o cofre criptografado
openmm-init
Isso cria um cofre criptografado em ~/.openmm/vault.enc contendo sua chave de carteira e credenciais de API de exchange. Você definirá uma senha, gerará (ou importará) uma carteira e, opcionalmente, adicionará chaves de exchange.
3. Iniciar o servidor
openmm serve
Digite a senha do cofre uma vez. O socket unificado inicia em /tmp/openmm.sock — todos os clientes MCP se conectam aqui. Nenhuma credencial existe em qualquer arquivo de configuração.
Configuração manual
Se preferir editar arquivos de configuração diretamente em vez de usar --setup:
| Cliente | Arquivo de configuração |
|---|---|
| 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"
}
}
}
}
Substitua /path/to/openmm-mcp pelo caminho real de instalação. Para Claude Desktop, use o caminho completo para node (por exemplo, de which node) para evitar problemas com nvm/PATH.
Dica: Execute
openmm-mcp --setup— ele grava os caminhos absolutos corretos automaticamente.
Sem chaves de API. Sem chaves privadas. Sem senhas. Apenas o caminho do socket.
Sem cofre (início rápido)
Você pode pular o cofre e passar chaves de API diretamente no bloco env:
{
"mcpServers": {
"openmm": {
"command": "npx",
"args": ["@qbtlabs/openmm-mcp"],
"env": {
"MEXC_API_KEY": "your_key",
"MEXC_SECRET": "your_secret"
}
}
}
}
O cofre fortalece todos os cenários — nada sensível existe em qualquer arquivo de configuração, ambiente de processo ou memória do cliente.
Compatibilidade de clientes
| Cliente | Sem cofre | Com cofre |
|---|---|---|
| Claude Desktop | Chaves de API no env | Apenas OPENMM_SOCKET |
| Claude Code | Chaves de API no env | Apenas OPENMM_SOCKET |
| Cursor | Chaves de API no env | Apenas OPENMM_SOCKET |
| Windsurf | Chaves de API no env | Apenas OPENMM_SOCKET |
Todos os clientes se conectam ao mesmo openmm serve em execução — um cofre, um socket, qualquer cliente.
Servidor Hospedado com Pagamentos x402
Conecte-se a mcp.openmm.io — nenhuma instalação local é necessária para dados públicos.
Pague por chamada de ferramenta com USDC na Base.
Como funciona
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
Propriedades de segurança
| Propriedade | Como |
|---|---|
| Chaves criptografadas em repouso | AES-256-GCM + PBKDF2 em ~/.openmm/vault.enc |
| Chaves nunca na memória do cliente | O processo MCP contém apenas o caminho do socket |
| Chaves nunca em arquivos de configuração | Sem chaves de API, sem chaves privadas em qualquer configuração |
| Isolamento de processo | A assinatura ocorre em openmm serve, não no processo do agente de IA |
| Aplicação de políticas | Limites de gastos verificados antes do acesso à chave privada |
| Segurança de memória | signAndWipe() — chave usada uma vez, sai do escopo imediatamente |
Fluxo de pagamento
- O agente chama uma ferramenta
- O servidor retorna
402 Payment Requiredcom o preço openmm serveassina a autorização EIP-3009 (sem gás — sem necessidade de ETH)- O servidor envia o pagamento on-chain e retorna os dados
Preços das Ferramentas
| Categoria | Ferramentas | Preço (USDC) |
|---|---|---|
| Grátis | list_exchanges | $0.00 |
| Leitura | get_ticker, get_orderbook, get_trades, get_ohlcv, get_balance, list_orders, get_cardano_price, discover_pools, get_strategy_status | $0.001 |
| Escrita | create_order, cancel_order, cancel_all_orders, start_grid_strategy, stop_strategy | $0.01 |
Ferramentas Disponíveis (15)
| Ferramenta | Descrição | Parâmetros |
|---|---|---|
| Dados de Mercado | ||
list_exchanges | Listar exchanges suportadas | — |
get_ticker | Preço em tempo real, bid/ask, spread, volume | exchange, symbol |
get_orderbook | Profundidade do livro de ordens (bids/asks) | exchange, symbol, limit? |
get_trades | Negociações recentes com resumo de compra/venda | exchange, symbol, limit? |
get_ohlcv | Dados de candlestick OHLCV | exchange, symbol, timeframe?, limit? |
| Conta | ||
get_balance | Saldos da conta (todos ou filtrados) | exchange, asset? |
list_orders | Ordens abertas (todas ou por símbolo) | exchange, symbol? |
| Negociação | ||
create_order | Colocar ordem limitada ou de mercado | exchange, symbol, type, side, amount, price? |
cancel_order | Cancelar ordem por ID | exchange, symbol, orderId |
cancel_all_orders | Cancelar todas as ordens para um par | exchange, symbol |
| Cardano DEX | ||
get_cardano_price | Preço agregado de token de DEXes | symbol |
discover_pools | Descobrir pools diretos de ADA via Minswap e SundaeSwap | symbol |
| Estratégia | ||
start_grid_strategy | Iniciar negociação em grade | exchange, symbol, lowerPrice, upperPrice, gridLevels?, totalAmount |
stop_strategy | Parar uma estratégia em execução | strategyId, cancelOrders? |
get_strategy_status | Obter status da estratégia | strategyId |
Referência da CLI
Configuração e Servidor
| Comando | Descrição |
|---|---|
openmm-init | Criar cofre, gerar/importar carteira, adicionar exchanges |
openmm-init --import <key> | Criar cofre com uma chave privada existente |
openmm serve | Desbloquear cofre, iniciar socket unificado |
openmm-status | Mostrar status do cofre, socket, carteira e exchange (sem senha) |
Credenciais de Exchange
| Comando | Descrição |
|---|---|
openmm-exchange list | Listar exchanges configuradas |
openmm-exchange add <id> | Adicionar credenciais de exchange |
openmm-exchange remove <id> | Remover credenciais de exchange |
Exchanges suportadas: mexc, gateio, bitget, kraken, binance, coinbase, okx
Carteira
| Comando | Descrição |
|---|---|
openmm-wallet info | Mostrar endereço da carteira e rede |
openmm-wallet set | Definir credenciais da carteira |
openmm-wallet export | Exibir chave privada (requer confirmação) |
Política de Gastos
| Comando | Descrição |
|---|---|
openmm-policy show | Mostrar política atual |
openmm-policy set max-per-tx <amount> | Máximo de USDC por transação |
openmm-policy set max-per-day <amount> | Máximo de USDC por dia |
openmm-policy set allowed-chains <chains> | IDs de rede separados por vírgula |
openmm-policy reset | Limpar todos os limites de política |
Avançado
| Comando | Descrição |
|---|---|
openmm-vault info | Mostrar metadados do cofre |
openmm-vault change-password | Alterar senha do cofre |
openmm-vault export | Exportar todas as credenciais (perigoso) |
openmm-vault destroy | Excluir o cofre |
Exemplo de Uso
Verificar preço do BTC:
"Get me the BTC/USDT ticker on MEXC"
Colocar uma ordem:
"Buy 0.1 ETH at $2400 on Kraken"
Iniciar estratégia de grade:
"Start a grid strategy on MEXC for INDY/USDT between $0.10 and $0.15 with 10 levels and $500 total"
Verificar token Cardano:
"What's the current price of SNEK on Cardano DEXes?"
Segurança
- Cofre: Criptografado com AES-256-GCM em
~/.openmm/vault.enc - Senha: Somente terminal interativo — nunca em qualquer arquivo de configuração, variável de ambiente ou flag de CLI
- Socket: Modo
/tmp/openmm.sock0600— o socket é o limite de autenticação - Política: Limites de gastos aplicados no socket antes de tocar na chave privada
- Isolamento: A chave privada nunca entra na memória de qualquer processo de cliente MCP — a assinatura ocorre no processo
openmm servevia IPC
Desenvolvimento
git 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
Recursos
- OpenMM SDK — SDK de negociação subjacente
- Pacote x402 — Integração de pagamento
- Especificação MCP — Documentação do Model Context Protocol
- Base Network — L2 para pagamentos USDC
Licença
MIT
Implantação Hospedada
Uma implantação hospedada está disponível em Fronteir AI.