Balances and contract calls need no credentials at all, so the read-only setup is the one to start from. `PRIVATE_KEY` is marked optional for a reason: supplying it gives whatever is driving the server the ability to transfer tokens. If you do supply one, make it a wallet whose entire balance you would accept losing to a bad prompt.
A Web3 server for EVM-compatible chains. It reads token balances, calls smart-contract functions, and — when a private key is configured — transfers native tokens and ERC-20s.
- Token balances fetched across multiple chains
- Smart-contract function calls
- Native and ERC-20 token transfers
- Support for multiple EVM-compatible chains from the same server
The npm package web3-mcp-server, version 0.2.0, run as `npx -y web3-mcp-server`, with a Docker image as an alternative and an automated Smithery install. `PRIVATE_KEY` is optional — leave it unset and the server reads; set it and it can move funds.
One command plus a key — npx -y @smithery/cli install web3-mcp-server --client claude, then supply credentials
