Foundry MCP服务器
一个模型上下文协议(MCP)服务器,通过统一的接口提供对所有Foundry CLI工具(锻造、铸造、砧座、凿子)的访问,以及区块链RPC发现和令牌信息。
特性
- 🛠️ 综合支持:完全访问所有Foundry命令、区块链RPC发现、令牌信息、会话管理和统一的转换工具——所有这些都在一个地方
- 🚀 快速:开销最小,外壳为原生Foundry二进制文件
- 📋 完全架构支持:处理位置、选项和标志
- 🔌 MCP协议:基于标准stdio的MCP服务器实现
- 🎯 会话管理:启动/停止Anvil节点和Chisel REPL会话作为后台进程
- 🌐 RPC发现:从chainlist.org查询2400多个区块链网络及其RPC端点
- 🔍 连锁搜索:按名称、符号或链ID查找网络
- 📊 网络信息:访问水龙头、浏览器和网络元数据
- 🪙 令牌信息:在以太坊和L2链上搜索和发现ERC20代币
- 🔎 代币搜索:按名称、符号或合约地址查找令牌
- 🌉 桥梁信息:访问跨链令牌桥信息
- 🔄 统一转换:用于所有转换操作(十六进制、十进制、基数、ETH单位、文本编码、RLP等)的单一工具
- 🔒 安全:可配置的禁止命令和标志,以防止危险操作
可用工具
铸造工具
- 锻造:构建、测试、脚本、验证、覆盖率、快照、初始化、配置等。
- 投射:呼叫、发送、接收、钱包、存储、解码、阻止、交易等。
- 铁砧:本地以太坊开发节点 _(交互式被阻止,请使用下面的会话工具)_
- 凿子 (6) :Solidity REPL _(交互式被阻止,请使用下面的会话工具)_
会话管理工具(7)
Anvil会话管理 -控制后台Anvil实例:
anvil_session_start-将Anvil作为后台进程启动(分叉、自定义端口、帐户、阻塞时间)anvil_session_stop-停止正在运行的Anvil实例anvil_session_status-检查Anvil是否正在运行并获取连接详细信息
Chisel会话管理 -带有状态的持久REPL:
chisel_session_start-开始Chisel REPL会话chisel_session_eval-执行Solidity代码(状态在调用之间持续存在!)chisel_session_stop-停止Chisel会话chisel_session_status-检查凿子是否正在运行
区块链RPC工具(3)
search_rpc_url -搜索任何具有过滤功能的链的RPC端点(开源、无跟踪、websocket/http、限制)\ search_chains -按名称、符号或链ID搜索网络\ list_popular_chains -快速访问流行网络(以太坊、Polygon、Arbitrum等)
代币信息工具(4)
search_tokens -在所有支持的链中按名称或符号搜索令牌\ get_token_by_address -按合约地址获取代币信息\ list_chain_tokens -列出特定区块链网络上可用的所有代币\ list_supported_chains -列出令牌列表支持的所有区块链网络
支持的链条:
- 以太坊、乐观主义、Base、Sepolia(测试网)
- 乐观的Sepolia,基础Sepolia(测试网)
- Mode、Lisk、红石、Metal L2、Celo
- 更多的L2网络
安装
先决条件
Foundry必须在PATH中安装并可用:
curl -L https://foundry.paradigm.xyz | bash
foundryup构建
cargo build --release编译后的二进制文件将位于 ./target/release/foundry-mcp-server
用法
运行服务器
服务器使用MCP协议通过stdin/stdout进行通信:
foundry-mcpClaude桌面配置
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
无配置(无限制):
{
"mcpServers": {
"foundry": {
"command": "/path/to/foundry-mcp-rs/target/release/foundry-mcp"
}
}
}具有自定义配置:
{
"mcpServers": {
"foundry": {
"command": "/path/to/foundry-mcp-rs/target/release/foundry-mcp",
"args": ["--config", "/path/to/your/config.json"]
}
}
}配置
服务器支持可配置的安全限制,以防止危险操作。当通过AI助手公开Foundry工具时,这一点尤为重要。
运作原理:在初始化过程中,禁止的命令和标志会从工具架构中过滤出来。这意味着AI助手甚至看不到这些工具/标志——它们根本不会出现在可用工具列表中。这比运行时验证更安全,因为它遵循最小特权原则。
配置源
服务器从以下位置加载配置:
- CLI标志
--config path/to/config.json(显式路径) - 默认位置 在
~/.foundry-mcp-config.json - 无限制 如果找不到配置
配置格式
{
"forbidden_commands": ["anvil", "forge_script"],
"forbidden_flags": ["broadcast", "private-key", "mnemonic"],
"allow_dangerous": false
}配置选项
forbidden_commands:要阻止的命令名称数组(例如。,"anvil","forge_script","cast_send")forbidden_flags:要阻止的标志名称数组(例如。,"broadcast","private-key","mnemonic")allow_dangerous:布尔值,用于控制硬编码的危险限制
- false (默认):自动将硬编码的危险命令/标志添加到禁止列表中 - true:仅使用您明确配置的禁止列表
硬编码危险限制
当 allow_dangerous: false (默认设置),以下硬编码限制是 自动地 与您的配置合并:
危险命令:
anvil-本地以太坊节点
危险标志:
broadcast-将交易发送到网络private-key-直接使用私钥mnemonic-直接使用助记符短语legacy-传统交易类型unlock-解锁帐户
注: 您的定制 forbidden_commands 和 forbidden_flags 与这些硬编码值合并,因此您可以添加额外的限制,而无需重复默认值。
用法示例
在默认安全限制下运行:
foundry-mcp使用自定义配置运行:
foundry-mcp --config /path/to/config.json将配置复制到默认位置 (更新系统默认值):
cp config.safe.json ~/.foundry-mcp-config.json
foundry-mcp显示帮助:
foundry-mcp --help运作原理
- 从以下位置加载Foundry CLI模式
schemas.json - 通过MCP公开170个Foundry工具+3个RPC发现工具+4个令牌信息工具+7个会话管理工具
- 将shell输出到本机Foundry二进制文件以供执行
- 管理Anvil和Chisel会话的后台流程
- 从chainlist.org获取区块链RPC数据(缓存)
- 从乐观令牌列表(缓存)中获取令牌信息
建筑
- 无铸造车间:外壳为本机二进制文件(避免800多个可传递的deps)
- 模块化:干净的分隔(foundry.rs、chainlist.rs、tokenlist.rs和server.rs)
- 缓存数据:用于chainlist.org和令牌列表API的内存缓存
- MCP资源:
- chainlist://all -2400+区块链网络数据库 - tokenlist://all -以太坊和L2链上的ERC20代币
许可证
麻省理工学院或Apache-2.0(与Foundry相同)
