OPENOCEAN-MCP服务器
一个MCP服务器,用于使用OpenOcean的聚合API在多个去中心化交易所执行代币交换。
概述
该项目实现了一个模型上下文协议(MCP)服务器,用于与去中心化交易所(DEX)进行交互。它允许MCP兼容的客户端(如AI助手、IDE扩展或自定义应用程序)访问诸如获取掉期报价和跨多个链执行掉期等功能。
此服务器是使用TypeScript和fastmcp构建的。
功能(MCP工具)
服务器公开了MCP客户端可以使用的以下工具:
CHAIN_LIST:获取链表。
- 参数:
GAS_PRICE:获取汽油价格。
- 参数: chain (字符串)
QUOTE:获取掉期报价。
- 参数: chain (字符串), inTokenAddress (字符串), outTokenAddress (字符串), amount (字符串), slippage (字符串)
SWAP:建立掉期交易。
- 参数: chain (字符串), inTokenAddress (字符串), outTokenAddress (字符串), amount (字符串), slippage (字符串), account (字符串)
GET_TRANSACTION:获取交易信息。
- 参数: chain (字符串), hash (字符串)
TOKEN_LIST:获取令牌列表。
- 参数: chain (字符串)
DEX_LIST:获取索引列表。
- 参数: chain (字符串)
参数分解
chain:DEX的链码。inTokenAddress:您要出售的代币。outTokenAddress:你想买的代币。amount:带小数的代币金额。例如,如果输入1 USDT,则使用1000000(1 USDT\*10^6)。slippage:通过输入0.05至50范围内的百分比值来定义可接受的滑移水平。1%滑点设置为1。account:用户的钱包地址。hash:区块链上OpenOcean合约的哈希。
先决条件
- Node.js(建议使用v18或更新版本)
- pnpm(参见 )
安装
有几种使用方法 openocean-mcp:
1.使用 pnpm dlx (建议用于大多数MCP客户端设置):
您可以直接使用以下命令运行服务器 pnpm dlx 而不需要全局安装。这通常是与MCP客户端集成的最简单方法。有关示例,请参阅“使用MCP客户端运行服务器”一节。 (pnpm dlx pnpm的等价物是 npx)
2.从npm全局安装(通过pnpm):
全局安装该包以使 openocean-mcp 命令在系统范围内可用:
pnpm add -g openocean-mcp3.从源代码构建(用于开发或自定义修改):
- 克隆存储库:
git clone https://github.com/openocean-finance/openocean-mcp.git
cd openocean-mcp- 安装依赖项:
pnpm install- 构建服务器:
这将TypeScript代码编译为JavaScript dist 目录。
pnpm run build这 prepare 脚本也会运行 pnpm run build,因此,如果您克隆并运行,依赖关系将在安装时建立 pnpm install.
配置(环境变量)
此MCP服务器可能需要运行它的MCP客户端设置某些环境变量。这些通常在客户端的MCP服务器定义中配置(例如,在 mcp.json 用于Cursor的文件或用于其他客户端的类似文件)。
- 钱包提供商或API密钥的任何必要环境变量。
使用MCP客户端运行服务器
MCP客户端(如AI助手、IDE扩展等)将此服务器作为后台进程运行。您需要配置客户端,告诉它如何启动服务器。
下面是MCP客户端可能使用的示例配置片段(例如,在 mcp_servers.json 或类似的配置文件)。此示例显示了如何使用已发布的npm包通过以下方式运行服务器 pnpm dlx.
{
"mcpServers": {
"openocean-mcp-server": {
"command": "pnpm",
"args": ["dlx", "openocean-mcp"]
}
}
}全球安装的替代方案:
如果您已安装 openocean-mcp 全球范围(pnpm add -g openocean-mcp),你可以简化 command 和 args:
{
"mcpServers": {
"openocean-mcp-server": {
"command": "openocean-mcp",
"args": []
}
}
}command:要运行的可执行文件。
- 对于 pnpm dlx: "pnpm" (与 "dlx" 作为第一个arg) - 对于全局安装: "openocean-mcp"
args:要传递给命令的参数数组。
- 对于 pnpm dlx: ["dlx", "openocean-mcp"] - 对于全局安装: []
env:一个包含服务器进程启动时要设置的环境变量的对象。这是您提供任何必要环境变量的地方。workingDirectory:通过以下方式使用已发布的软件包时,通常不需要pnpm dlx或者全局安装,因为包应该正确处理自己的路径。如果你从源代码运行(node dist/index.js),然后设置workingDirectory深入了解项目的根源将是至关重要的。
