Skip to main content
Glama
klimadev

MCP Codebase Symbols Server

by klimadev
README.md
# 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

A3.9/5.0

Scored across 2 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count3/5

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.

Completeness3/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues