OpenOcean Finance

Un servidor MCP para ejecutar intercambios de tokens a través de múltiples intercambios descentralizados utilizando la API de agregación de OpenOcean.

Documentación

Servidor OPENOCEAN-MCP

Un servidor MCP para ejecutar intercambios de tokens en múltiples intercambios descentralizados utilizando la API de agregación de OpenOcean.

Descripción general

Este proyecto implementa un servidor de Protocolo de Contexto de Modelo (MCP) para interactuar con intercambios descentralizados (DEXs). Permite que clientes compatibles con MCP (como asistentes de IA, extensiones de IDE o aplicaciones personalizadas) accedan a funcionalidades como obtener cotizaciones para intercambios y ejecutar intercambios en múltiples cadenas.

Este servidor está construido usando TypeScript y fastmcp.

Funciones (Herramientas MCP)

El servidor expone las siguientes herramientas que los clientes MCP pueden utilizar:

  • CHAIN_LIST: Obtener lista de cadenas.
    • Parámetros:
  • GAS_PRICE: Obtener precio del gas.
    • Parámetros: chain (string)
  • QUOTE: Obtener una cotización para un intercambio.
    • Parámetros: chain (string), inTokenAddress (string), outTokenAddress (string), amount (string), slippage (string)
  • SWAP: Construir transacción de intercambio.
    • Parámetros: chain (string), inTokenAddress (string), outTokenAddress (string), amount (string), slippage (string), account (string)
  • GET_TRANSACTION: Obtener información de transacción.
    • Parámetros: chain (string), hash (string)
  • TOKEN_LIST: Obtener lista de tokens.
    • Parámetros: chain (string)
  • DEX_LIST: Obtener lista de DEX.
    • Parámetros: chain (string)

Desglose de parámetros

  • chain: El código de cadena del DEX.
  • inTokenAddress: El token que deseas vender.
  • outTokenAddress: El token que deseas comprar.
  • amount: Cantidad de token con decimales. Por ejemplo, si se ingresa 1 USDT, usa 1000000 (1 USDT * 10^6).
  • slippage: Define el nivel de deslizamiento aceptable ingresando un valor porcentual dentro del rango de 0.05 a 50. Un deslizamiento del 1% se establece como 1.
  • account: dirección de billetera del usuario.
  • hash: Hash del contrato de OpenOcean en la blockchain.

Requisitos previos

Instalación

Hay varias formas de usar openocean-mcp:

1. Usando pnpm dlx (Recomendado para la mayoría de configuraciones de clientes MCP):

Puedes ejecutar el servidor directamente usando pnpm dlx sin necesidad de una instalación global. Esta suele ser la forma más fácil de integrarse con clientes MCP. Consulta la sección "Ejecutar el servidor con un cliente MCP" para ver ejemplos. (pnpm dlx es el equivalente de pnpm a npx)

2. Instalación global desde npm (mediante pnpm):

Instala el paquete globalmente para que el comando openocean-mcp esté disponible en todo el sistema:

pnpm add -g openocean-mcp

3. Compilar desde el código fuente (para desarrollo o modificaciones personalizadas):

  1. Clonar el repositorio:

    git clone https://github.com/openocean-finance/openocean-mcp.git
    cd openocean-mcp
    
  2. Instalar dependencias:

    pnpm install
    
  3. Compilar el servidor: Esto compila el código TypeScript a JavaScript en el directorio dist.

    pnpm run build
    

    El script prepare también ejecuta pnpm run build, por lo que las dependencias se compilan al instalarlas si clonas y ejecutas pnpm install.

Configuración (Variables de entorno)

Este servidor MCP puede requerir que el cliente MCP que lo ejecuta establezca ciertas variables de entorno. Estas se configuran típicamente en la definición del servidor MCP del cliente (por ejemplo, en un archivo mcp.json para Cursor, o similar para otros clientes).

  • Cualquier variable de entorno necesaria para proveedores de billeteras o claves de API.

Ejecutar el servidor con un cliente MCP

Los clientes MCP (como asistentes de IA, extensiones de IDE, etc.) ejecutarán este servidor como un proceso en segundo plano. Debes configurar el cliente para indicarle cómo iniciar tu servidor.

A continuación se muestra un fragmento de configuración de ejemplo que un cliente MCP podría usar (por ejemplo, en un archivo mcp_servers.json o similar). Este ejemplo muestra cómo ejecutar el servidor usando el paquete npm publicado mediante pnpm dlx.

{
  "mcpServers": {
    "openocean-mcp-server": {
      "command": "pnpm",
      "args": ["dlx", "openocean-mcp"]
    }
  }
}

Alternativa si está instalado globalmente:

Si has instalado openocean-mcp globalmente (pnpm add -g openocean-mcp), puedes simplificar command y args:

{
  "mcpServers": {
    "openocean-mcp-server": {
      "command": "openocean-mcp",
      "args": []
    }
  }
}
  • command: El ejecutable a ejecutar.
    • Para pnpm dlx: "pnpm" (con "dlx" como primer argumento)
    • Para instalación global: "openocean-mcp"
  • args: Una matriz de argumentos para pasar al comando.
    • Para pnpm dlx: ["dlx", "openocean-mcp"]
    • Para instalación global: []
  • env: Un objeto que contiene variables de entorno que se establecerán cuando se inicie el proceso del servidor. Aquí es donde proporcionas cualquier variable de entorno necesaria.
  • workingDirectory: Generalmente no es necesario cuando se usa el paquete publicado mediante pnpm dlx o una instalación global, ya que el paquete debería manejar sus propias rutas correctamente. Si estuvieras ejecutando desde el código fuente (node dist/index.js), entonces establecer workingDirectory en la raíz del proyecto sería importante.