【引介】 Foundry MCP 服务
Foundry MCP 服务
一个简单、轻量级且快速的 MCP (模型上下文协议) 服务器,它使用 Foundry 工具链(Forge、Cast 和 Anvil)提供 Solidity 开发能力。
概述
此MCP服务将 LLM 助手连接到 Foundry 生态系统,使它们能够:
- 与节点(本地 Anvil 实例或远程 RPC 端点)交互
- 分析智能合约和区块链数据
- 使用 Cast 执行常见的 EVM 操作
- 管理、部署和执行 Solidity 代码和脚本
- 使用持久的 Forge 工作区
功能
网络交互
- 启动和管理本地 Anvil 实例
- 连接到任何远程网络(只需指定 RPC)
- 获取网络/链信息
合约交互
- 调用合约函数(只读)
- 向合约发送交易(如果配置了
PRIVATE_KEY
) - 获取交易回执
- 读取合约存储
- 分析交易轨迹
- 从区块浏览器检索合约 ABI 和源代码
Solidity 开发
- 维护专用的 Forge 工作区
- 创建和编辑 Solidity 文件
- 安装依赖项
- 运行 Forge 脚本
- 部署合约
实用函数
- 计算合约地址
- 检查合约字节码大小
- 估计 gas 成本
- 在单位之间转换(十六进制到十进制等)
- 生成钱包
- 获取事件日志
- 查找函数和事件签名
智能合约分析 (Heimdall)
- 将 EVM 字节码反汇编为人类可读的操作码
- 解码原始 calldata,无需 ABI
- 将 EVM 字节码反编译为 Solidity 源代码和 ABI
- 为 EVM 字节码生成可视化控制流图
- 详细的交易检查,包括 calldata 解码和轨迹分析
用法
该服务器旨在用作 MCP 客户端的 MCP 工具提供程序。 当连接到客户端时,它使客户端(claude desktop, cursor, client 等)能够直接执行 Solidity 和链上操作。
要求
- Node.js v18+
- Foundry 工具链 (Forge, Cast, Anvil)
- Heimdall-rs (用于智能合约分析)
手动设置
- 确保 Foundry 工具(Forge、Cast、Anvil)已安装在你的系统上:
curl -L https://foundry.paradigm.xyz | bash foundryup
- 克隆并构建服务器。
bun i && bun build ./src/index.ts --outdir ./dist --target node
- 更新你的客户端配置(例如:Claude desktop):
"mcpServers": {
"foundry": {
"command": "node",
"args": [
"path/to/foundry-mcp-server/dist/index.js"
],
"env" :{
"PRIVATE_KEY": "0x1234",
}
}
}
[!NOTE]
PRIVATE_KEY
是可选的
使用 NPM 包进行设置
- 即将推出
配置
服务器支持以下环境变量:
RPC_URL
: 未指定时的默认 RPC URL(可选)PRIVATE_KEY
: 用于交易的私钥(可选)
[!CAUTION] 不要添加包含主网资金的密钥。 即使代码安全地使用它,LLM 也会产生幻觉并发送恶意交易。 仅将其用于测试/开发目的。 不要信任 LLM!!
工作区
服务器在 ~/.mcp-foundry-workspace
维护一个持久的 Forge 工作区,用于所有 Solidity 文件、脚本和依赖项。
工具
Anvil
anvil_start
: 启动一个新的 Anvil 实例anvil_stop
: 停止正在运行的 Anvil 实例anvil_status
: 检查 Anvil 是否正在运行并获取其状态
Cast
cast_call
: 调用合约函数(只读)cast_send
: 向合约函数发送交易cast_balance
: 检查地址的 ETH 余额cast_receipt
: 获取交易回执cast_storage
: 在特定插槽读取合约存储cast_run
: 在本地环境中运行已发布的交易cast_logs
: 通过签名或主题获取日志cast_sig
: 获取函数或事件签名的选择器cast_4byte
: 从 4byte 目录查找函数或事件签名cast_chain
: 获取有关当前链的信息
Forge
forge_script
: 从工作区运行 Forge 脚本install_dependency
: 为 Forge 工作区安装依赖项
文件管理
create_solidity_file
: 在工作区中创建或更新 Solidity 文件read_file
: 从工作区读取文件的内容list_files
: 列出工作区中的文件
实用工具
convert_eth_units
: 在 EVM 单位之间转换(wei、gwei、hex)compute_address
: 计算将要部署的合约的地址contract_size
: 获取已部署合约的字节码大小estimate_gas
: 估计交易的 gas 成本
Heimdall 分析
heimdall_disassemble
: 将 EVM 字节码反汇编为人类可读的操作码heimdall_decode
: 解码原始 calldata,无需 ABIheimdall_decompile
: 将 EVM 字节码反编译为 Solidity 源代码和 ABIheimdall_cfg
: 为 EVM 字节码生成可视化控制流图heimdall_inspect
: 以太坊交易的详细检查
在 Claude Desktop App 中的用法
安装完成后,并配置好 Claude 桌面应用程序后,你必须完全关闭并重新打开 Claude 桌面应用程序才能看到 tavily-mcp 服务器。 你应该在应用程序的左下角看到一个锤子图标,指示可用的 MCP 工具,你可以单击锤子图标以查看有关可用工具的更多详细信息。
现在 claude 将完全访问 foundry-mcp 服务器。 如果你将以下示例插入 Claude 桌面应用程序中,你应该会看到 foundry-mcp 服务器工具在运行。
示例
-
交易分析:
你能分析一下这笔交易并解释它的作用吗? https://etherscan.io/tx/0xcb73ad3116f19358e2e649d4dc801b7ae0590a47b8bb2e57a8e98b6daa5fb14b
-
查询余额:
查询钱包 0x195F46025a6926968a1b3275822096eB12D97E70 的主网 ETH 和 USDT 余额。
-
发送交易:
在主网上将 0.5 USDC 转移到 0x195F46025a6926968a1b3275822096eB12D97E70。
-
部署合约/运行脚本:
将一个 mock ERC20 合约部署到本地 anvil 实例,并命名为 "Fire Coin"。
致谢
- 模型上下文协议,用于 MCP 规范
- Anthropic,用于 Claude Desktop
免责声明
该软件按原样提供。 不对软件的安全性或正确性做出任何明示或暗示的保证、陈述或担保。 它们未经审计,因此不能保证它们会按预期工作,并且用户可能会遇到延迟、故障、错误、遗漏、传输信息丢失或资金丢失。 创建者不对上述任何情况负责。 用户应谨慎行事并自行承担风险使用。
- 原文链接: github.com/PraneshASP/fo...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
版权声明
本文仅代表作者观点,不代表区块链技术网立场。
本文系作者授权本站发表,未经许可,不得转载。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。