Skip to main content
Glama
PraneshASP

Foundry MCP Server

by PraneshASP
index.ts3.03 kB
#!/usr/bin/env node import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import * as dotenv from "dotenv" import { checkFoundryInstalled } from "./utils/command.js"; import { registerAllCastTools } from "./tools/cast/index.js"; import { registerAllAnvilTools } from "./tools/anvil/index.js"; import { registerForgeScriptTool } from "./tools/forge/script.js"; import { registerConvertEthUnitsTool } from "./tools/utils/convert.js"; import { registerCreateSolidityFileTool } from "./tools/files/create.js"; import { registerAllHeimdallTools } from "./tools/heimdall/index.js"; import { registerAllResources } from "./resources/index.js"; dotenv.config(); const server = new McpServer({ name: "Foundry MCP Server", version: "0.1.0" }, { instructions: ` Foundry MCP Server - Comprehensive EVM-compatible blockchains (Ethereum, Optimism, etc.,) development toolkit integration Core Tools Available: Cast: EVM RPC client for blockchain interaction (calls, transactions, balances, receipts, chain info) Anvil: Local reth test node management (start/stop/status) Forge: Smart contract development framework (script execution, project management) Heimdall: Advanced EVM bytecode analysis toolkit (disassemble, decode, decompile, CFG, dump, inspect) File Management: Solidity file creation and workspace operations Utilities: Unit conversion, address computation, contract analysis Workspace: Persistent development environment at ~/.mcp-foundry-workspace Networks: Supports local (Anvil) and remote EVM chains with automatic RPC resolution Security: Optional private key integration for transaction signing (development use) Quick Start 1. Ensure Foundry is installed (~/.foundry/bin/) 2. Install Heimdall for bytecode analysis: curl -L http://get.heimdall.rs | bash && bifrost 3. Set RPC_URL and PRIVATE_KEY environment variables (optional) 4. Use tools to deploy, test, and interact with smart contracts Resources - anvil://status - Live Anvil node status and configuration - contract://{address}/source - Contract source code from Etherscan ` }); // Register all resources registerAllResources(server); // Register all cast tools registerAllCastTools(server); // Register anvil tools registerAllAnvilTools(server); // Register forge tools registerForgeScriptTool(server); // Register utility tools registerConvertEthUnitsTool(server); // Register file management tools registerCreateSolidityFileTool(server); // Register Heimdall tools registerAllHeimdallTools(server); async function startServer() { const foundryInstalled = await checkFoundryInstalled(); if (!foundryInstalled) { console.error("Error: Foundry is not installed"); process.exit(1); } const transport = new StdioServerTransport(); await server.connect(transport); console.error("Foundry MCP Server started on stdio"); } startServer().catch((error) => { console.error("Error starting server:", error); process.exit(1); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/PraneshASP/foundry-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server