mcp-github-explorer-server

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.

Category
Visit Server

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.mjs na raiz do projeto é um cliente MCP mínimo, escrito à mão (sem SDK de cliente), que faz o handshake initializetools/listtools/call e imprime as mensagens JSON-RPC cruas. Rode com node test-client.mjs para 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

  1. 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
  2. Adicione (use o caminho absoluto do build/index.js compilado):

{
  "mcpServers": {
    "github-explorer": {
      "command": "node",
      "args": ["/caminho/absoluto/para/mcp-github-poc/build/index.js"]
    }
  }
}
  1. Feche o Claude Desktop completamente (não só a janela) e reabra.

  2. Verifique o ícone de ferramentas (martelo 🔨) na caixa de mensagem — ele confirma que pelo menos um MCP server está ativo.

  3. 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_profile e depois get_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 stdio por Streamable HTTP, permitindo que o servidor rode remotamente e sirva vários clientes ao mesmo tempo.
  • Adicionar um Resource (ex: expor o README.md de um repo como contexto navegável, em vez de só uma tool).
  • Adicionar autenticação via GITHUB_TOKEN para elevar o rate limit de 60 para 5.000 requisições/hora.

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

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.

Official
Featured
Python
graphlit-mcp-server

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.

Official
Featured
TypeScript
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured