项目简介
Midnight MCP 服务器是一个 Model Context Protocol (MCP) 实现,它允许 AI 模型以标准化的方式与 Midnight 加密货币网络进行交互。该服务器核心功能在于托管和管理 Midnight 区块链相关的资源,注册和执行工具以允许 LLM 调用钱包操作和市场功能,并支持可定制的 LLM 交互模式。它通过 STDIO 传输协议与 MCP 客户端通信,为 AI 应用提供安全、可扩展的上下文服务框架。
主要功能点
- 钱包管理: 提供查询钱包状态、地址、余额、交易历史,以及发送资金等核心钱包功能。
- 市场集成: 允许注册和验证用户在 Midnight 网络上的市场服务。
- 标准化接口: 通过 Model Context Protocol (MCP) 提供统一的 JSON-RPC 接口,方便 LLM 客户端集成。
- 会话管理: 支持多智能体并发运行,每个智能体拥有独立的存储空间和配置。
- 可观测性: 集成审计跟踪和日志系统,提供事务处理和智能体决策的详细记录。
- 易于部署: 支持 Node.js 和 Yarn,并提供 Docker Compose 配置,简化部署流程。
安装步骤
- 安装前置条件:
- Node.js (推荐 v18.20.5)
- Yarn 包管理器
- Docker 和 Docker Compose (用于生产部署)
- 克隆仓库并安装依赖:
git clone https://github.com/DEGAorg/midnight-mcp.git cd midnight-mcp yarn install - 构建项目:
yarn build - 设置智能体 (Agent):
为您的 MCP 服务器设置一个独特的智能体。您可以选择使用系统生成的助记词,或者提供自己的助记词或十六进制种子。
- 使用默认设置:
yarn setup-agent -a <您的智能体名称> - 使用十六进制种子 (32字节熵):
yarn setup-agent -a <您的智能体名称> -s "您的十六进制种子" - 使用 BIP39 助记词:
yarn setup-agent -a <您的智能体名称> -m "您的BIP39助记词"
- 使用默认设置:
服务器配置 (用于 MCP 客户端)
MCP 客户端需要以下配置信息来连接 Midnight MCP 服务器。请根据您实际部署服务器的路径和 Node.js 版本进行调整:
"mcp": { "servers": { "midnight-mcp": { "type": "stdio", "name": "Midnight MCP", "command": "bash", "args": [ "-c", "source ~/.nvm/nvm.sh && AGENT_ID=<agent-id> nvm exec 22.15.1 node <path>/midnight-mcp/dist/stdio-server.js" ] } } }
参数说明:
- 'type': 服务器的传输协议,此处为 'stdio'。
- 'name': 服务器的显示名称,例如 'Midnight MCP'。
- 'command': 启动服务器的 shell 命令。这里是 'bash'。
- 'args': 传递给 'command' 的参数列表。
- '-c': 指示 'bash' 执行后续的字符串作为命令。
- 'source ~/.nvm/nvm.sh': 如果您使用 'nvm' 管理 Node.js 版本,这行确保正确的 Node.js 环境被加载。如果不是,可以省略或替换为您的 Node.js 路径。
- 'AGENT_ID=<agent-id>': 重要。替换 '<agent-id>' 为您在 'yarn setup-agent' 步骤中设置的智能体名称。每个智能体需要一个唯一的 ID 来隔离其钱包数据和交易记录。
- 'nvm exec 22.15.1 node <path>/midnight-mcp/dist/stdio-server.js': 使用 'nvm' 执行特定版本的 Node.js 来启动 MCP 服务器。
- '22.15.1': 替换为您的 Node.js 实际版本。
- '<path>': 重要。替换为 'midnight-mcp' 仓库在您系统上的绝对路径。例如,如果仓库在 '/home/user/projects/midnight-mcp',则 '<path>' 应替换为 '/home/user/projects'。
基本使用方法
启动服务器后,MCP 客户端即可通过 JSON-RPC 协议与 Midnight MCP 服务器通信,调用以下工具:
- 钱包工具:
- 'walletStatus': 检查钱包同步状态。
- 'walletAddress': 获取钱包接收地址。
- 'walletBalance': 查看当前余额。
- 'getTransactions': 列出交易历史。
- 'getTransactionStatus': 根据交易 ID 获取交易状态。
- 'sendFunds': 发送资金到其他地址。
- 'verifyTransaction': 验证交易状态。
- 'getWalletConfig': 获取钱包配置。
- 市场工具:
- 'registerInMarketplace': 在市场中注册用户。
- 'verifyUserInMarketplace': 在市场中验证用户。
信息
分类
开发者工具