
Tornando os Dados de Energia da África Acessíveis para LLMs - um Guia Prático
Introdução
Como entusiasta e treinador de IA, acredito que dados abertos de alta qualidade são essenciais para construir modelos de linguagem e agentes úteis. Este projeto - o "Africa Energy Data MCP" - envolve uma API pública de Dados de Energia da África e a expõe como ferramentas MCP para que LLMs (Claude, Cursor, etc.) possam chamá-las diretamente.
Neste breve guia, você encontrará um passo a passo claro para:
- Configurar o projeto localmente
- Compreender a arquitetura
- Conectar um cliente MCP (Claude / Cursor)
- Executar e testar as ferramentas
- Opções de publicação (breve)
Agradecimentos especiais ao meu amigo Denzel (dkkinyua) que desenvolveu a API subjacente que alimenta este projeto - confira o trabalho dele aqui: https://github.com/dkkinyua/AfricaEnergyDataAPI/tree/main
Por que isso é importante
LLMs se tornam muito mais úteis quando podem chamar ferramentas que buscam dados reais. Este projeto torna indicadores históricos de eletricidade, energia e economia para 54 países africanos (2000–2022) trivialmente disponíveis para agentes, com cache, tentativas e validação integrados.
Destaques rápidos
- Ferramentas:
get_electricity_data,get_energy_data,get_economic_data,check_api_health,list_countries - Tecnologia: Python 3.11,
httpx, servidormcp, cache em memória simples, logging estruturado - Containerização:
Dockerfile+ exemplo de GitHub Actions incluído
Passo 1 - Obter o código
Clone o repositório e entre no diretório do projeto:
git clone https://github.com/Navashub/africa_energy_mcp.git
cd africa_energy_mcp
Passo 2 - Instalar dependências
Crie um virtualenv e instale os requisitos:
python -m venv venv
# Windows
venv\Scripts\activate
# macOS / Linux
source venv/bin/activate
pip install -r requirements.txt
Passo 3 - Adicione sua chave API
Copie o arquivo de exemplo .env e cole sua chave RapidAPI do provedor de API (API do Denzel ou a listagem do RapidAPI):
cp .env.example .env
# edite .env e substitua AFRICA_ENERGY_API_KEY pela sua chave
Importante: nunca comite .env ou sua chave API no GitHub. O repositório já inclui um .gitignore.
Passo 4 - Execute o servidor MCP
Inicie o servidor localmente:
py server.py
Você deve ver logs estruturados no stderr indicando que o servidor MCP foi inicializado e as ferramentas registradas. Deixe isso rodando — ele escuta no stdio para clientes MCP.
Passo 5 - Conectar um cliente MCP (Claude / Cursor)
Para testes locais, aponte seu cliente compatível com MCP para o processo server.py. Exemplos:
- Claude Desktop (Windows) — edite
%APPDATA%\Claude\claude_desktop_config.jsone adicione:
{
"mcpServers": {
"africa-energy": {
"command": "py",
"args": ["D:\\mcp_projects\\africa_energy_mcp\\server.py"]
}
}
}
- Cursor — adicione a entrada equivalente
mcp.serversnas configurações do Cursor apontando para seu localserver.py.
Passo 6 - Testar consultas úteis
Comece com comandos de descoberta para confirmar a conectividade:
- "Quais países são suportados pela ferramenta de Dados de Energia da África?" — deve retornar a lista de 54 países (ferramenta
list_countries). - "A API de Dados de Energia da África está online?" — a ferramenta
check_api_healthdeve retornar um JSON de saúde. - Exemplo: "Obter dados de eletricidade para o Quênia em 2022." — chamará
get_electricity_datae retornará resultados em JSON.
Se um endpoint retornar um 500, isso indica que o backend da API remota falhou — o erro está do lado do provedor da API. O servidor MCP exibirá uma mensagem de erro clara nesse caso.
Arquitetura (breve)
-
server.py- servidor MCP que declara ferramentas e roteia chamadas -
handlers.py- Validação de entrada e mapeamento de argumentos de ferramentas para chamadas de API -
api_client.py- wrapperhttpx.AsyncClientcom tentativas, timeout de 30s e um cache em memória de 10 minutos -
tools.py- Esquemas para cada ferramenta MCP -
config.py- Ambiente e constantes (incluindo a lista codificada de 54 países)
Containerização & CI
Se você deseja hospedagem remota, o repositório inclui um Dockerfile e um exemplo de fluxo de trabalho do GitHub Actions que constrói e envia um contêiner para o GHCR. A publicação requer um token de registro — adicionamos um fluxo de trabalho que prefere um segredo GHCR_TOKEN ou recai sobre o GITHUB_TOKEN do repositório quando permitido.
Agradecimentos
Um enorme agradecimento a Denzel (dkkinyua) por construir a API subjacente de Dados de Energia da África — por favor, confira o repositório dele: https://github.com/dkkinyua/AfricaEnergyDataAPI/tree/main
Agradecimento: Este projeto foi adaptado e envolto em um servidor MCP por um entusiasta e treinador de IA (sou eu — Navashub) para tornar os dados acessíveis a LLMs para educação, pesquisa e uso em produção.
Melhores práticas & dicas
- Mantenha suas chaves API em segredo - use
.envlocalmente e segredos de repositório para CI. - Teste com
list_countriesecheck_api_healthantes de executar grandes consultas. - Aumente
REQUEST_TIMEOUTemconfig.pyapenas se souber que o backend requer mais tempo. - Para hospedagem em produção, use a imagem Docker e forneça segredos através do host ou do mecanismo de segredos da plataforma.
Conclusão
Disponibilizar dados de energia históricos e estruturados para LLMs desbloqueia uma melhor análise automatizada, respostas e suporte à decisão. Este projeto é uma pequena, mas prática ponte - agradecimentos a Denzel pela API e a você por explorá-la.
A acessibilidade de dados de energia para LLMs pode beneficiar empresas brasileiras que buscam integrar análises de dados em suas operações. A implementação de APIs e ferramentas MCP pode facilitar a automação e a tomada de decisões informadas. Essa abordagem pode ser um modelo para projetos semelhantes no Brasil.
