返回市场
锻造厂-MCP-资源服务器

锻造厂-MCP-资源服务器

作者:0xClandestine3 星标更新:2025-11-07

项目介绍

Foundry MCP 服务器

一个模型上下文协议(MCP)服务器,通过统一接口提供对所有 Foundry 命令行工具(forge、cast、anvil、chisel)的访问,以及区块链 RPC 发现和代币信息。

功能

  • 🛠️ 全面支持:完全访问所有 Foundry 命令、区块链 RPC 发现、代币信息、会话管理和统一转换工具——所有功能都在一个地方
  • 🚀 快速:最小的开销,调用原生 Foundry 二进制文件
  • 📋 完整的模式支持:处理位置参数、选项和标志
  • 🔌 MCP 协议:基于标准 stdio 的 MCP 服务器实现
  • 🎯 会话管理:作为后台进程启动/停止 Anvil 节点和 Chisel REPL 会话
  • 🌐 RPC 发现:查询来自 chainlist.org 的 2400 多个区块链网络及其 RPC 端点
  • 🔍 链搜索:按名称、符号或链 ID 查找网络
  • 📊 网络信息:访问水龙头、区块浏览器和网络元数据
  • 🪙 代币信息:在以太坊和 L2 链上搜索和发现 ERC20 代币
  • 🔎 代币搜索:按名称、符号或合约地址查找代币
  • 🌉 桥接信息:访问跨链代币桥接信息
  • 🔄 统一转换:用于所有 cast 转换操作(十六进制、十进制、基本单位、ETH 单位、文本编码、RLP 等)的单一工具
  • 🔒 安全性:配置禁止命令和标志以防止危险操作

可用工具

Foundry 工具

  • forge:构建、测试、脚本、验证、覆盖率、快照、初始化、配置等
  • cast:调用、发送、收据、钱包、存储、解码、区块、交易等
  • anvil:本地以太坊开发节点(交互式阻塞,使用下面的会话工具)
  • chisel(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 - 检查 Chisel 是否正在运行

区块链 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 - 列出代币列表支持的所有区块链网络

支持的链:

  • 以太坊、Optimism、Base、Sepolia(测试网)
  • Optimism Sepolia、Base Sepolia(测试网)
  • Mode、Lisk、Redstone、Metal L2、Celo
  • 更多 L2 网络

安装

先决条件

必须安装 Foundry 并将其添加到 PATH 中:

curl -L https://foundry.paradigm.xyz | bash
foundryup

构建

cargo build --release

编译后的二进制文件位于 ./target/release/foundry-mcp-server

使用

运行服务器

服务器通过 stdin/stdout 使用 MCP 协议进行通信:

foundry-mcp

Claude Desktop 配置

添加到 ~/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 助手甚至看不到这些工具/标志——它们根本不会出现在可用工具列表中。这比运行时验证更安全,因为它遵循最小权限原则。

配置来源

服务器从以下位置加载配置:

  1. CLI 标志 --config path/to/config.json(显式路径)
  2. 默认位置~/.foundry-mcp-config.json
  3. 无限制 如果未找到配置

配置格式

{
  "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_commandsforbidden_flags 将与这些硬编码值合并,因此您可以添加额外的限制而无需重复默认值。

使用示例

使用默认安全限制运行

foundry-mcp

使用自定义配置运行

foundry-mcp --config /path/to/config.json

复制配置到默认位置(更新系统范围的默认设置):

cp config.safe.json ~/.foundry-mcp-config.json
foundry-mcp

显示帮助

foundry-mcp --help

工作原理

  1. schemas.json 加载 Foundry CLI 模式
  2. 通过 MCP 暴露 170 个 Foundry 工具 + 3 个 RPC 发现工具 + 4 个代币信息工具 + 7 个会话管理工具
  3. 调用原生 Foundry 二进制文件执行
  4. 管理会话的后台进程(Anvil 和 Chisel 会话)
  5. 从 chainlist.org 获取区块链 RPC 数据(缓存)
  6. 从 Optimism 代币列表获取代币信息(缓存)

架构

  • 无 Foundry 依赖:调用原生二进制文件(避免了 800 多个传递依赖项)
  • 模块化:干净的分离(foundry.rs、chainlist.rs、tokenlist.rs、server.rs)
  • 缓存数据:内存缓存用于 chainlist.org 和代币列表 API
  • MCP 资源
    • chainlist://all - 2400 多个区块链网络数据库
    • tokenlist://all - 跨以太坊和 L2 链的 ERC20 代币

许可证

MIT 或 Apache-2.0(与 Foundry 相同)

相关项目

  • Foundry - 快速、便携且模块化的以太坊开发工具包
  • MCP - 模型上下文协议规范
  • rmcp - MCP 官方 Rust SDK