Skip to main content
Glama

@qbtlabs/openmm-mcp

npm version npm downloads License: MIT Ask DeepWiki

📚 Documentación · 🤖 Portal de habilidades de IA · 🔌 Referencia de API

Servidor MCP para OpenMM — expone datos de mercado, cuentas, trading y herramientas de estrategia a agentes de IA a través de cualquier cliente MCP.

Dos formas de usarlo

Opción

Ideal para

Claves API

Pagos

Local (npm)

Control total, tus propias claves

Bóveda cifrada

Gratis

Alojado (mcp.openmm.io)

Sin configuración, pago por uso

No necesario para datos públicos

x402 USDC


Related MCP server: polymarket-trader-mcp

Configuración local

Requisitos previos: Node.js 20 o superior.

1. Instalar y configurar

npm install -g @qbtlabs/openmm-mcp
openmm-mcp --setup

El asistente de configuración escribe la configuración MCP correcta para tu cliente (Claude Desktop, Claude Code, Cursor, Windsurf). No se almacenan credenciales en los archivos de configuración, solo la ruta del socket.

2. Inicializar la bóveda cifrada

openmm-init

Esto crea una bóveda cifrada en ~/.openmm/vault.enc que contiene tu clave de billetera y las credenciales de API de intercambio. Establecerás una contraseña, generarás (o importarás) una billetera y, opcionalmente, añadirás claves de intercambio.

3. Iniciar el servidor

openmm serve

Escribe tu contraseña de bóveda una vez. El socket unificado se inicia en /tmp/openmm.sock: todos los clientes MCP se conectan aquí. No existen credenciales en ningún archivo de configuración.

Configuración manual

Si prefieres editar los archivos de configuración directamente en lugar de usar --setup:

Cliente

Archivo de configuración

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"
      }
    }
  }
}

Reemplaza /path/to/openmm-mcp con la ruta de instalación real. Para Claude Desktop, usa la ruta completa a node (por ejemplo, desde which node) para evitar problemas con nvm/PATH.

Consejo: Ejecuta openmm-mcp --setup en su lugar: escribe las rutas absolutas correctas automáticamente.

Sin claves API. Sin claves privadas. Sin contraseñas. Solo la ruta del socket.

Sin bóveda (inicio rápido)

Puedes omitir la bóveda y pasar las claves API directamente en el bloque env:

{
  "mcpServers": {
    "openmm": {
      "command": "npx",
      "args": ["@qbtlabs/openmm-mcp"],
      "env": {
        "MEXC_API_KEY": "your_key",
        "MEXC_SECRET": "your_secret"
      }
    }
  }
}

La bóveda fortalece cada escenario: nada sensible existe en ningún archivo de configuración, entorno de proceso o memoria del cliente.

Compatibilidad del cliente

Cliente

Sin bóveda

Con bóveda

Claude Desktop

Claves API en env

Solo OPENMM_SOCKET

Claude Code

Claves API en env

Solo OPENMM_SOCKET

Cursor

Claves API en env

Solo OPENMM_SOCKET

Windsurf

Claves API en env

Solo OPENMM_SOCKET

Todos los clientes se conectan al mismo openmm serve en ejecución: una bóveda, un socket, cualquier cliente.


Servidor alojado con pagos x402

Conéctate a mcp.openmm.io: no se necesita instalación local para datos públicos. Paga por llamada de herramienta con USDC en Base.

Cómo 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

Propiedades de seguridad

Propiedad

Cómo

Claves cifradas en reposo

AES-256-GCM + PBKDF2 en ~/.openmm/vault.enc

Las claves nunca están en la memoria del cliente

El proceso MCP solo mantiene la ruta del socket

Las claves nunca están en archivos de configuración

Sin claves API, sin claves privadas en ninguna parte de la configuración

Aislamiento de procesos

La firma ocurre en openmm serve, no en el proceso del agente de IA

Aplicación de políticas

Límites de gasto verificados antes de acceder a la clave privada

Seguridad de memoria

signAndWipe(): la clave se usa una vez, sale del alcance inmediatamente

Flujo de pago

  1. El agente llama a una herramienta

  2. El servidor devuelve 402 Payment Required con el precio

  3. openmm serve firma la autorización EIP-3009 (sin gas, no se necesita ETH)

  4. El servidor envía el pago en la cadena y devuelve los datos

Precios de herramientas

Categoría

Herramientas

Precio (USDC)

Gratis

list_exchanges

$0.00

Lectura

get_ticker, get_orderbook, get_trades, get_ohlcv, get_balance, list_orders, get_cardano_price, discover_pools, get_strategy_status

$0.001

Escritura

create_order, cancel_order, cancel_all_orders, start_grid_strategy, stop_strategy

$0.01


Herramientas disponibles (15)

Herramienta

Descripción

Parámetros

Datos de mercado

list_exchanges

Listar intercambios compatibles

get_ticker

Precio en tiempo real, bid/ask, spread, volumen

exchange, symbol

get_orderbook

Profundidad del libro de órdenes (bids/asks)

exchange, symbol, limit?

get_trades

Operaciones recientes con resumen de compra/venta

exchange, symbol, limit?

get_ohlcv

Datos de velas OHLCV

exchange, symbol, timeframe?, limit?

Cuenta

get_balance

Saldos de cuenta (todos o filtrados)

exchange, asset?

list_orders

Órdenes abiertas (todas o por símbolo)

exchange, symbol?

Trading

create_order

Colocar orden límite o de mercado

exchange, symbol, type, side, amount, price?

cancel_order

Cancelar orden por ID

exchange, symbol, orderId

cancel_all_orders

Cancelar todas las órdenes de un par

exchange, symbol

Cardano DEX

get_cardano_price

Precio agregado del token desde DEXes

symbol

discover_pools

Descubrir pools de liquidez

symbol, minLiquidity?

Estrategia

start_grid_strategy

Iniciar trading de cuadrícula

exchange, symbol, lowerPrice, upperPrice, gridLevels?, totalAmount

stop_strategy

Detener una estrategia en ejecución

strategyId, cancelOrders?

get_strategy_status

Obtener estado de la estrategia

strategyId


Referencia de CLI

Configuración y servidor

Comando

Descripción

openmm-init

Crear bóveda, generar/importar billetera, añadir intercambios

openmm-init --import <key>

Crear bóveda con una clave privada existente

openmm serve

Desbloquear bóveda, iniciar socket unificado

openmm-status

Mostrar estado de bóveda, socket, billetera e intercambio (sin contraseña)

Credenciales de intercambio

Comando

Descripción

openmm-exchange list

Listar intercambios configurados

openmm-exchange add <id>

Añadir credenciales de intercambio

openmm-exchange remove <id>

Eliminar credenciales de intercambio

Intercambios compatibles: mexc, gateio, bitget, kraken, binance, coinbase, okx

Billetera

Comando

Descripción

openmm-wallet info

Mostrar dirección de billetera y cadena

openmm-wallet set

Establecer credenciales de billetera

openmm-wallet export

Mostrar clave privada (requiere confirmación)

Política de gastos

Comando

Descripción

openmm-policy show

Mostrar política actual

openmm-policy set max-per-tx <amount>

USDC máximo por transacción

openmm-policy set max-per-day <amount>

USDC máximo por día

openmm-policy set allowed-chains <chains>

IDs de cadena separados por comas

openmm-policy reset

Borrar todos los límites de política

Avanzado

Comando

Descripción

openmm-vault info

Mostrar metadatos de la bóveda

openmm-vault change-password

Cambiar contraseña de la bóveda

openmm-vault export

Exportar todas las credenciales (peligroso)

openmm-vault destroy

Eliminar la bóveda


Ejemplo de uso

Comprobar precio de BTC:

"Get me the BTC/USDT ticker on MEXC"

Colocar una orden:

"Buy 0.1 ETH at $2400 on Kraken"

Iniciar estrategia de cuadrícula:

"Start a grid strategy on MEXC for INDY/USDT between $0.10 and $0.15 with 10 levels and $500 total"

Comprobar token de Cardano:

"What's the current price of SNEK on Cardano DEXes?"

Seguridad

  • Bóveda: AES-256-GCM cifrada en ~/.openmm/vault.enc

  • Contraseña: Solo terminal interactiva: nunca en ningún archivo de configuración, variable de entorno o bandera de CLI

  • Socket: /tmp/openmm.sock modo 0600: el socket es el límite de autenticación

  • Política: Límites de gasto aplicados en el socket antes de tocar la clave privada

  • Aislamiento: La clave privada nunca entra en la memoria del proceso del cliente MCP: la firma ocurre en el proceso openmm serve a través de IPC


Desarrollo

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

Licencia

MIT

Despliegue alojado

Un despliegue alojado está disponible en Fronteir AI.

Available Tools

13 tools
cancel_all_ordersAInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
exchangeYesExchange to query. Supported: mexc, gateio, bitget, kraken
symbolYesTrading pair symbol (e.g., BTC/USDT, INDY/USDT)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action but does not mention that the operation is irreversible, what happens if there are no open orders, whether it cancels both buy and sell orders, or what response to expect. This is a significant transparency gap for a destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no filler. Every word contributes to understanding the tool's purpose and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With only two fully documented parameters and no output schema, the description is minimally viable for invoking the tool. However, the absence of annotations and the lack of any mention of return values, safety, or side effects leaves notable contextual gaps for an operation that cancels all open orders.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both parameters are already well described with format and supported values. The tool description adds no semantic meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Cancel'), a specific resource ('all open orders'), and the scope ('for a trading pair on a supported exchange'). This clearly differentiates it from sibling cancel_order, which implies a single order cancellation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the intended use case clear: bulk cancellation of all open orders for a pair. However, it does not explicitly reference the sibling cancel_order tool or state when to choose one over the other, so usage guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cancel_orderAInspect

Cancel a specific order by ID on a supported exchange

ParametersJSON Schema
NameRequiredDescriptionDefault
exchangeYesExchange to query. Supported: mexc, gateio, bitget, kraken
symbolYesTrading pair symbol (e.g., BTC/USDT, INDY/USDT)
orderIdYesThe order ID to cancel

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The tool has no annotations, so the description bears the full disclosure burden, yet it only says 'Cancel', a mutation, without stating whether cancellation is irreversible, idempotent, or what happens to a filled/canceled order. Permissions, confirmation, and error behavior are not covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler; the key qualifier 'specific' and 'by ID' are up front, and the exchange constraint is stated once. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-parameter mutation, the description conveys the core operation, and the schema fills in parameter details. However, with no annotations and no output schema, it omits behavioral context like response shape, failure modes, and cancellation guarantees, making it minimally viable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all three parameters (exchange, symbol, orderId) at 100% coverage, so the description need not repeat them. It adds a slight framing with 'by ID' but no new semantic detail, matching the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States the specific action (cancel), the exact target (an order identified by ID), and the scope (a single order on a supported exchange). This clearly distinguishes it from sibling cancel_all_orders, which targets multiple orders.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'a specific order by ID' establishes the primary use case: canceling one known order. It does not explicitly mention when to use cancel_all_orders or other alternatives, but the context is clear enough for an agent to select it for individual cancellations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_orderBInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
exchangeYesExchange to query. Supported: mexc, gateio, bitget, kraken
symbolYesTrading pair symbol (e.g., BTC/USDT, INDY/USDT)
typeYesOrder type: limit or market
sideYesOrder side: buy or sell
amountYesOrder amount in base currency
priceNoOrder price (required for limit orders, ignored for market orders)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility for disclosing behavior. It only states that an order is created but does not mention execution side effects, exchange confirmation, irreversibility, fees, auth requirements, or what happens after the call. For a financial mutation tool, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short, front-loaded sentence with no filler or redundant elaboration. It earns its place by stating the core purpose clearly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description needs to cover more context, such as return values, order lifecycle, or side effects. It only provides a minimal statement of intent, which is insufficient for a complex financial action like order creation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters well. The description adds minimal extra meaning beyond naming limit and market order types, and it does not compensate or add detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Create') with a clear resource ('new order') and scope ('limit or market', 'on a supported exchange'). It clearly distinguishes this tool from sibling tools like cancel_order, get_balance, and list_orders.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or situations where another tool would be more appropriate. There is no explicit when-to-use or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

discover_poolsAInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesCardano token symbol (INDY, SNEK, MIN, NIGHT)

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of disclosing behavior. 'Discover' implies a read-only lookup, but the description does not state whether it modifies anything, what happens when no pools exist, whether there are rate limits, or what the response shape is. This leaves meaningful behavioral uncertainty.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the action and resource, then specifies the API. Every word contributes meaning, with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one documented parameter and no output schema, the description is concise but sufficient to understand the tool's purpose and invoke it. It could elaborate on the return format or edge cases, but the low complexity means the description is nearly complete as-is.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents 'symbol' as a Cardano token symbol with examples. The description adds no parameter details beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Discover') with a specific resource ('Cardano DEX liquidity pools for a native token') and identifies the integration ('Iris API'). It is immediately distinguishable from all sibling tools, which focus on orders, balances, prices, and strategies rather than pool discovery.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear: use this tool when you need to find DEX liquidity pools for a Cardano native token. It does not explicitly name alternatives or exclusions, but none of the sibling tools perform pool discovery, so the intended use is unambiguous enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_balanceAInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
exchangeYesExchange to query. Supported: mexc, gateio, bitget, kraken
assetNoOptional asset to filter by (e.g., USDT, BTC). Returns all assets if omitted.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It clearly indicates a read-only balance query and the asset-level filter, but it does not mention authentication requirements, rate limits, or what happens for unsupported assets. For a simple read operation this is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single focused sentence that front-loads the verb and resource, includes the optional filtering behavior, and adds no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity, fully documented parameters, and absence of an output schema, the description is nearly complete for selecting and invoking the tool. Minor omissions like response format or authentication setup do not prevent successful use, but they would add polish.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (exchange and asset) are already documented with their meanings and supported values. The description adds no substantial parameter semantics beyond paraphrasing the asset filter, matching the baseline for fully covered schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('Get account balances') and clearly scopes the operation to all assets or a specific asset on a supported exchange. This distinguishes it from sibling tools like get_ticker or get_trades, which concern market data rather than account balances.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for checking balances and notes it works on supported exchanges, but it does not explicitly state when to use it versus alternatives or mention any prerequisites such as authentication. The usage context is inferable but not fully articulated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cardano_priceAInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesCardano token symbol (INDY, SNEK, MIN, NIGHT)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It usefully reveals that the price is aggregated and sourced from DEX liquidity pools, but it does not mention side effects (read-only nature), failure modes, unsupported symbols, or whether the price may vary based on pool conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, information-dense sentence with no filler. The core action and key qualifiers are front-loaded, and every phrase adds meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read tool, the description provides the essential context: what price, from where, and the pairing route. It is sufficient for basic selection and invocation, though it could be more complete by describing the expected return value or error behavior in the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully documents the single 'symbol' parameter with example values, so schema coverage is 100%. The description adds context about the quote convention (TOKEN/USDT via ADA bridge) but does not add further parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and defines the exact resource: an aggregated price for a Cardano native token sourced from DEX liquidity pools. It also clarifies the quote path ('TOKEN/USDT via ADA bridge'), which distinguishes this tool from generic ticker or exchange price tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is for Cardano native token prices aggregated from DEX pools, but it does not explicitly state when to use this tool versus siblings like get_ticker or discover_pools. There is no when-to-use guidance or mention of exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_orderbookBInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
exchangeYesExchange to query. Supported: mexc, gateio, bitget, kraken
symbolYesTrading pair symbol (e.g., BTC/USDT, INDY/USDT)
limitNoNumber of results to return (default: 10, max: 100)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions 'supported exchange' but doesn't specify rate limits, authentication requirements, error handling, or response format. For a financial data tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose and appropriately sized for what it communicates. Every word earns its place in conveying the essential function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a financial data tool with 3 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what 'bids and asks' data looks like, how results are structured, whether there are exchange-specific behaviors, or what authentication might be required. The context demands more comprehensive guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema - it doesn't explain what 'order book depth' means in practice or provide context about the limit parameter's effect on data granularity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('fetch'), resource ('order book depth'), and scope ('for a trading pair on a supported exchange'), distinguishing it from siblings like get_ticker (price only) or get_trades (historical trades). It precisely communicates what the tool does without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose get_orderbook over get_ticker for price data, or how it differs from list_orders for order information. There's no context about prerequisites or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_strategy_statusAInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
exchangeYesExchange to query. Supported: mexc, gateio, bitget, kraken
symbolYesTrading pair symbol (e.g., BTC/USDT, INDY/USDT)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It clearly signals a read-only operation via 'Get' and discloses the output components (open orders, current price, P&L estimate). However, it does not state preconditions such as whether an active strategy must exist for the given symbol/exchange, what happens when no strategy is found, or whether the price is a live snapshot or cached value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with zero filler. The verb, resource, and the three returned components each earn their place, and nothing is redundantly repeated from the input schema or the rest of the definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is low-complexity (two flat params, no output schema, no annotations), and the description partially compensates for the missing output schema by listing what the call returns. The remaining gap is behavioral context: what occurs if no strategy is running on the queried exchange/symbol, and whether the strategy must be started before this call is valid.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both symbol and exchange already documented with examples and supported values. The description adds only implicit context that these parameters identify which grid strategy to query, but introduces no format details, ranges, or validation rules beyond what the schema already provides. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') with a distinct resource ('grid strategy status') and enumerates the returned data (open orders, current price, P&L estimate). The resource is unique among the sibling tools — none of the other reads (get_ticker, get_balance, get_trades) target strategy state — so it can be told apart without opening the schema, though it does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is implied: call this to inspect the state of a grid strategy for a given exchange/symbol. However, there is no explicit when-to-use guidance, no mention of when not to use it (e.g., when a strategy is not running), and no named alternatives such as start_grid_strategy for lifecycle operations or get_ticker for live market price.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tickerAInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
exchangeYesExchange to query. Supported: mexc, gateio, bitget, kraken
symbolYesTrading pair symbol (e.g., BTC/USDT, INDY/USDT)

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'real-time' data, which is useful context, but fails to disclose other critical traits such as rate limits, authentication requirements, error handling, or data freshness guarantees. For a read operation with no annotation coverage, this leaves significant gaps in understanding its behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose without any wasted words. Every part of the sentence earns its place by specifying the data retrieved and the context (supported exchange), making it appropriately sized and structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (2 parameters, no nested objects) and 100% schema coverage, the description is adequate but not complete. It lacks output schema, so return values are undocumented, and with no annotations, behavioral aspects like rate limits or errors are missing. For a simple read tool, it meets minimum viability but has clear gaps in contextual information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters (exchange and symbol) well-documented in the schema. The description adds no additional meaning beyond what the schema provides (e.g., it doesn't explain format nuances or constraints). According to the rules, with high schema coverage, the baseline is 3 even without param info in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Get') and resource ('real-time price, bid/ask, spread, and volume for a trading pair'), distinguishing it from siblings like get_balance (balances), get_orderbook (order book data), and get_trades (trade history). It precisely defines what data is retrieved without being vague or tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by specifying 'on a supported exchange,' which provides some context for when to use this tool (for real-time market data on those exchanges). However, it does not explicitly state when to use it versus alternatives like get_orderbook (for depth data) or get_cardano_price (for a specific asset's price), nor does it mention exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tradesCInspect

Get recent trades for a trading pair on a supported exchange

ParametersJSON Schema
NameRequiredDescriptionDefault
exchangeYesExchange to query. Supported: mexc, gateio, bitget, kraken
symbolYesTrading pair symbol (e.g., BTC/USDT, INDY/USDT)
limitNoNumber of results to return (default: 20, max: 100)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'recent trades' but doesn't specify what 'recent' means (e.g., time window, pagination), whether there are rate limits, authentication requirements, or what format the results will be in. This leaves significant gaps for an agent to understand the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized for a straightforward data retrieval tool and front-loads the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a data retrieval tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'recent' means, the structure of returned trade data, potential errors, or how it differs from sibling tools. Given the complexity of trading data and lack of structured output information, more context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description doesn't add any meaningful parameter semantics beyond what's in the schema, maintaining the baseline score for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get recent trades') and resource ('for a trading pair on a supported exchange'), making the purpose immediately understandable. It doesn't explicitly differentiate from siblings like 'get_orderbook' or 'get_ticker', but the focus on trades is specific enough to avoid confusion with those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like 'get_orderbook' or 'get_ticker', nor does it mention prerequisites or exclusions. It simply states what the tool does without contextual usage information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_ordersAInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
exchangeYesExchange to query. Supported: mexc, gateio, bitget, kraken
symbolNoOptional trading pair to filter by (e.g., BTC/USDT). Returns all if omitted.

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does not mention authentication requirements, rate limits, pagination, or whether the operation is strictly read-only. The verb 'List' implies a read operation, but important behavioral details are omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that front-loads the core purpose and then adds the optional filter. Every token earns its place; no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool, the description and schema cover the essential inputs and purpose. However, with no output schema and no annotations, the description does not explain the return format, authentication requirements, or any exchange-specific behavior, leaving some gaps for an agent to resolve.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds little beyond the schema, only restating the optional symbol filter. Baseline 3 is appropriate since the description does not need to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') with a clear resource ('open orders') and context ('on a supported exchange'), and mentions the optional symbol filter. This clearly distinguishes it from sibling tools like cancel_order, create_order, and get_trades.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage is implied: use this tool to list currently open orders on an exchange, optionally filtered by pair. However, there is no explicit guidance on when not to use it or how it differs from alternatives such as get_trades or get_orderbook, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_grid_strategyBInspect

Calculate and optionally place grid trading orders around the current price

ParametersJSON Schema
NameRequiredDescriptionDefault
exchangeYesExchange to query. Supported: mexc, gateio, bitget, kraken
symbolYesTrading pair symbol (e.g., BTC/USDT, INDY/USDT)
levelsNoGrid levels per side (default: 5)
spacingNoBase spacing as decimal (default: 0.02 = 2%)
orderSizeNoBase order size in quote currency (default: 50)
spacingModelNoSpacing modellinear
spacingFactorNoFactor for geometric spacing (default: 1.3)
sizeModelNoSize modelflat
dryRunNoPreview grid without placing orders (default: true)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of conveying side effects. It does disclose that order placement is optional, which is an important safety-relevant behavior. However, it does not explain what happens when dryRun is false, how many orders may be placed, or what result the agent should expect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence with no filler. The key verbs 'calculate' and 'optionally place' are front-loaded, and the 'around the current price' scope is immediately clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 9 parameters, potential order placement, no annotations, and no output schema, the description provides almost no operational context. It does not explain how the grid strategy is constructed, what the preview output contains, or what side effects occur when orders are actually placed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter. The description adds no deeper meaning about how levels, spacing, sizeModel, or spacingModel interact. This meets the baseline but does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action: calculate and optionally place grid trading orders, anchored around the current price. This distinguishes it from generic order tools like create_order and from strategy lifecycle tools like get_strategy_status and stop_strategy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given for when to use this tool versus alternatives such as create_order or the strategy status/stop tools. The 'optionally place' wording hints at preview vs. execution, but it does not explicitly state when dryRun should be used or when a different tool is more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stop_strategyAInspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
exchangeYesExchange to query. Supported: mexc, gateio, bitget, kraken
symbolYesTrading pair symbol (e.g., BTC/USDT, INDY/USDT)

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of disclosing behavior. It clearly states the destructive scope (cancelling all open orders for a pair) and the downstream effect (stopping a running grid strategy). It does not discuss reversibility, but the main behavioral traits are explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no filler. The action and object are front-loaded followed by the intended effect, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter cancel operation, the description covers the action, scope, and outcome. However, given the existence of a sibling tool with an identical action ('cancel_all_orders'), the description lacks routing context to help an agent select correctly between them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both 'symbol' and 'exchange' are already well documented. The description adds no additional parameter-level meaning, making the baseline score of 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Cancel all open orders for a trading pair' and adds the intended outcome of stopping a grid strategy. However, it does not differentiate itself from the closely named sibling 'cancel_all_orders', which appears to describe the same action on the same resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'effectively stopping any running grid strategy' implies the intended use case for halting a strategy. But it provides no explicit guidance about when to choose this tool over alternatives such as cancel_order or cancel_all_orders.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 13 tool updatesv1.0.5
    • First observedcancel_all_orders
    • First observedcancel_order
    • First observedcreate_order
    • First observeddiscover_pools
    • First observedget_balance
    • First observedget_cardano_price
    • First observedget_orderbook
    • First observedget_strategy_status
    • First observedget_ticker
    • First observedget_trades
    • First observedlist_orders
    • First observedstart_grid_strategy
    • First observedstop_strategy

TDQS

B3.4/5.0

Scored across 13 tools

Disambiguation4/5

Most tools have distinct purposes, such as create_order for order creation and get_ticker for price data. However, cancel_all_orders and stop_strategy both involve canceling orders for a trading pair, which could cause confusion in selection, though stop_strategy is tied to grid strategies.

Naming Consistency4/5

The naming follows a consistent verb_noun pattern with snake_case throughout, such as get_balance and list_orders. Minor deviations exist, like discover_pools using 'discover' instead of 'get' or 'list', but overall the pattern is clear and readable.

Tool Count5/5

With 13 tools, the count is well-scoped for a trading and strategy automation server. Each tool serves a specific function, from order management to price fetching and strategy control, without feeling excessive or insufficient for the domain.

Completeness4/5

The toolset covers core trading operations like order CRUD, balance checks, and market data, plus grid strategy management. A minor gap is the lack of tools for modifying existing orders (e.g., update_order) or detailed strategy configuration, but agents can work around this with the available tools.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides cryptocurrency trading signals, market analysis, and portfolio management capabilities across 15+ exchanges with AI-enhanced technical analysis, arbitrage detection, and risk assessment tools.
    2
    -
  • A
    license
    A
    quality
    C
    maintenance
    Trade, analyze, and automate Polymarket prediction markets via AI. 34 tools for direct trading, smart money flow, copy trading, backtest, and portfolio management.
    48
    66 npm
    16
    MIT
  • A
    license
    A
    quality
    F
    maintenance
    MCP server for DeFi execution — lets AI agents swap, provide liquidity, lend, bridge, and run yield strategies across 22 chains in a single transaction. 7 tools for token discovery, portfolio analysis, quoting, and execution via the Haiku API.
    7
    45 npm
    2
    MIT