MCP Codebase Symbols Server
# MCP Codebase Symbols Server 🚀
Um servidor MCP (Model Context Protocol) que analisa sua codebase completa e extrai todos os símbolos (funções, classes, métodos, interfaces, etc.) em um markdown otimizado para LLMs.
## ✨ Características
- **🔍 Análise Completa**: Varre recursivamente toda a codebase
- **🚫 Respeita .gitignore**: Ignora automaticamente arquivos/pastas do `.gitignore`
- **🌐 Multi-linguagem**: Suporte para 10+ linguagens de programação
- **📊 Símbolos Detalhados**: Extrai funções, classes, métodos, interfaces, types, enums, etc.
- **🎯 LLM-Ready**: Markdown otimizado para economia de tokens e máxima clareza
- **⚡ Uma Única Requisição**: Entenda toda a estrutura do código instantaneamente
## 🛠️ Linguagens Suportadas
- JavaScript / TypeScript (.js, .jsx, .ts, .tsx, .mjs, .cjs)
- Python (.py)
- Java (.java)
- Go (.go)
- Rust (.rs)
- C / C++ (.c, .cpp, .cc, .h, .hpp)
- PHP (.php)
- Ruby (.rb)
- C# (.cs)
- Swift, Kotlin, Scala, R
## 📦 Instalação
### 1. Instalar Dependências
```bash
npm install
```
### 2. Compilar o Projeto
```bash
npm run build
```
## 🔧 Configuração
### Claude Desktop
Adicione ao seu arquivo de configuração do Claude Desktop (`claude_desktop_config.json`):
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Linux**: `~/.config/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"codebase-symbols": {
"command": "node",
"args": [
"C:\\Users\\darci\\desenvolvimento\\MyCode MCP\\dist\\index.js"
]
}
}
}
```
### Outros Clientes MCP
Configure o servidor apontando para:
```
node C:\Users\darci\desenvolvimento\MyCode MCP\dist\index.js
```
## 🎯 Como Usar
Após configurar o servidor no seu cliente MCP (como Claude Desktop), você pode usar a tool `analyze_codebase`:
### Exemplo de Uso
No Claude Desktop ou outro cliente MCP:
```
Analise a codebase em C:\meu\projeto
```
O servidor irá:
1. ✅ Carregar o `.gitignore` do projeto
2. ✅ Varrer todos os arquivos de código
3. ✅ Extrair símbolos de cada arquivo
4. ✅ Gerar markdown estruturado
### Output Exemplo
```markdown
# Codebase Structure
**Base Path:** `C:\meu\projeto`
**Total Files:** 42
**Total Symbols:** 328
---
## 📁 src/services
### 📄 `userService.ts`
**Path:** `src/services/userService.ts`
**Symbols:** 8
**Classes:**
- `UserService` (Line 10)
```typescript
export class UserService {
```
**Methods:**
- `getUser` (Line 15)
- `createUser` (Line 23)
- `updateUser` (Line 31)
**Functions:**
- `validateEmail` (Line 45)
```typescript
export function validateEmail(email: string): boolean {
```
```
## 🎨 Por Que Isso é Útil?
### Para LLMs
- **📉 Economia de Tokens**: Não precisa enviar o código inteiro, apenas os símbolos
- **🧠 Contexto Completo**: LLM entende toda a estrutura de uma vez
- **🎯 Precisão**: Pode navegar e entender arquiteturas complexas
- **⚡ Performance**: Uma única requisição vs. múltiplas
### Para Desenvolvedores
- **📚 Documentação Automática**: Overview instantâneo da codebase
- **🔍 Code Navigation**: Encontre símbolos e suas localizações rapidamente
- **📊 Análise Arquitetural**: Visualize a estrutura do projeto
- **🤖 AI-Assisted Coding**: LLMs podem dar melhores sugestões com contexto completo
## 🚀 Scripts Disponíveis
```bash
# Compilar o projeto
npm run build
# Compilar e watch para mudanças
npm run watch
# Iniciar o servidor (após compilar)
npm start
```
## 📋 Tool: analyze_codebase
### Parâmetros
- `path` (string, obrigatório): Caminho absoluto para o diretório da codebase a analisar
### Retorno
Markdown estruturado contendo:
- Estatísticas gerais (total de arquivos, símbolos)
- Estrutura de diretórios
- Para cada arquivo:
- Path relativo
- Símbolos encontrados (classes, funções, etc.)
- Números de linha
- Assinaturas de código
## 🔥 Casos de Uso
### 1. Code Review Assistido por IA
```
Analise a codebase em C:\projeto\backend e me diga se há algum padrão inconsistente
```
### 2. Onboarding de Novos Devs
```
Me explique a arquitetura do projeto em C:\meu\app
```
### 3. Refatoração
```
Analise C:\legacy\code e sugira como modernizar a estrutura
```
### 4. Documentação Automática
```
Crie documentação técnica baseada na codebase em C:\api
```
## 🛡️ Privacidade
- ✅ Roda **localmente** na sua máquina
- ✅ Nenhum código é enviado para servidores externos
- ✅ Apenas símbolos/estrutura são extraídos, não o código completo
- ✅ Respeita `.gitignore` para não expor arquivos sensíveis
## 📝 Licença
MIT
---
**Desenvolvido para tornar a análise de código por LLMs mais eficiente e poderosa! 🚀**
TDQS
Scored across 2 tools
The two tools have distinct primary purposes: analyze_codebase focuses on extracting symbols and structure for LLM understanding, while read_codebase returns full file content in a structured format. However, both involve reading codebases with .gitignore respect, which could cause some confusion about when to use each, though their descriptions clearly differentiate between symbol analysis vs. full content retrieval.
Both tools follow a consistent verb_noun pattern with snake_case naming (analyze_codebase and read_codebase). The verbs 'analyze' and 'read' are distinct yet related, maintaining a predictable and readable convention throughout the tool set.
With only 2 tools, the server feels thin for a codebase symbols domain, as it might lack operations like filtering symbols, updating analyses, or handling specific file types. While the tools cover core reading and analysis, the count is borderline minimal for typical MCP server scopes, which often include 3-15 tools for comprehensive functionality.
The server provides basic read and analyze operations, but there are notable gaps for a symbols-focused domain. Missing tools might include querying specific symbols, updating symbol databases, or handling incremental changes, which could limit agent workflows. However, the existing tools cover fundamental needs for codebase understanding, allowing agents to work around some limitations.