Foundry MCP Server

Um servidor MCP leve para desenvolvimento Solidity usando o toolchain Foundry (Forge, Cast e Anvil).

Documentação

Foundry MCP Server

Um servidor MCP (Model Context Protocol) simples, leve e rápido que fornece capacidades de desenvolvimento Solidity usando o conjunto de ferramentas Foundry (Forge, Cast e Anvil).

Foundry MCP Demo

Visão Geral

Este servidor conecta assistentes de LLM ao ecossistema Foundry, permitindo que eles:

  • Interajam com nós (instâncias locais do Anvil ou endpoints RPC remotos)
  • Analisem contratos inteligentes e dados de blockchain
  • Realizem operações EVM comuns usando Cast
  • Gerenciem, implantem e executem código e scripts Solidity
  • Trabalhem com um workspace Forge persistente

Recursos

Interação com Rede

  • Iniciar e gerenciar instâncias locais do Anvil
  • Conectar-se a qualquer rede remota (basta especificar o RPC)
  • Obter informações de rede/cadeia

Interação com Contratos

  • Chamar funções de contratos (somente leitura)
  • Enviar transações para contratos (se PRIVATE_KEY estiver configurado)
  • Obter recibos de transações
  • Ler armazenamento de contratos
  • Analisar rastreamentos de transações
  • Recuperar ABIs e fontes de contratos de exploradores de blocos

Desenvolvimento Solidity

  • Manter um workspace Forge dedicado
  • Criar e editar arquivos Solidity
  • Instalar dependências
  • Executar scripts Forge
  • Implantar contratos

Funções Utilitárias

  • Calcular endereços de contratos
  • Verificar tamanho do bytecode de contratos
  • Estimar custos de gás
  • Converter entre unidades (hex para decimais, etc.)
  • Gerar carteiras
  • Obter logs de eventos
  • Consultar assinaturas de funções e eventos

Análise de Contratos Inteligentes (Heimdall)

  • Desmontar bytecode EVM em opcodes legíveis
  • Decodificar calldata bruto sem exigir ABI
  • Descompilar bytecode EVM para código-fonte Solidity e ABI
  • Gerar gráficos visuais de fluxo de controle para bytecode EVM
  • Inspeção detalhada de transações com decodificação de calldata e análise de rastreamento

Uso

O servidor foi projetado para ser usado como um provedor de ferramentas MCP para Clientes MCP. Quando conectado a um cliente, ele permite que os clientes (claude desktop, cursor, client, etc.) realizem operações Solidity e onchain diretamente.

Requisitos

Configuração Manual

  1. Garanta que as ferramentas Foundry (Forge, Cast, Anvil) estejam instaladas no seu sistema:

    curl -L https://foundry.paradigm.xyz | bash
    foundryup
    
  2. Clone e construa o servidor.

    bun i && bun build ./src/index.ts --outdir ./dist --target node
    
    
  3. Update your client config (eg: Claude desktop):

 "mcpServers": {
    "foundry": {
      "command": "node",
      "args": [
        "path/to/foundry-mcp-server/dist/index.js"
      ],
      "env" :{
        "PRIVATE_KEY": "0x1234",
      }
    }
 }

[!NOTE] PRIVATE_KEY é opcional

Configuração usando Pacote NPM

Agora você pode instalar e executar o servidor diretamente usando npm:

Instalação Global

npm install -g @pranesh.asp/foundry-mcp-server

Uso Direto com npx

npx @pranesh.asp/foundry-mcp-server

Configuração do Cliente MCP

Claude Code

 claude mcp add-json foundry-mcp-server '{"type":"stdio","command":"npx","args":["@pranesh.asp/foundry-mcp-server"],"env":{"RPC_URL":"","PRIVATE_KEY":""}}'   

Outros Clientes MCP (Cursor, Claude, Windsurf)

Adicione às suas configurações MCP:

{
  "mcpServers": {
    "foundry": {
      "command": "npx",
      "args": ["@pranesh.asp/foundry-mcp-server"],
      "env": {
        "RPC_URL": "http://localhost:8545",
        "PRIVATE_KEY": "0x..."
      }
    }
  }
}

Configuração

O servidor suporta as seguintes variáveis de ambiente:

  • RPC_URL: URL RPC padrão a ser usada quando nenhuma for especificada (opcional)
  • PRIVATE_KEY: Chave privada a ser usada para transações (opcional)

[!CAUTION] Não adicione chaves com fundos da mainnet. Mesmo que o código use isso com segurança, LLMs podem alucinar e enviar transações maliciosas. Use apenas para fins de teste/desenvolvimento. NÃO confie no LLM!!

[!TIP] Recebendo erros de Invalid configuration? Verifique sua sintaxe JSON—problemas comuns incluem aspas duplas (""KEY""KEY"), vírgulas finais ou chaves sem aspas. Valide com echo '...' | jq .

Workspace

O servidor mantém um workspace Forge persistente em ~/.mcp-foundry-workspace para todos os arquivos Solidity, scripts e dependências.

Ferramentas

Anvil

  • anvil_start: Iniciar uma nova instância do Anvil
  • anvil_stop: Parar uma instância do Anvil em execução
  • anvil_status: Verificar se o Anvil está em execução e obter seu status

Cast

  • cast_call: Chamar uma função de contrato (somente leitura)
  • cast_send: Enviar uma transação para uma função de contrato
  • cast_balance: Verificar o saldo de ETH de um endereço
  • cast_receipt: Obter o recibo da transação
  • cast_storage: Ler armazenamento de contrato em um slot específico
  • cast_run: Executar uma transação publicada em um ambiente local
  • cast_logs: Obter logs por assinatura ou tópico
  • cast_sig: Obter o seletor para uma assinatura de função ou evento
  • cast_4byte: Consultar assinatura de função ou evento do diretório 4byte
  • cast_chain: Obter informações sobre a cadeia atual

Forge

  • forge_script: Executar um script Forge do workspace
  • install_dependency: Instalar uma dependência para o workspace Forge

Gerenciamento de Arquivos

  • create_solidity_file: Criar ou atualizar um arquivo Solidity no workspace
  • read_file: Ler o conteúdo de um arquivo do workspace
  • list_files: Listar arquivos no workspace

Utilitários

  • convert_eth_units: Converter entre unidades EVM (wei, gwei, hex)
  • compute_address: Calcular o endereço de um contrato que seria implantado
  • contract_size: Obter o tamanho do bytecode de um contrato implantado
  • estimate_gas: Estimar o custo de gás de uma transação

Análise Heimdall

  • heimdall_disassemble: Desmontar bytecode EVM em opcodes legíveis
  • heimdall_decode: Decodificar calldata bruto sem exigir ABI
  • heimdall_decompile: Descompilar bytecode EVM para código-fonte Solidity e ABI
  • heimdall_cfg: Gerar gráfico visual de fluxo de controle para bytecode EVM
  • heimdall_inspect: Inspeção detalhada de transações Ethereum

Uso no Aplicativo Claude Desktop 🎯

Após a instalação estar completa e o aplicativo desktop Claude estar configurado, você deve fechar e reabrir completamente o aplicativo desktop Claude para ver o servidor tavily-mcp. Você deve ver um ícone de martelo no canto inferior esquerdo do aplicativo, indicando ferramentas MCP disponíveis. Você pode clicar no ícone de martelo para ver mais detalhes sobre as ferramentas disponíveis.

Alt text

Agora o Claude terá acesso completo ao servidor foundry-mcp. Se você inserir os exemplos abaixo no aplicativo desktop Claude, deverá ver as ferramentas do servidor foundry-mcp em ação.

Exemplos

  1. Análise de transação:
Can you analyze the transaction and explain what it does? 
https://etherscan.io/tx/0xcb73ad3116f19358e2e649d4dc801b7ae0590a47b8bb2e57a8e98b6daa5fb14b
  1. Consultando Saldos:
Query the mainnet ETH and USDT balances for the wallet 0x195F46025a6926968a1b3275822096eB12D97E70.
  1. Enviando transações:
Transfer 0.5 USDC to 0x195F46025a6926968a1b3275822096eB12D97E70 on Mainnet. 
  1. Implantando contratos/Executando scripts:
Deploy a mock ERC20 contract to a local anvil instance and name it "Fire Coin".

Agradecimentos ✨

Aviso Legal

O software é fornecido como está. Nenhuma garantia, representação ou garantia é feita, expressa ou implícita, quanto à segurança ou correção do software. Eles não foram auditados e, portanto, não há garantia de que funcionarão como pretendido, e os usuários podem experimentar atrasos, falhas, erros, omissões, perda de informações transmitidas ou perda de fundos. Os criadores não são responsáveis por qualquer um dos itens acima. Os usuários devem proceder com cautela e usar por sua conta e risco.