mcp-github-explorer-server
This MCP server exposes GitHub public data as tools that an AI host can discover and invoke, including a fully offline RAG tool for the tutorial's knowledge base.
get_github_profile: Fetch public info about a GitHub user or organization (name, bio, company, location, followers, public repo count) given a
username.list_top_repos: List a user's most-starred public repos, with primary language and star counts, with an optional
limit(1–20, default 5).get_language_stats: Compute the percentage distribution of programming languages across a user's public non-fork repos, based on each repo's primary language.
RAG retrieval (per README): The README also describes a fourth
ask_knowledge_basetool that performs offline BM25 retrieval over thecorpus/materials (agents, MCP, RAG) — though this tool is not present in the provided server schema.
Note: The provided schema contains only 3 tools; ask_knowledge_base is documented in the README but missing from the schema.
Allows AI agents to fetch public GitHub user profiles, list a user's most-starred repositories, and compute language usage statistics via the GitHub API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-github-explorer-server What are the top 5 most starred repos by torvalds?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
Quatro ferramentas expostas:
Tool | O que faz |
| Retorna dados públicos de um usuário/organização do GitHub |
| Lista os repositórios mais estrelados de um usuário |
| Calcula a distribuição de linguagens usadas pelo usuário |
| RAG: busca (BM25, local/offline) nos materiais teóricos do tutorial sobre Agentes de IA, MCP e RAG |
A quarta tool é o elo entre os três blocos do tutorial: ela faz a etapa
de recuperação do RAG (busca por palavra-chave nos arquivos em
corpus/) e devolve os trechos mais relevantes para o host — é o
modelo do lado do host (Claude) quem lê esses trechos e gera a
resposta final. Ou seja, a tool nunca chama nenhum LLM internamente; ela
só recupera. Isso é uma demonstração ao vivo de RAG agentic: em vez
de um pipeline fixo, a recuperação é uma decisão que o próprio agente
toma durante a conversa.
Related MCP server: github-mcp
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 buildIsso 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 inspectIsso abre uma interface web local onde dá pra ver as 4 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. A tool
ask_knowledge_basenão é afetada por isso — ela não faz nenhuma chamada de rede, então funciona mesmo sem internet.
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.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
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.Para demonstrar a tool de RAG, pergunte algo como:
"Usa a base de conhecimento pra me explicar o que é RAG agentic e como isso se conecta com MCP."
O modelo vai chamar
ask_knowledge_base, receber os trechos mais relevantes (recuperados via BM25, sem nenhuma chamada de rede) e sintetizar a resposta final usando esse contexto — a etapa de geração acontece inteiramente do lado do host, não dentro do servidor.
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 registradoDentro 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 # servidor MCP: registra as 4 tools
│ └── rag.ts # indexação e busca BM25 (a etapa de recuperação do RAG)
├── corpus/ # base de conhecimento (markdown) indexada pelo rag.ts
│ ├── agentes.md
│ ├── mcp.md
│ └── rag.md
├── build/ # gerado pelo `npm run build`
├── package.json
├── tsconfig.json
├── test-client.mjs # cliente MCP mínimo p/ testar via terminal
└── README.md # este arquivo8. 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.Trocar a recuperação BM25 (esparsa) por embeddings (densa) — ex: gerar vetores com um modelo local ou via API e comparar por similaridade de cosseno — ou combinar as duas em uma busca híbrida, como no projeto
rag-docs-api.Adicionar mais documentos ao
corpus/e observar como o BM25 se comporta com uma base maior (é o momento de discutir os limites da recuperação puramente léxica, sem sinônimos).
Available Tools
3 toolsget_github_profilePerfil do GitHubA
Busca informacoes publicas de um usuario ou organizacao do GitHub: nome, bio, empresa, localizacao, numero de seguidores e de repositorios publicos.
Inputs: username (required).
get_language_statsEstatisticas de linguagensA
Calcula a distribuicao percentual das linguagens de programacao usadas nos repositorios publicos (nao-fork) de um usuario do GitHub, com base na linguagem principal de cada repositorio.
Inputs: username (required).
list_top_reposTop repositorios do GitHubA
Lista os repositorios publicos mais estrelados de um usuario do GitHub, com linguagem principal e contagem de estrelas.
Inputs: username (required), limit.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool targets a distinct aspect of GitHub data: profile info, top repositories, and language distribution. No overlap in purpose, making selection unambiguous.
All tool names follow the verb_noun pattern with snake_case: get_github_profile, list_top_repos, get_language_stats. Consistent and predictable.
Three tools is a well-scoped set for a focused GitHub explorer server. Each tool serves a clear function without redundancy or bloat.
The server covers common GitHub exploration needs: profile, top repos, and language stats. Minor gaps like detailed repo info or follower lists exist but are not critical for the apparent purpose.
Maintenance
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
Hosted MCP server for live public-data APIs and Skills for AI agents.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
- AlicenseBqualityCmaintenanceMCP server that exposes GitHub operations as tools for AI agents, enabling code search, issue management, and PR review.12MIT
- FlicenseNot gradedqualityDmaintenanceA read-only MCP server that exposes GitHub user profiles, repository info, and search via tools for AI assistants like Claude.-
- AlicenseAqualityDmaintenanceMCP server for AI agents to securely access GitHub data, including listing repositories and user profile info via the GitHub API.2ISC
- FlicenseAqualityDmaintenanceMCP server that wraps GitHub REST API to allow AI agents to search repositories, get repository details, list issues, and read READMEs.4-