Grep App
Pesquise código em repositórios públicos do GitHub usando a API do grep.app.
Documentação
Servidor MCP Grep App
Um servidor Model Context Protocol (MCP) que fornece poderosas capacidades de busca de código em repositórios públicos do GitHub usando a API do grep.app. Perfeito para descoberta de código, aprendizado com projetos de código aberto e encontrar exemplos de implementação.
🚀 Recursos
- 🔍 Busca Avançada de Código: Busque em milhões de repositórios públicos no GitHub
- 📁 Recuperação de Arquivos: Busque arquivos específicos ou lotes de arquivos do GitHub
- 🎯 Filtragem Flexível: Filtre por linguagem, repositório, caminho de arquivo e mais
- 📊 Múltiplos Formatos de Saída: JSON, listas numeradas ou texto formatado
- ⚡ Operações em Lote: Recupere múltiplos arquivos eficientemente em paralelo
- 🔄 Cache de Resultados: Armazene em cache resultados de busca para recuperação rápida de arquivos
- 📝 Logging Abrangente: Logging integrado com rotação diária
🛠️ Instalação e Configuração
Pré-requisitos
- Node.js 18+
- npm ou yarn
- CLI do Claude Code
Início Rápido
-
Clone ou baixe este repositório
git clone https://github.com/ai-tools-all/grep_app_mcp.git cd grep_app_mcp -
Instale as dependências
npm install -
Compile o projeto
npm run build -
Teste o servidor
# HTTP mode (recommended for development) ./run.sh http dev # or STDIO mode ./run.sh stdio dev
🔧 Adicionando ao Claude Code
Método 1: Usando Configuração MCP
Adicione este servidor à sua configuração MCP do Claude Code:
{
"mcpServers": {
"grep_app": {
"command": "node",
"args": ["/path/to/grep_app_mcp/dist/server-stdio.js"],
"env": {}
}
}
}
Método 2: Usando Transporte HTTP
Para modo HTTP, adicione à sua configuração:
{
"mcpServers": {
"grep_app": {
"url": "http://localhost:8603/mcp"
}
}
}
Em seguida, inicie o servidor:
./run.sh http prod
📖 Uso do run.sh
O script run.sh fornece maneiras convenientes de iniciar o servidor:
Uso Básico
./run.sh [mode] [environment]
Modos
http- Servidor HTTP com suporte a streaming (padrão)stdio- Servidor STDIO para integração MCP direta
Ambientes
dev- Modo de desenvolvimento com recarga automática (padrão)prod- Modo de produção (requer etapa de compilação)
Exemplos
# Development (default) - HTTP server with hot reload
./run.sh
# Development - HTTP server
./run.sh http dev
# Production - HTTP server
./run.sh http prod
# Development - STDIO server
./run.sh stdio dev
# Production - STDIO server
./run.sh stdio prod
# Show help
./run.sh help
Endpoints HTTP (ao usar modo HTTP)
- Streaming HTTP:
http://localhost:8603/mcp - Server-Sent Events:
http://localhost:8603/sse
🔨 Ferramentas Disponíveis
1. searchCode
Busque código em repositórios públicos do GitHub.
Parâmetros:
query(obrigatório) - String de consulta de buscajsonOutput- Retornar formato JSON (padrão: false)numberedOutput- Retornar formato de lista numerada (padrão: false)caseSensitive- Busca sensível a maiúsculas/minúsculasuseRegex- Tratar consulta como padrão regexwholeWords- Buscar apenas palavras inteirasrepoFilter- Filtrar por padrão de nome de repositóriopathFilter- Filtrar por padrão de caminho de arquivolangFilter- Filtrar por linguagem(ns) de programação
Exemplo:
{
"query": "async function fetchData",
"langFilter": "TypeScript,JavaScript",
"numberedOutput": true
}
2. github_file
Busque um único arquivo de um repositório do GitHub.
Parâmetros:
owner(obrigatório) - Proprietário do repositóriorepo(obrigatório) - Nome do repositóriopath(obrigatório) - Caminho do arquivoref(opcional) - Referência de branch/commit/tag
Exemplo:
{
"owner": "microsoft",
"repo": "vscode",
"path": "src/vs/editor/editor.api.ts"
}
3. github_batch_files
Busque múltiplos arquivos de repositórios do GitHub em paralelo.
Parâmetros:
files(obrigatório) - Array de objetos de arquivo com owner, repo, path e ref opcional
Exemplo:
{
"files": [
{"owner": "facebook", "repo": "react", "path": "packages/react/index.js"},
{"owner": "microsoft", "repo": "TypeScript", "path": "src/compiler/types.ts"}
]
}
4. batch_retrieve_files
Recupere arquivos de resultados de busca previamente armazenados em cache.
Parâmetros:
query(obrigatório) - Consulta de busca originalresultNumbers(opcional) - Array de índices de resultados para recuperar
Exemplo:
{
"query": "tower_governor",
"resultNumbers": [1, 2, 3]
}
🎯 Fluxos de Trabalho Comuns
1. Descoberta de Código
# Search for React hooks examples
searchCode("useEffect cleanup", langFilter: "JavaScript,TypeScript")
# Retrieve specific files from results
batch_retrieve_files(query: "useEffect cleanup", resultNumbers: [1, 3, 5])
2. Padrões de Aprendizado
# Find authentication implementations
searchCode("JWT authentication middleware", repoFilter: "*express*")
# Get specific implementation details
github_file(owner: "auth0", repo: "express-jwt", path: "lib/index.js")
3. Pesquisa de API
# Discover API patterns
searchCode("GraphQL resolver", pathFilter: "*/resolvers/*")
# Compare multiple implementations
github_batch_files([
{owner: "apollographql", repo: "apollo-server", path: "packages/apollo-server-core/src/resolvers.ts"},
{owner: "graphql", repo: "graphql-js", path: "src/execution/execute.js"}
])
📋 Desenvolvimento
Scripts Disponíveis
npm run build- Compilar TypeScript para JavaScriptnpm run start- Iniciar servidor HTTP de produçãonpm run start-stdio- Iniciar servidor STDIO de produçãonpm run dev- Iniciar servidor HTTP de desenvolvimento com recarga automáticanpm run dev-stdio- Iniciar servidor STDIO de desenvolvimento com recarga automáticanpm run test-client- Executar cliente de teste
Estrutura do Projeto
src/
├── core/ # Core utilities (logger, types)
├── tools/ # MCP tool implementations
├── server.ts # HTTP server entry point
└── server-stdio.ts # STDIO server entry point
📝 Logging
O servidor inclui logging abrangente com rotação diária:
- Localização: diretório
logs/ - Rotação: Diária com nomes de arquivo baseados em data
- Níveis: error, warn, info, debug
- Formato: JSON com carimbos de data/hora
🤝 Contribuindo
- Faça um fork do repositório
- Crie uma branch de recurso
- Faça suas alterações
- Adicione testes se aplicável
- Envie um pull request
📄 Licença
Licença ISC - veja package.json para detalhes
🔗 Relacionados
- grep.app - O serviço de busca que alimenta esta ferramenta
- Model Context Protocol - Especificação MCP
- Claude Code - CLI oficial do Claude