项目简介
Foundry MCP 服务器是一个轻量级的后端服务,旨在将 Foundry 工具链(Forge、Cast、Anvil)的功能暴露给大型语言模型(LLM)客户端。通过实现 Model Context Protocol (MCP),它使得 LLM 能够直接与以太坊虚拟机(EVM)网络进行交互,进行智能合约开发、部署、测试以及数据分析等操作。
主要功能点
- EVM 网络交互: 启动和管理本地 Anvil 测试网络实例,连接到任何远程 RPC 端点,获取网络信息。
- 智能合约交互: 调用合约的只读函数、发送交易(需要配置私钥)、获取交易回执、读取存储、分析交易轨迹、获取合约 ABI 和源代码。
- Solidity 开发: 维护一个独立的 Forge 工作区,创建和编辑 Solidity 文件,安装依赖,运行 Forge 脚本,部署合约。
- 实用工具: 计算合约地址、检查合约字节码大小、估算 Gas 费用、转换单位(如 wei 到 ether)、生成钱包、获取事件日志、查找函数和事件签名。
安装步骤
- 安装依赖: 确保您的系统已安装 Node.js (v18+) 和 Foundry 工具链 (Forge, Cast, Anvil)。
- 安装 Node.js: 访问 https://nodejs.org 下载安装包。
- 安装 Foundry: 打开终端,运行以下命令:
确保 'cast', 'forge', 'anvil' 命令在您的系统路径中可用。curl -L https://foundry.paradigm.xyz | bash foundryup
- 克隆仓库并构建:
git clone https://github.com/PraneshASP/foundry-mcp-server.git cd foundry-mcp-server bun i # 或 npm install / yarn install 安装 Node.js 依赖 bun build ./src/index.ts --outdir ./dist --target node # 或使用 npm/yarn 运行构建脚本
服务器配置(针对 MCP 客户端)
Foundry MCP 服务器通过标准输入输出 (Stdio) 与 MCP 客户端通信。您需要在 MCP 客户端的配置中指定如何启动此服务器。
通常,客户端配置文件(如 Claude Desktop 的 'config.json')会有一个 'mcpServers' 部分。您需要添加一个条目来定义 Foundry MCP 服务器:
- 服务器名称: 例如 "foundry" 或 "Foundry MCP Server" (客户端用于引用)。
- 启动命令 (command): 指定执行 Node.js 程序的命令,通常是 'node'。
- 启动参数 (args): 一个数组,包含 Node.js 程序的路径。例如:'["path/to/your/foundry-mcp-server/dist/index.js"]'。请将 'path/to/your/foundry-mcp-server' 替换为您实际克隆仓库的路径。
- 环境变量 (env): 可选配置。
- 'RPC_URL': 指定默认的 JSON-RPC 端点,例如 '"http://localhost:8545"'。
- 'PRIVATE_KEY': 警告: 用于发送交易的私钥。请务必只用于测试/开发环境,切勿使用包含主网资金的私钥! 避免 LLM 幻觉导致意外交易。
配置示例(客户端配置格式):
"mcpServers": { "foundry": { "command": "node", "args": [ "您的foundry-mcp-server仓库路径/dist/index.js" ], "env": { "RPC_URL": "https://eth-sepolia.g.alchemy.com/v2/YOUR_ALCHEMY_KEY", // 示例:使用 Sepolia 测试网 "PRIVATE_KEY": "0x..." // 仅用于测试,非常小心! } } }
请根据您使用的具体 MCP 客户端调整配置格式和文件位置。配置完成后,通常需要重启 MCP 客户端才能识别并连接到服务器。
基本使用方法
配置并重启 MCP 客户端后,客户端应该能够发现 Foundry MCP 服务器提供的工具。在支持 MCP 工具的客户端界面中(例如,Claude Desktop 中可能显示一个锤子图标),您会看到可用的工具列表,例如 'cast_call', 'forge_script', 'anvil_start' 等。
您现在可以直接在与 LLM 的对话中提出与 Solidity 开发或 EVM 交互相关的任务。LLM 会根据您的请求,智能地选择并调用相应的 Foundry MCP 服务器工具来执行操作。例如:
- 询问特定地址的 ETH 余额。
- 分析一笔链上交易的内容。
- 要求 LLM 在工作区中创建一个简单的 ERC20 合约文件。
- 要求 LLM 部署工作区中的合约到本地 Anvil 实例。
LLM 会负责组织调用工具所需的参数,并将工具的输出呈现给您。
信息
分类
开发者工具