Contract Inspector

Recupere informações on-chain de contratos EVM localmente usando um nó RPC Ethereum e a API do Etherscan.

Documentação

Serviço MCP Contract Inspector

Ferramenta local de obtenção de informações de contratos Ethereum baseada no protocolo MCP, com suporte para uso em ferramentas de IA como o Cursor. Utiliza uv como ferramenta moderna de gerenciamento de projetos Python.

Nota importante: Este é um serviço MCP local. O Cursor gerencia automaticamente a inicialização e a parada do serviço, não sendo necessário iniciar o servidor manualmente.

Recursos

  • 🔍 Obter informações on-chain de contratos EVM
  • 📊 Chamar todas as funções view sem parâmetros
  • 🌐 Integrar dados do Etherscan e RPC
  • ⚡ Processamento concorrente, otimização de desempenho
  • 📋 Saída em formato JSON padrão

Requisitos de ambiente

  • Python 3.10+
  • Gerenciador de pacotes uv

Início rápido

1. Instalar uv (se ainda não estiver instalado)

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# 或使用 pip
pip install uv

2. Configurar o projeto

# 克隆/进入项目目录
cd ContractInfoMCP

# 创建虚拟环境并安装所有依赖(一键搞定)
uv sync

3. Configurar o ambiente

# 复制环境变量模板
cp env.example .env

# 编辑 .env 文件,填入您的 API keys
# 需要配置:
# - RPC_URL:您的以太坊 RPC 节点地址(如 Infura、Alchemy 等)
# - ETHERSCAN_API_KEY:您的 Etherscan API 密钥

4. Concluir a configuração

Após a configuração, basta adicionar a configuração MCP no Cursor. Não é necessário iniciar nenhum servidor manualmente; o Cursor gerencia automaticamente o ciclo de vida do serviço MCP local.

Configuração no Cursor

Adicione a seguinte configuração nas configurações MCP do Cursor. O Cursor iniciará e gerenciará automaticamente o serviço MCP com base nesta configuração.

Substitua <project_path> pelo caminho absoluto real do seu projeto:

Usuários macOS/Linux:

{
  "mcpServers": {
    "contract-inspector": {
      "command": "<project_path>/.venv/bin/python",
      "args": ["-m", "contract_inspector.main"],
      "cwd": "<project_path>"
    }
  }
}

Usuários Windows:

{
  "mcpServers": {
    "contract-inspector": {
      "command": "<project_path>/.venv/Scripts/python.exe",
      "args": ["-m", "contract_inspector.main"],
      "cwd": "<project_path>"
    }
  }
}

Explicação da configuração de caminho

Substitua <project_path> pelo caminho absoluto real do seu projeto:

Obter caminho do projeto:

# 在项目目录中运行
pwd                # macOS/Linux
echo %cd%          # Windows CMD
echo $PWD          # Windows PowerShell

Exemplo de configuração:

  • macOS/Linux: /Users/username/Projects/ContractInfoMCP
  • Windows: C:\\Users\\username\\Projects\\ContractInfoMCP

Exemplo de uso

Após a configuração, quando você usar a ferramenta MCP pela primeira vez no Cursor, o Cursor iniciará automaticamente o serviço local. Você pode digitar diretamente no chat do Cursor:

查询 0xdac17f958d2ee523a2206206994597c13d831ec7 地址的基本信息

O Cursor chamará automaticamente a ferramenta MCP correspondente para processar sua solicitação.

Ferramentas MCP

ContractInfo

  • Função: Obter informações completas do contrato, chamar todas as funções view que não exigem parâmetros
  • Parâmetros: contract_address (endereço do contrato)
  • Saída: Informações do contrato e resultados de chamadas de função em formato JSON

ContractSummary

  • Função: Obter resumo básico do contrato, não chama funções
  • Parâmetros: contract_address (endereço do contrato)
  • Saída: Informações básicas do contrato

Estrutura do projeto

contract_inspector/
├── main.py              # MCP 服务器入口
├── contract_analyzer.py # 核心分析逻辑  
├── etherscan_client.py  # Etherscan API
├── web3_client.py       # Web3 RPC 客户端
├── config.py            # 配置管理
└── utils.py             # 工具函数

Solução de problemas

Problemas comuns

  1. "uv: command not found"

  2. "No solution found when resolving dependencies"

    • Verifique se a versão do Python é >= 3.10
    • Execute: uv --version e python --version
  3. "ModuleNotFoundError: No module named 'contract_inspector'"

    • Isso geralmente é causado pelo Cursor não usar o ambiente virtual correto. Siga os passos abaixo:
    # 确保在项目目录中
    cd <project_path>
    
    # 以可编辑模式重新安装包
    uv pip install -e .
    
    # 验证模块可以正确导入
    .venv/bin/python -c "import contract_inspector; print('模块导入成功')"
    
    # 获取正确的项目路径
    pwd  # 将输出的路径用于Cursor配置
    
  4. Problemas de configuração MCP

    • Certifique-se de que o caminho cwd no arquivo de configuração do Cursor aponta corretamente para o diretório raiz do projeto
    • Certifique-se de usar caminho absoluto em vez de caminho relativo
    • Verifique se o executável Python no ambiente virtual existe
    • Se o Cursor não conseguir iniciar o serviço MCP, verifique se a sintaxe do arquivo de configuração está correta
  5. Serviço MCP local sem resposta

    • Verifique se o arquivo .env está configurado corretamente com a chave da API
    • Consulte os logs MCP do Cursor para obter informações detalhadas de erro
    • Confirme se as dependências do projeto foram instaladas corretamente via uv sync

Como verificar o status do serviço MCP

  • Visualize o status da conexão MCP no Cursor (geralmente exibido nas configurações ou na barra de status)
  • Se precisar depurar, você pode testar manualmente: uv run python -c "import contract_inspector; print('模块可用')"
  • Consulte os arquivos de log MCP do Cursor para obter informações detalhadas de erro

Licença

Licença MIT