mcp-github-explorer-server
MCP server for exploring GitHub public data. It provides tools to fetch user profiles, list top repositories, and calculate language usage statistics, which AI agents can invoke dynamically.
README
mcp-github-explorer-server — PoC de Agente de IA com MCP
Servidor MCP (Model Context Protocol) que expõe dados públicos do GitHub como ferramentas que qualquer agente de IA compatível com MCP pode descobrir e invocar dinamicamente — sem nenhuma integração hardcoded.
Este documento é o mini-tutorial de reprodução: qualquer colega da turma consegue rodar esta PoC do zero em ~10 minutos.
1. O que esta PoC demonstra
- Como um MCP Server anuncia suas capacidades (
tools) a um host de IA. - Como o host descobre essas ferramentas (
tools/list) e as invoca (tools/call) via JSON-RPC 2.0 sobre o transporte stdio. - Como o modelo decide sozinho, a partir da linguagem natural do usuário, quais ferramentas chamar e com quais parâmetros — sem o desenvolvedor escrever nenhum "if/else" de roteamento de intenção.
Três ferramentas expostas:
| Tool | O que faz |
|---|---|
get_github_profile |
Retorna dados públicos de um usuário/organização do GitHub |
list_top_repos |
Lista os repositórios mais estrelados de um usuário |
get_language_stats |
Calcula a distribuição de linguagens usadas pelo usuário |
2. Pré-requisitos
- Node.js 18 ou superior (
node --version) - Um host MCP para testar. Recomendamos dois caminhos, do mais simples ao mais completo:
- MCP Inspector (não exige instalar nada além do Node — ótimo para validar rápido)
- Claude Desktop ou Claude Code (para a demonstração "de verdade", com o modelo decidindo quando chamar as tools)
3. Instalação e build
# dentro da pasta do projeto
npm install
npm run build
Isso compila src/index.ts (TypeScript) para build/index.js (JavaScript),
que é o arquivo que qualquer host vai executar como subprocesso.
4. Teste rápido com o MCP Inspector (sem precisar do Claude Desktop)
npm run inspect
Isso abre uma interface web local onde dá pra ver as 3 tools registradas,
chamar cada uma manualmente (ex: get_github_profile com username: torvalds)
e inspecionar a troca de mensagens JSON-RPC em tempo real. É o jeito mais
rápido de provar pro professor/turma que o protocolo está funcionando,
mesmo sem um modelo de IA no meio.
Nota sobre rate limit: a API pública do GitHub sem autenticação permite 60 requisições/hora por IP. Se aparecer esse erro, é isso — normal em redes compartilhadas (ex: Wi-Fi da faculdade), não é bug. Na sua máquina pessoal costuma funcionar sem problema.
Bônus didático: o arquivo
test-client.mjsna raiz do projeto é um cliente MCP mínimo, escrito à mão (sem SDK de cliente), que faz o handshakeinitialize→tools/list→tools/calle imprime as mensagens JSON-RPC cruas. Rode comnode test-client.mjspara mostrar na apresentação exatamente o que trafega "por baixo do capô" do protocolo, sem a camada visual do Inspector.
5. Conectando ao Claude Desktop
-
Abra o arquivo de configuração do Claude Desktop:
- Linux:
~/.config/Claude/claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Linux:
-
Adicione (use o caminho absoluto do
build/index.jscompilado):
{
"mcpServers": {
"github-explorer": {
"command": "node",
"args": ["/caminho/absoluto/para/mcp-github-poc/build/index.js"]
}
}
}
-
Feche o Claude Desktop completamente (não só a janela) e reabra.
-
Verifique o ícone de ferramentas (martelo 🔨) na caixa de mensagem — ele confirma que pelo menos um MCP server está ativo.
-
Teste com um prompt em linguagem natural, por exemplo:
"Usa o github-explorer pra ver o perfil do usuário torvalds e me diz quais são as 3 linguagens que ele mais usa."
O modelo vai decidir sozinho chamar
get_github_profilee depoisget_language_stats— essa decisão automática é o ponto central da demonstração.
6. Alternativa: conectando ao Claude Code (CLI)
claude mcp add github-explorer -- node /caminho/absoluto/para/mcp-github-poc/build/index.js
claude mcp list # confirma que o servidor foi registrado
Dentro de uma sessão do Claude Code, use /mcp para checar o status da
conexão a qualquer momento.
7. Estrutura do projeto
mcp-github-poc/
├── src/index.ts # código-fonte do servidor MCP (comentado)
├── build/ # gerado pelo `npm run build`
├── package.json
├── tsconfig.json
└── README.md # este arquivo
8. Possíveis extensões (para quem quiser ir além)
- Trocar o transporte
stdiopor Streamable HTTP, permitindo que o servidor rode remotamente e sirva vários clientes ao mesmo tempo. - Adicionar um Resource (ex: expor o
README.mdde um repo como contexto navegável, em vez de só umatool). - Adicionar autenticação via
GITHUB_TOKENpara elevar o rate limit de 60 para 5.000 requisições/hora.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
E2B
Using MCP to run code via e2b.