使用说明
项目简介
本项目 'mcp-solana-dex' 是一个基于 Model Context Protocol (MCP) 构建的去中心化交易所 (DEX) 服务器示例,专注于为 Solana 区块链上的代币提供基本的交易功能。它通过 MCP 协议将 DEX 的操作暴露为工具,使得 LLM 客户端可以通过标准化的方式调用这些功能,实现与 Solana DEX 的交互。
请注意: 这是一个简化的示例,'execute_order' 工具使用了非原子性的交易模型,不适用于生产环境。
主要功能点
- 订单管理: 支持创建、取消和执行卖单。
- 订单簿查询: 允许检索特定 ICO 代币的当前订单簿。
- MCP 工具: 将 DEX 功能以 MCP 工具的形式暴露,方便 LLM 客户端调用。
- 文件持久化: 使用 JSON 文件存储订单簿数据。
安装步骤
- 确保已安装 Poetry: 如果尚未安装 Poetry,请根据 Poetry 官方文档 (https://python-poetry.org/docs/) 进行安装。
- 导航到项目根目录: 打开终端,进入包含 'pyproject.toml' 文件的项目根目录(即仓库的根目录)。
- 安装依赖: 运行以下命令安装项目依赖:
poetry install
服务器配置
MCP 服务器需要配置启动命令和参数,以便 MCP 客户端能够连接和调用服务。以下是 'mcp-solana-dex' 服务器的配置信息,请复制到 MCP 客户端的服务器配置中:
{ "serverName": "solana_dex_server", "command": "poetry", "args": [ "run", "python", "mcp_solana_dex/server.py" ], "transport": "stdio", "description": "Solana DEX MCP Server", "version": "0.1.0", "capabilities": [ "tools" ] }
参数注释:
- 'serverName': 服务器的名称,可以自定义。
- 'command': 启动服务器的命令,这里使用 'poetry' 命令。
- 'args': 命令参数列表,包括 'run python mcp_solana_dex/server.py',用于通过 Poetry 运行 'server.py' 文件。
- 'transport': 指定 MCP 客户端与服务器通信的传输协议,这里使用 'stdio' (标准输入/输出)。
- 'description': 服务器的描述信息。
- 'version': 服务器版本。
- 'capabilities': 声明服务器提供的能力,这里声明了 'tools' 能力,表示服务器提供 MCP 工具功能。
环境变量配置: 在项目根目录下创建 '.env' 文件,并根据需要配置以下环境变量:
# Solana RPC Endpoint (默认为本地节点) RPC_ENDPOINT="http://localhost:8899" # 订单簿数据文件路径 (默认为 data/order_book.json) ORDER_BOOK_FILE="data/order_book.json"
您可以根据实际 Solana RPC 节点地址和订单簿文件存储位置修改 '.env' 文件中的配置。
基本使用方法
-
启动服务器: 在项目根目录下,运行以下命令启动 Solana DEX MCP 服务器:
poetry run python mcp_solana_dex/server.py服务器成功启动后,会监听标准输入/输出,等待 MCP 客户端的请求。
-
使用 MCP 客户端交互: 配置 MCP 客户端连接到该服务器。客户端可以通过 JSON-RPC 协议发送请求,调用服务器提供的 MCP 工具,例如 'create_order', 'cancel_order', 'execute_order', 'get_orders' 等。
具体的工具参数和使用方法请参考 'README.md' 文件中 "MCP Tools" 部分的详细描述。
示例工具调用 (假设使用 MCP 客户端发送 JSON-RPC 请求):
-
创建卖单:
{ "jsonrpc": "2.0", "method": "tool/create_order", "params": { "ico_id": "ICO_TOKEN_A", "amount": 1000, "price": 0.5, "owner": "YOUR_PUBLIC_KEY" }, "id": "1" } -
查询订单簿:
{ "jsonrpc": "2.0", "method": "tool/get_orders", "params": { "ico_id": "ICO_TOKEN_A" }, "id": "2" }
请根据 MCP 客户端的具体使用方式,构造相应的 JSON-RPC 请求与服务器进行交互。
信息
分类
商业系统