# 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! 🚀**