Codesteer Atlas
БесплатноНе проверенLocal MCP server for semantic code search using Tree-sitter AST parsing, local embeddings, and hybrid search; enables indexing and querying codebases entirely o
Описание
Local MCP server for semantic code search using Tree-sitter AST parsing, local embeddings, and hybrid search; enables indexing and querying codebases entirely offline.
README
Servidor MCP (Model Context Protocol) local para busca semântica em bases de código, usando Tree-sitter para parsing AST, embeddings locais via fastembed (ONNX) e LanceDB como banco vetorial embutido.
Tudo roda 100% local e offline — o código-fonte nunca é enviado para serviços externos.
Documentação Visual
Para entender de forma visual os conceitos do Model Context Protocol (MCP), o pipeline de indexação incremental por AST, e o funcionamento da busca híbrida semântica do Atlas, consulte a 📖 Documentação visual
Funcionalidades
- Indexação por AST (Tree-sitter): extrai classes, funções e métodos como chunks de contexto coerentes, em vez de blocos arbitrários de linhas.
- Busca híbrida: combina similaridade vetorial (cosseno) com busca lexical BM25 (full-text), fundidas via Reciprocal Rank Fusion (RRF).
- Indexação incremental: reindexações subsequentes processam apenas arquivos novos/alterados (hash sha256), tornando re-execuções rápidas.
- Embeddings locais: modelo
all-MiniLM-L6-v2(384 dimensões) viafastembed, com lazy loading. - Mapa de arquitetura: visão hierárquica de classes/funções/métodos do workspace, sem precisar carregar arquivos inteiros.
- Multi-linguagem: Python, JavaScript, TypeScript/TSX, Go, Java, C#, Dart, Pascal, VB6, Razor, XML, Markdown e mais.
Pré-requisitos
- Python 3.11 a 3.13
- uv (gerenciador de pacotes/ambientes) — fornece o
uvx, usado para rodar o Atlas sem clonar o repositório.
Instalação
Para usar o Atlas em um projeto você não precisa clonar este repositório: tudo roda via uvx, direto do GitHub. A instalação tem dois passos — registrar o servidor MCP no seu cliente (abaixo) e indexar o seu projeto (veja Início rápido).
Plugin do Claude Code
Este repositório também é distribuído como plugin/marketplace do Claude Code (.claude-plugin/). Não é necessário publicar em nenhum marketplace público — o marketplace pode ser adicionado a partir do próprio repositório git (privado ou público) ou de uma pasta local:
# A partir do repositório git (privado ou público)
/plugin marketplace add LuisCarlosLopes/codesteer-atlas
# Ou a partir de uma pasta local clonada
/plugin marketplace add /caminho/para/codesteer-atlas
# Em ambos os casos
/plugin install codesteer-atlas
O plugin registra o codesteer-atlas em modo remoto (uvx), sem caminhos absolutos no manifest. Não é necessário configurar --index-dir/ATLAS_INDEX_DIR: o servidor descobre automaticamente a pasta .code-index na raiz do seu projeto (busca ascendente a partir do CWD). Basta indexar o workspace uma vez:
uvx --from git+https://github.com/LuisCarlosLopes/codesteer-atlas.git atlas-index --workspace .
Power do Kiro
Este repositório também é distribuído como um Power do Kiro (POWER.md + mcp.json), que já inclui o passo de onboarding (verificação do uv/uvx e indexação inicial do workspace) e orientações de uso das tools atlas_*. Para instalar:
- No Kiro, vá em Add Custom Power → Import power from GitHub.
- Informe o repositório
https://github.com/LuisCarlosLopes/codesteer-atlas.git. - Siga o onboarding do power para indexar o workspace atual.
Plugin do GitHub Copilot CLI
Este repositório também é um plugin do Copilot CLI (plugin.json + .mcp.json), em modo remoto (uvx, sem paths absolutos). Para instalar:
copilot plugin install LuisCarlosLopes/codesteer-atlas
# ou, a partir de uma pasta local clonada
copilot plugin install /caminho/para/codesteer-atlas
Para remover: copilot plugin uninstall codesteer-atlas.
Outros clientes (Cursor, Cline, Copilot, Kiro, OpenCode...)
Copie o manifest pronto do cliente correspondente para a raiz do seu projeto (ou para a configuração global dele) e reinicie o cliente:
- Cursor: .cursor/mcp.json
- Kiro: .kiro/settings/mcp.json
- OpenCode: .opencode/opencode.json
- GitHub Copilot (VS Code): .vscode/mcp.json
Para configuração manual de outros clientes (OpenCode, Claude Desktop, Cline) ou para usar o modo instalado, veja CONTRIBUTING.md.
Modo instalado (opcional)
Se você instalou o Atlas como ferramenta global (uv tool install git+https://github.com/LuisCarlosLopes/codesteer-atlas.git — veja Início rápido), o comando atlas-serve fica disponível direto no PATH e você pode registrá-lo sem uvx:
{
"mcpServers": {
"codesteer-atlas": {
"command": "atlas-serve",
"env": {
"ATLAS_INDEX_DIR": "/caminho/para/.code-index"
}
}
}
}
Assim como no modo remoto, --index-dir/ATLAS_INDEX_DIR são opcionais — o servidor descobre automaticamente a pasta .code-index na raiz do projeto aberto.
Vai contribuir com o desenvolvimento do Atlas? Você precisa clonar o repositório e instalar as dependências de desenvolvimento — veja CONTRIBUTING.md.
Início rápido (primeira vez)
O Atlas indexa o repositório do seu projeto — o código que você quer pesquisar — e grava o índice em .code-index/ na raiz desse projeto. Você não indexa o repositório codesteer-atlas a menos que esse seja o projeto em que você está trabalhando.
1. Entre na raiz do seu projeto
cd /caminho/para/seu-projeto
2. Rode a indexação inicial
Na primeira execução, todos os arquivos elegíveis são processados e o índice é criado do zero. Não é necessário clonar o Atlas.
Recomendado — instale atlas-index/atlas-serve como ferramentas globais (uma vez só):
uv tool install git+https://github.com/LuisCarlosLopes/codesteer-atlas.git
E rode:
atlas-index --workspace .
Para atualizar para a versão mais recente: uv tool upgrade codesteer-atlas.
Alternativa sem instalar nada:
uvx --from git+https://github.com/LuisCarlosLopes/codesteer-atlas.git atlas-index --workspace .(baixa o pacote a cada execução).
Ao terminar, você deve ver Indexação Concluída com Sucesso! e a pasta .code-index/ na raiz do seu projeto, contendo manifest.json e lancedb/.
Git: adicione
.code-index/ao.gitignoredo seu projeto se ainda não estiver lá — o índice é artefato local, não deve ir para o repositório.
3. Conecte um cliente MCP
Se ainda não tiver feito isso, configure o cliente (Cursor, Claude Code, Cline, etc.) para usar o servidor codesteer-atlas — veja Instalação. A maioria dos exemplos deste README usa modo remoto (uvx) e descobre automaticamente a pasta .code-index na raiz do projeto aberto — não é necessário passar --index-dir manualmente.
4. Reindexar depois
Nas execuções seguintes, rode o mesmo comando do passo 2. A indexação é incremental: só arquivos novos ou alterados são reprocessados.
# Reindexação incremental (padrão)
atlas-index --workspace .
# Forçar reconstrução completa do índice
atlas-index --workspace . --full
# Indexar apenas partes do projeto
atlas-index --workspace . --paths src --paths docs
Também é possível reindexar pelo cliente MCP com a tool atlas_index (útil após mudanças grandes no código).
Reindex automático no startup: sempre que o servidor MCP (
atlas-serve) inicia — ou seja, sempre que você abre/reinicia seu editor/cliente MCP — ele dispara automaticamente uma reindexação incremental em background (sem bloquear o cliente). Isso só acontece se já existir um índice em.code-index/; a primeira indexação continua precisando ser feita manualmente (passo 2). O log fica em.code-index/background_reindex.log.
Uso
Com o cliente MCP conectado (veja Instalação) e o projeto indexado (veja Início rápido), o Atlas expõe as seguintes tools ao agente:
| Tool | Descrição |
|---|---|
atlas_search |
Busca híbrida (vetorial + BM25 + RRF). Por padrão retorna só metadados (file_path, linhas, símbolo, score); use include_content=true ou Read nas linhas indicadas para o conteúdo. Filtros: repo, language, path_prefix. |
atlas_map |
Mapa hierárquico de classes/funções/métodos do workspace indexado. |
atlas_index |
Indexa/reindexa o workspace. Suporta dry_run para listar candidatos antes de indexar. |
atlas_status |
Status e metadados de diagnóstico do índice (existência, total de chunks, modelo, staleness etc.). |
Também expõe o recurso somente leitura atlas://status.
Para reindexar após mudanças no código, rode novamente o comando de indexação (incremental por padrão) ou peça ao agente para usar a tool atlas_index.
Instruções para agentes de IA (AGENTS.md / CLAUDE.md)
Para que agentes de codificação usem o Atlas de forma consistente, copie o bloco abaixo para o arquivo de instruções do seu projeto ou cliente:
| Cliente / IDE | Arquivo equivalente |
|---|---|
| Cursor, Copilot (VS Code), genérico | AGENTS.md |
| Claude Code | CLAUDE.md |
| Kiro | regras do Power / instruções do agente |
| GitHub Copilot CLI | instruções do plugin ou regras do projeto |
# Busca de código com `codesteer-atlas`
Este repositório é indexado pelo MCP `codesteer-atlas`. Para localizar ou explorar código, use Atlas antes de `grep`, `rg`, `find`, glob ou leitura em massa.
## Use assim
- `atlas_search`: localizar função, classe, método, símbolo ou conceito
- `atlas_map`: entender a estrutura do projeto sem abrir muitos arquivos
- `atlas_status`: usar só quando houver suspeita de índice ausente ou desatualizado
- `atlas_index`: reindexar após mudanças grandes ou índice stale
## Fluxo padrão
1. Rode `atlas_search` para descoberta.
2. Restrinja com `path_prefix` e `language` quando fizer sentido.
3. Leia apenas os hits relevantes com `Read`, ou repita com `include_content=true`.
`atlas_search` retorna metadados por padrão. Localize primeiro; leia conteúdo depois.
## Quando pode pular o Atlas
- o usuário já informou o caminho exato do arquivo
- você precisa confirmar uma string literal exata
- a tarefa é edição, diff, commit, git, CI, testes ou instalação de dependências
- o MCP estiver indisponível, sem autenticação ou com índice vazio/desatualizado
## Índice desatualizado
1. Rode `atlas_status`.
2. Se necessário, rode `atlas_index`.
3. Use fallback local só se o problema persistir.
Priorize esse fluxo especialmente em etapas de descoberta, especificação e planejamento.
Como funciona
O Atlas divide cada arquivo em CodeChunks no nível de símbolo (classes, funções, métodos) via Tree-sitter, gera embeddings locais para cada chunk e indexa tudo em LanceDB com busca vetorial + BM25 (RRF). Para um arquivo Python típico, em vez de indexar o arquivo inteiro de uma vez, o Atlas cria um chunk por símbolo:
src/auth/service.py
├── class AuthService (linhas 10–45)
├── AuthService.login (linhas 20–35)
└── AuthService.logout (linhas 37–44)
Cada chunk vira um registro pesquisável por similaridade vetorial (cosseno) e BM25, fundidos via RRF na busca (atlas_search). Para detalhes do pipeline (filtros, indexação incremental, chunking por linguagem, truncamento, persistência), veja CONTRIBUTING.md.
Excluindo arquivos com .atlasignore
Para excluir arquivos/pastas adicionais da indexação sem editar o código do Atlas, crie um arquivo .atlasignore na raiz do workspace. A sintaxe é idêntica à do .gitignore (glob, **, ancoragem com /, negação com !, comentários #):
# Ignora todos os arquivos .log
*.log
# Ignora a pasta inteira (incl. arquivos dentro)
fixtures/
# Ignora apenas na raiz do workspace, não em subpastas
/dist
# Ignora em qualquer profundidade
**/*.generated.py
# Negação: reinclui um arquivo previamente ignorado
!important.log
- O arquivo é opcional: workspaces sem
.atlasignorecontinuam indexando exatamente como antes. .atlasignoreé um filtro adicional — pastas como.git,node_modules,.venv,__pycache__e.code-indexcontinuam sempre ignoradas e não podem ser "reincluídas" via!.- O filtro é aplicado tanto na indexação real (
atlas-index/atlas_index) quanto no preview (atlas_indexcomdry_run=true).
Resolução do diretório de índice
O diretório .code-index é resolvido nesta ordem:
- Argumento
--index-dirda CLI/servidor. - Variável de ambiente
ATLAS_INDEX_DIR. - Busca ascendente a partir do diretório atual por uma pasta
.code-index(estilo.git). - Busca ascendente a partir da raiz do projeto/workspace informada pelo editor:
CLAUDE_PROJECT_DIR(Claude Code) ouWORKSPACE_FOLDER_PATHS(Cursor/VS Code, quando definida). - Padrão
.code-indexrelativo à raiz do projeto informada pelo editor (se disponível) ou ao diretório atual.
Instalação via plugin/Power
Os manifests de plugin (Claude Code, Kiro Power, Copilot CLI) não definem --index-dir/ATLAS_INDEX_DIR — eles dependem dos itens 3 e 4 acima.
Normalmente o item 3 já resolve: busca ascendente a partir do diretório de trabalho do processo do servidor, que costuma ser a raiz do projeto aberto no editor. Basta rodar atlas-index --workspace . na raiz do projeto (criando .code-index/ ali) para que o servidor o encontre automaticamente, sem nenhuma configuração extra.
Se o servidor MCP do plugin for iniciado com outro CWD (ex.: o HOME do usuário, em vez da raiz do projeto — o que faria a busca ascendente do item 3 não encontrar o .code-index do projeto e, na pior das hipóteses, encontrar ou criar um .code-index solto no HOME), o item 4 cobre esse caso: o editor define CLAUDE_PROJECT_DIR/WORKSPACE_FOLDER_PATHS com a raiz real do projeto, e o servidor refaz a busca ascendente a partir dela. Caso nem assim encontre um .code-index existente, o índice padrão (item 5) passa a usar essa raiz — ou seja, mesmo no primeiro atlas_index (que cria o diretório), ele é criado na raiz do projeto, não no HOME.
Cursor: roda os servidores MCP em um processo compartilhado entre projetos, com CWD fixo no
$HOMEe sem exporCLAUDE_PROJECT_DIR/WORKSPACE_FOLDER_PATHS. Os itens 3 e 4 não resolvem nesse caso — é necessário definirATLAS_INDEX_DIRpor projeto usando${workspaceFolder}. Veja Cursor em CONTRIBUTING.md.
Para apontar para um .code-index em outro lugar (ex.: índice compartilhado fora do projeto), defina ATLAS_INDEX_DIR — que tem prioridade sobre a busca automática — no manifest MCP:
Claude Code: adicione/edite
.mcp.jsonna raiz do projeto (ou a config global) com:{ "mcpServers": { "codesteer-atlas": { "command": "uvx", "args": ["--from", "git+https://github.com/LuisCarlosLopes/codesteer-atlas.git", "atlas-serve"], "env": { "ATLAS_INDEX_DIR": "/caminho/para/.code-index" } } } }Uma entrada de
codesteer-atlasem.mcp.jsondo projeto tem precedência sobre a registrada pelo plugin.Kiro Power / Copilot CLI plugin: o manifest (
mcp.json/.mcp.json) vem do próprio repositório do Atlas instalado pelo marketplace — não edite-o diretamente (mudanças seriam perdidas em atualizações). Em vez disso, copie o manifest pronto do cliente (ex.: .kiro/settings/mcp.json) para a raiz do seu projeto, adicioneenv.ATLAS_INDEX_DIRe reinicie o cliente — veja Outros clientes.
Contribuindo
Quer clonar o repositório, rodar testes, configurar manualmente outros clientes MCP ou entender o pipeline de indexação em detalhes? Veja CONTRIBUTING.md e CLAUDE.md.
Licença
Veja LICENSE.
Установить Codesteer Atlas в Claude Desktop, Claude Code, Cursor
unyly install codesteer-atlasСтавит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.
Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh
Или настроить вручную
Выполни в терминале:
claude mcp add codesteer-atlas -- uvx --from git+https://github.com/LuisCarlosLopes/codesteer-atlas codesteer-atlasFAQ
Codesteer Atlas MCP бесплатный?
Да, Codesteer Atlas MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Codesteer Atlas?
Нет, Codesteer Atlas работает без API-ключей и переменных окружения.
Codesteer Atlas — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Codesteer Atlas в Claude Desktop, Claude Code или Cursor?
Открой Codesteer Atlas на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Codesteer Atlas with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
