使用说明
项目简介
AllNads 是一个构建在 Monad 区块链上的 AI 驱动的智能钱包平台,它利用可组合 NFT 和 ERC-6551 协议,为用户提供 AI 助手来管理区块链资产。该仓库包含 AllNads 平台的后端实现,其中 mcp 目录下包含了两个关键的 MCP 服务器实现,分别是 'allnads-mcp-server' 和 'evm-mcp-server',它们为 AI 助手提供与区块链交互的能力。
主要功能点
- 资源管理 (Resources): 虽然仓库描述中没有明确提及资源托管,但 MCP 服务器作为应用后端,必然负责管理和提供区块链数据等资源,供 AI 助手访问。
- 工具注册和执行 (Tools): 'mcp/allnads-mcp/src/tools' 和 'mcp/evm-mcp/src/tools' 目录包含了多种预定义的工具,例如 'send_mon' (发送 MON 代币), 'change_template' (更换 NFT 组件), 'evm_account_balance' (查询 EVM 账户余额) 等,这些工具允许 AI 助手调用外部功能,与区块链进行交互。
- Prompt 模板 (Prompts): 仓库中虽然没有明确的 Prompt 模板定义文件,但 'backend/src/config/prompts.ts' 文件包含了 'getSystemPrompt' 函数,用于生成系统 Prompt,支持定制化的 LLM 交互模式。
- JSON-RPC 协议通信: MCP 服务器通过 JSON-RPC 协议与客户端通信,处理客户端的资源访问、工具调用和 Prompt 获取等请求。
- 会话管理: 后端服务器 ('backend/src/services/sessionService.ts') 具备会话管理功能,支持在 WebSocket 环境下与客户端保持持久连接。
- 能力声明: MCP 服务器通过注册和声明工具,向客户端暴露自身的能力。
- 多种传输协议支持: 通过 'StdioServerTransport' 和 'SSEServerTransport' 实现了 Stdio 和 SSE 传输协议的支持,为 MCP 客户端提供了灵活的连接方式。
安装步骤
-
克隆仓库:
git clone https://github.com/LanfordCai/allnads.git cd allnads -
安装 backend 依赖:
cd backend npm install cd .. -
安装 contract 依赖:
cd contract npm install cd .. -
安装 mcp 依赖:
cd mcp/allnads-mcp npm install cd ../evm-mcp npm install cd ../.. -
配置环境变量:
- 复制 '.env.example' 文件并重命名为 '.env',根据需要配置 Privy, Monad RPC, OpenRouter API Key 等环境变量。
- 确保配置 'MONAD_TESTNET_ALLNADS_ADDRESS', 'LOCALHOST_ALLNADS_ADDRESS' 等合约地址,以及 'MONAD_PRIVATE_KEY', 'HARDHAT_PRIVATE_KEY' 等私钥。
- 特别注意配置 'ALLNADS_SERVER_API_URL' 和 'ALLNADS_SERVER_API_KEY',这两个变量用于 MCP 服务器与 AllNads 后端 API 的安全通信。
-
编译智能合约 (可选): 如果需要部署或测试智能合约,可以执行以下命令:
cd contract npm run compile npm run deploy --network monadTestnet # 或 localhost cd .. -
构建后端服务:
cd backend npm run build cd .. -
启动 MCP 服务器:
- EVM MCP Server:
cd mcp/evm-mcp npm run start - AllNads MCP Server:
或在 HTTP 模式下启动 (SSE 传输协议):cd mcp/allnads-mcp npm run startcd mcp/allnads-mcp USE_HTTP=true npm run start
- EVM MCP Server:
服务器配置
以下是 MCP 客户端连接 'allnads-mcp-server' 和 'evm-mcp-server' 的配置信息示例 (JSON 格式),客户端需要根据实际情况进行配置:
AllNads MCP Server 配置 (allnads-mcp-server):
{ "server name": "allnads-mcp-server", "command": "node", "args": [ "--loader", "ts-node/esm", "mcp/allnads-mcp/src/server.ts" ], "description": "AllNads 账户管理 MCP 服务器" }
EVM MCP Server 配置 (evm-mcp-server):
{ "server name": "evm-mcp-server", "command": "node", "args": [ "--loader", "ts-node/esm", "mcp/evm-mcp/src/server.ts" ], "description": "EVM 区块链查询 MCP 服务器" }
配置参数说明:
- 'server name': MCP 服务器的名称,客户端用于标识和选择服务器。例如 '"allnads-mcp-server"' 或 '"evm-mcp-server"'.
- 'command': 启动 MCP 服务器的命令,通常为 '"node"' (Node.js 环境)。
- 'args': 启动命令的参数数组,用于指定服务器入口文件和加载器。
- '"mcp/allnads-mcp/src/server.ts"' 或 '"mcp/evm-mcp/src/server.ts"': 指定 MCP 服务器的入口文件路径。
- '"--loader"', '"ts-node/esm"': 用于在 Node.js 环境中直接运行 TypeScript 代码。
- 'description': MCP 服务器的描述信息,用于帮助用户理解服务器的功能和用途,例如 '"AllNads 账户管理 MCP 服务器"' 或 '"EVM 区块链查询 MCP 服务器"'.
基本使用方法
- 启动 'allnads-mcp-server' 和 'evm-mcp-server' 这两个 MCP 服务器。
- 在 MCP 客户端中,配置服务器连接信息,包括服务器名称、启动命令及其参数。
- 客户端可以通过 JSON-RPC 协议与 MCP 服务器进行通信,调用已注册的工具,例如:
- 调用 'allnads-mcp-server' 的 'send_mon' 工具发送 MON 代币。
- 调用 'evm-mcp-server' 的 'evm_account_balance' 工具查询 EVM 账户余额。
- AI 助手可以通过 MCP 客户端利用这些工具,实现与区块链的交互,例如查询 NFT 资产、执行代币交易等。
注意: 实际使用时,需要根据 MCP 客户端的具体配置方法进行操作,并确保 MCP 客户端与 MCP 服务器的网络连接正常。
信息
分类
AI与计算