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)
- Parámetros:
QUOTE: Obtener una cotización para un intercambio.- Parámetros:
chain(string),inTokenAddress(string),outTokenAddress(string),amount(string),slippage(string)
- Parámetros:
SWAP: Construir transacción de intercambio.- Parámetros:
chain(string),inTokenAddress(string),outTokenAddress(string),amount(string),slippage(string),account(string)
- Parámetros:
GET_TRANSACTION: Obtener información de transacción.- Parámetros:
chain(string),hash(string)
- Parámetros:
TOKEN_LIST: Obtener lista de tokens.- Parámetros:
chain(string)
- Parámetros:
DEX_LIST: Obtener lista de DEX.- Parámetros:
chain(string)
- Parámetros:
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
- Node.js (v18 o más reciente recomendado)
- pnpm (Ver https://pnpm.io/installation)
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):
-
Clonar el repositorio:
git clone https://github.com/openocean-finance/openocean-mcp.git cd openocean-mcp -
Instalar dependencias:
pnpm install -
Compilar el servidor: Esto compila el código TypeScript a JavaScript en el directorio
dist.pnpm run buildEl script
preparetambién ejecutapnpm run build, por lo que las dependencias se compilan al instalarlas si clonas y ejecutaspnpm 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"
- Para
args: Una matriz de argumentos para pasar al comando.- Para
pnpm dlx:["dlx", "openocean-mcp"] - Para instalación global:
[]
- Para
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 mediantepnpm dlxo 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 establecerworkingDirectoryen la raíz del proyecto sería importante.