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
-
"uv: command not found"
- Instalar uv:
pip install uv - Ou acesse: https://github.com/astral-sh/uv
- Instalar uv:
-
"No solution found when resolving dependencies"
- Verifique se a versão do Python é >= 3.10
- Execute:
uv --versionepython --version
-
"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配置 -
Problemas de configuração MCP
- Certifique-se de que o caminho
cwdno 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
- Certifique-se de que o caminho
-
Serviço MCP local sem resposta
- Verifique se o arquivo
.envestá 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
- Verifique se o arquivo
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