The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Foundry Zksync listing page.
An MCP (Model Context Protocol) server that exposes foundry-zksync CLI tools to AI assistants like Claude.
| Tool | Description |
|---|---|
init | forge init with automatic zkSync config |
compile | forge build --zksync |
test | forge test --zksync with filter/verbosity options |
run_script | forge script --zksync with broadcast, sender, slow mode |
deploy | forge create --zksync with structured output parsing |
verify | forge verify-contract --zksync (Etherscan & zkSync Explorer) |
install | forge install for dependency management |
clean | forge clean to remove build artifacts |
gas_report | forge test --gas-report for gas usage analysis |
snapshot | forge snapshot for gas benchmarking |
read_foundry_toml | Read and inspect project configuration |
explain | Match errors/logs against a knowledge base of zkSync gotchas |
cast_abi_encode | cast abi-encode |
cast_abi_decode | cast abi-decode |
cast_calldata_decode | cast calldata-decode |
cast_call | cast call for read-only contract interaction |
cast_send | cast send for state-changing transactions |
cast_balance | cast balance for ETH balance queries |
cast_nonce | cast nonce for transaction nonce queries |
get_zksync_docs | Look up foundry-zksync documentation by topic |
anvil_zksync | Start or check a local anvil-zksync dev node |
foundryup-zksync)No install needed — run directly with npx:
Or add to claude_desktop_config.json / ~/.claude.json:
Then register with Claude Code:
All signing tools (deploy, cast_send, run_script) support multiple wallet methods. Choose based on your security needs:
For local dev with well-known test keys, use privateKey directly:
These are the default anvil-zksync test accounts — they hold no real value.
Warning: Never use
privateKeywith keys that hold real funds. MCP tool parameters are visible to the AI assistant and may be logged.
Keys are encrypted on disk — only the account name travels through MCP.
Then use account: "deployer" in any signing tool. Forge will prompt for the password at runtime, or you can point to a password file with passwordFile.
If you have an existing encrypted keystore JSON file (e.g. from Geth, MetaMask export):
| Method | Key Exposure | Best For |
|---|---|---|
| Hardware wallet | None (key never leaves device) | High-value production |
| Cloud KMS | None (key in HSM) | Automated production |
Named keystore (account) | None through MCP (encrypted on disk) | General production use |
| Keystore file | None through MCP (encrypted on disk) | Existing workflows |
privateKey | Visible to AI assistant | Local dev with test keys only |