npm package: @maliketh/foundry-mcp
Description: MCP server exposing Foundry (forge, cast, anvil) CLI tools to AI assistants
Author: jrigada
Latest version: 0.1.0

# foundry-mcp

[![npm version](https://img.shields.io/npm/v/@maliketh/foundry-mcp.svg)](https://www.npmjs.com/package/@maliketh/foundry-mcp)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

MCP server that exposes [Foundry](https://github.com/foundry-rs/foundry) (forge, cast, anvil) CLI tools to AI assistants via the [Model Context Protocol](https://modelcontextprotocol.io/).

## Prerequisites

- [Node.js](https://nodejs.org/) >= 18
- [Foundry](https://book.getfoundry.sh/getting-started/installation) installed and available in `PATH`

## Install

```bash
npm install -g @maliketh/foundry-mcp
```

Or run directly with `npx`:

```bash
npx @maliketh/foundry-mcp
```

## Usage

Add to your MCP client configuration:

```json
{
  "mcpServers": {
    "foundry": {
      "command": "npx",
      "args": ["foundry-mcp"]
    }
  }
}
```

The server communicates over stdio and exposes 39 tools across three categories.

## Tools

### Forge (17 tools)

| Tool | Description |
|------|-------------|
| `forge_init` | Scaffold a new Foundry project |
| `forge_build` | Compile contracts |
| `forge_test` | Run tests with filtering, verbosity, gas reporting |
| `forge_script` | Run Solidity scripts |
| `forge_create` | Deploy contracts |
| `forge_verify` | Verify contracts on block explorers |
| `forge_coverage` | Generate coverage reports |
| `forge_snapshot` | Create gas snapshots |
| `forge_fmt` | Format Solidity code |
| `forge_lint` | Lint Solidity code |
| `forge_clean` | Remove build artifacts |
| `forge_install` | Install dependencies |
| `forge_tree` | Show dependency tree |
| `forge_inspect` | Inspect contract artifacts (ABI, bytecode, storage layout, etc.) |
| `forge_selectors` | List function selectors |
| `forge_config` | Show project configuration |
| `forge_clone` | Clone a verified contract from a block explorer |

### Cast (21 tools)

| Tool | Description |
|------|-------------|
| `cast_call` | Call a contract function (read-only) |
| `cast_send` | Send a transaction |
| `cast_estimate` | Estimate gas for a transaction |
| `cast_balance` | Get ETH balance |
| `cast_nonce` | Get account nonce |
| `cast_block` | Get block information |
| `cast_tx` | Get transaction details |
| `cast_receipt` | Get transaction receipt |
| `cast_gas_price` | Get current gas price |
| `cast_code` | Get deployed bytecode |
| `cast_storage` | Read storage slots |
| `cast_logs` | Query event logs |
| `cast_abi_encode` | ABI-encode function arguments |
| `cast_abi_decode` | ABI-decode data |
| `cast_calldata_decode` | Decode calldata |
| `cast_convert` | Convert between formats (wei, hex, bytes32, base) |
| `cast_keccak` | Compute keccak256 hash |
| `cast_sig` | Get function selector |
| `cast_interface` | Generate Solidity interface from ABI |
| `cast_rpc` | Make raw JSON-RPC calls |
| `cast_wallet` | Generate, derive, and sign with wallets |

### Anvil (1 tool)

| Tool | Description |
|------|-------------|
| `anvil` | Start a local devnet or check its status |

## Development

```bash
git clone https://github.com/jrigada/foundry-mcp.git
cd foundry-mcp
npm install
npm run build
npm test          # runs 162 tests
```

## License

MIT