使用说明
Foundry MCP服务器
一种模型上下文协议(MCP)服务器,提供与Foundry、Anvil和Cast命令交互的工具。
VS代码设置
先决条件
-
安装Foundry:
curl -L https://foundry.paradigm.xyz | bash foundryup -
安装Node.js (版本18或更高)
-
确保GitHub Copilot已设置 启用MCP支持的VS代码
有关VS Code中MCP服务器设置的详细信息,请参阅 官方VS Code MCP文档.
本地设置
-
克隆并构建MCP服务器:
git clone <your-repo-url> cd foundry-mcp-server npm install npm run build -
配置VS代码设置:
打开VS代码设置(命令面板→ “首选项:打开用户设置(JSON)”)并添加MCP服务器配置:
{ "github.copilot.chat.mcp.servers": { "foundry": { "command": "node", "args": ["/absolute/path/to/foundry-mcp-server/dist/server.js"], "env": { "FOUNDRY_PRIVATE_KEY": "0x_your_private_key_here_optional", "PROJECT_ROOT": "/path/to/your/foundry/project" } } } }重要:替换
/absolute/path/to/foundry-mcp-server带有克隆此存储库的实际绝对路径。 -
重新启动VS代码 加载MCP服务器
-
验证设置:
- 在VS代码中打开GitHub Copilot聊天
- 您应该看到Foundry MCP服务器被列为已连接
- 尝试使用以下工具
foundry_project_info测试连接
使用npm链接的替代设置
如果您希望全局安装:
cd foundry-mcp-server
npm run build
npm link
然后在VS Code设置中,使用:
{
"github.copilot.chat.mcp.servers": {
"foundry": {
"command": "foundry-mcp-server",
"env": {
"FOUNDRY_PRIVATE_KEY": "0x_your_private_key_here_optional",
"PROJECT_ROOT": "/path/to/your/foundry/project"
}
}
}
}
开发设置
对于开发和测试:
-
以开发模式运行:
npm run dev -
注意变化 (如果修改代码):
npm run build # Restart VS Code to reload the MCP server
环境变量
FOUNDRY_私人密钥
设置此环境变量,为需要事务签名的Cast操作提供默认私钥:
export FOUNDRY_PRIVATE_KEY="0x your_private_key_here"
设置此环境变量时:
cast_send如果没有明确指示,操作将自动使用此键privateKey参数已提供- 您可以使用
cast_wallet_info工具
PROJECT_ROOT
覆盖默认项目根目录:
export PROJECT_ROOT="/path/to/your/foundry/project"
如果未设置,则默认为当前工作目录。
工具
锻造工具
forge_build-编制合同forge_test-运行测试forge_gas_report-生成详细的天然气使用报告,包括最低/平均/中位数/最高成本forge_gas_snapshot-创建、比较和管理用于回归测试的气体快照forge_gas_optimize-分析气体模式并提供优化建议
铁砧工具
anvil_start-启动本地区块链anvil_stop-停止本地区块链anvil_status-检查Anvil是否正在运行
铸造工具
cast_call-调用只读合约函数cast_send-发送交易(如果没有提供密钥,则使用FOUNDRY_PRIVATE_KEY)cast_estimate_gas-估算交易天然气cast_balance-获取地址余额cast_wallet_info-获取已配置私钥的钱包信息
项目工具
foundry_project_info-获取项目目录结构
模板工具
generate_contract_prompt-根据Foundry最佳实践为AI工具生成结构化提示foundry_project_template-使用配置生成完整的Foundry项目结构
气体分析工具
gas_profile_function-具有针对性分析的特定功能气体使用情况gas_compare_implementations-比较不同实施方式之间的天然气成本gas_regression_test-根据基线监测天然气使用回归gas_optimization_suggestions-获取具体的优化建议
用AI创建智能合约
此MCP服务器包括使用ChatGPT或Claude等人工智能工具生成智能合约的专用工具,遵循Foundry的官方提示指南。
工作流程:
-
生成结构化提示:
Use the generate_contract_prompt tool with your requirements: - Requirements: "Create an ERC20 token with minting and burning capabilities" - Contract type: "token" - Include comprehensive tests and deployment scripts -
复制生成的提示 到您选择的AI工具(ChatGPT、Claude等)
-
获取AI生成的代码 遵循Foundry最佳实践,包括:
- 适当的项目结构
- 综合测试(单元、模糊、不变)
- 安全最佳实践
- 带验证的部署脚本
- NatSpec文件
-
生成项目结构 使用
foundry_project_template获取完整的样板
支持的合同类型:
- 代币:具有高级功能的ERC20实现
- 金库:符合ERC4626标准的保险库,具有收益机制
- 德菲:DEX、借贷和其他DeFi协议
- 非同质化代币:ERC721/ERC1155实施
- 治理:表决和提案机制
- 代理:可升级的合同模式
- 自定义:任何其他合同类型
气体优化工作流程
此MCP服务器基于Foundry的气体跟踪功能提供全面的气体分析和优化工具。
气体分析管道:
-
生成基线报告:
Use forge_gas_report to get detailed function-level gas usage Use forge_gas_snapshot with action="create" to establish baselines -
配置文件特定功能:
Use gas_profile_function for targeted analysis of expensive functions Compare different implementation approaches with gas_compare_implementations -
监控回归:
Use gas_regression_test to detect gas increases during development Set up automated testing with configurable thresholds -
获取优化指导:
Use gas_optimization_suggestions for targeted improvement recommendations Focus on specific areas: deployment, functions, loops, storage, external_calls
支持的优化策略:
- 功能级别分析:每个功能的最小/平均/中值/最大天然气成本
- 快照比较:跟踪天然气使用量随时间的变化
- 实施测试:A/B测试不同的编码方法
- 回归检测:具有可配置阈值的自动监控
- 有针对性的建议:专注于部署、循环、存储或外部调用
气体优化工作流程示例:
# 1. Establish baseline
forge_gas_snapshot action="create" snapshotFile=".gas-baseline"
# 2. Get detailed function analysis
forge_gas_report matchContract="MyContract"
# 3. Profile expensive functions
gas_profile_function contractName="MyContract" functionName="expensiveFunction"
# 4. Test optimization
# ... make code changes ...
# 5. Check for regressions
gas_regression_test baselineSnapshot=".gas-baseline" threshold=5
# 6. Compare implementations
gas_compare_implementations implementationTests=["testOriginal", "testOptimized"]
安全
⚠️ 重要:永远不要将私钥提交给版本控制。始终使用环境变量或安全密钥管理解决方案。
故障排除
常见问题
-
MCP服务器未连接:
- 确保VS代码设置中的路径是绝对正确的
- 检查构建是否成功(
npm run build) - 配置更改后重新启动VS代码
-
Foundry命令不起作用:
- 验证Foundry是否已安装:
forge --version - 确保您位于Foundry项目目录或集合中
PROJECT_ROOT
- 验证Foundry是否已安装:
-
私钥不起作用:
- 确保私钥格式正确(以开头
0x) - 测试用
cast_wallet_info验证密钥是否有效
- 确保私钥格式正确(以开头
-
权限被拒绝错误:
- 确保MCP服务器脚本可执行
- 检查存储库目录上的文件权限
调试模式
要查看详细的日志,您可以直接运行MCP服务器:
cd foundry-mcp-server
node dist/server.js
这将显示任何启动错误或连接问题。
