项目简介

Foundry MCP 服务器是一个轻量级的后端服务,旨在将 Foundry 工具链(Forge、Cast、Anvil)的功能暴露给大型语言模型(LLM)客户端。通过实现 Model Context Protocol (MCP),它使得 LLM 能够直接与以太坊虚拟机(EVM)网络进行交互,进行智能合约开发、部署、测试以及数据分析等操作。

主要功能点

  • EVM 网络交互: 启动和管理本地 Anvil 测试网络实例,连接到任何远程 RPC 端点,获取网络信息。
  • 智能合约交互: 调用合约的只读函数、发送交易(需要配置私钥)、获取交易回执、读取存储、分析交易轨迹、获取合约 ABI 和源代码。
  • Solidity 开发: 维护一个独立的 Forge 工作区,创建和编辑 Solidity 文件,安装依赖,运行 Forge 脚本,部署合约。
  • 实用工具: 计算合约地址、检查合约字节码大小、估算 Gas 费用、转换单位(如 wei 到 ether)、生成钱包、获取事件日志、查找函数和事件签名。

安装步骤

  1. 安装依赖: 确保您的系统已安装 Node.js (v18+) 和 Foundry 工具链 (Forge, Cast, Anvil)。
    • 安装 Node.js: 访问 https://nodejs.org 下载安装包。
    • 安装 Foundry: 打开终端,运行以下命令:
      curl -L https://foundry.paradigm.xyz | bash
      foundryup
      确保 'cast', 'forge', 'anvil' 命令在您的系统路径中可用。
  2. 克隆仓库并构建:
    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 会负责组织调用工具所需的参数,并将工具的输出呈现给您。

信息

分类

开发者工具