/ Diretório / Playground / contextplus
● Comunidade ForLoopCodes ⚡ Instantâneo

contextplus

por ForLoopCodes · ForLoopCodes/contextplus

Dê ao seu agente de codificação um mapa semântico persistente do repositório — AST + embeddings + grafo de memória + desfazer oculto — para que ele pare de reler todo o código.

Context+ (ForLoopCodes/contextplus) é um MCP TypeScript que expõe 17 ferramentas para compreensão de repositório: árvores AST tree-sitter, esqueletos de arquivo, busca semântica de identificadores, análise de raio de impacto, um grafo de memória para projetos de longa duração e pontos de restauração ocultos para edições seguras. Funciona com Ollama ou embeddings em nuvem.

Por que usar

Principais recursos

Demo ao vivo

Como fica na prática

contextplus.replay ▶ pronto
0/0

Instalar

Escolha seu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "contextplus": {
      "command": "npx",
      "args": [
        "-y",
        "contextplus"
      ],
      "_inferred": true
    }
  }
}

Abra Claude Desktop → Settings → Developer → Edit Config. Reinicie após salvar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "contextplus": {
      "command": "npx",
      "args": [
        "-y",
        "contextplus"
      ],
      "_inferred": true
    }
  }
}

Cursor usa o mesmo esquema mcpServers que o Claude Desktop. Config de projeto vence a global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "contextplus": {
      "command": "npx",
      "args": [
        "-y",
        "contextplus"
      ],
      "_inferred": true
    }
  }
}

Clique no ícone MCP Servers na barra lateral do Cline, depois "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "contextplus": {
      "command": "npx",
      "args": [
        "-y",
        "contextplus"
      ],
      "_inferred": true
    }
  }
}

Mesmo formato do Claude Desktop. Reinicie o Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "contextplus",
      "command": "npx",
      "args": [
        "-y",
        "contextplus"
      ]
    }
  ]
}

O Continue usa um array de objetos de servidor em vez de um map.

~/.config/zed/settings.json
{
  "context_servers": {
    "contextplus": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "contextplus"
        ]
      }
    }
  }
}

Adicione em context_servers. Zed recarrega automaticamente ao salvar.

claude mcp add contextplus -- npx -y contextplus

Uma linha só. Verifique com claude mcp list. Remova com claude mcp remove.

Casos de uso

Usos do mundo real: contextplus

Como tornar um novo agente produtivo em um grande repositório rapidamente

👤 Líderes técnicos que usam Cursor/Claude Code em um monorepo ⏱ ~20 min intermediate

Quando usar: O agente desperdiça 30% do contexto lendo e relendo arquivos.

Pré-requisitos
  • Node + bun ou npm — brew install bun ou use npm
  • Um provedor de embeddings (Ollama local, OpenAI, Gemini ou Groq) — ollama pull nomic-embed-text para offline
Fluxo
  1. Construir a árvore de contexto
    Execute get_context_tree na raiz do repositório. Resuma as camadas de nível superior.✓ Copiado
    → Árvore AST com cabeçalhos de arquivo
  2. Leituras apenas de esqueleto
    Use get_file_skeleton em src/auth/ para ver apenas assinaturas — não leia os corpos ainda.✓ Copiado
    → Assinaturas de função sem corpos
  3. Faça uma pergunta semântica
    semantic_identifier_search: 'onde é a verificação JWT implementada e chamada?'✓ Copiado
    → Implementações classificadas + locais de chamada

Resultado: Agente opera com um modelo mental do repositório usando ~5x menos contexto.

Armadilhas
  • A indexação na primeira execução é lenta — Execute a verificação inicial uma vez; as atualizações incrementais são rápidas
  • Falta de correspondência do modelo de embeddings entre índice e consulta — Mantenha um modelo de embedding; reindexe se você o alterar
Combine com: filesystem · github

Como refatorar com pontos de restauração ocultos

👤 Desenvolvedores preocupados em deixar agentes editarem código ⏱ ~15 min intermediate

Quando usar: Você quer edições de agente, mas também quer um desfazer de um clique que não suje o git.

Fluxo
  1. Capturar um ponto de restauração
    Crie um ponto de restauração chamado 'before-auth-refactor'.✓ Copiado
    → ID do ponto retornado
  2. Deixe o agente editar
    propose_commit: refatore a verificação JWT para usar o novo assistente de rotação de chaves.✓ Copiado
    → Arquivos editados + validação aprovada
  3. Reverter se estiver errado
    undo_change de volta para 'before-auth-refactor'.✓ Copiado
    → Arquivos revertidos, histórico git limpo

Resultado: Refatorações destemidas sem poluir o histórico git.

Armadilhas
  • Pontos de restauração vivem em .contextplus/ — não os verifique — Adicione .contextplus/ ao .gitignore
Combine com: github

Como avaliar o raio de impacto antes de deletar uma função

👤 Engenheiros limpando código morto ⏱ ~10 min intermediate

Quando usar: Você quer saber exatamente quem importa ou usa um símbolo antes de removê-lo.

Fluxo
  1. Peça o raio de impacto
    get_blast_radius para a função 'legacyFormatPrice' em src/pricing.ts.✓ Copiado
    → Cada arquivo/linha que importa ou chama
  2. Planejar remoção
    Para cada local de chamada, sugira a substituição. Qualquer local sem uma troca limpa, sinalize como arriscado.✓ Copiado
    → Lista de verificação de migração

Resultado: Um PR de deleção sem surpresas.

Armadilhas
  • Importações dinâmicas (require, refs de string) não são detectadas — Suplementar com uma passagem grep para o nome da função
Combine com: github

Como persistir decisões entre sessões com o grafo de memória

👤 Qualquer usuário de agente em um projeto de longa duração ⏱ ~15 min advanced

Quando usar: Você continua re-explicando as mesmas escolhas arquitetônicas ao agente.

Fluxo
  1. Semear memória
    upsert_memory_node: 'Escolhemos Postgres em vez de MongoDB por causa de invariantes transacionais no fluxo de faturamento.'✓ Copiado
    → Nó criado com embedding
  2. Criar relações
    create_relation: vincule essa decisão aos arquivos src/billing/*.ts com tipo de aresta 'implements'.✓ Copiado
    → Aresta criada
  3. Recuperar próxima sessão
    search_memory_graph: 'por que estamos usando Postgres?'✓ Copiado
    → Superfícies de decisão com arquivos de apoio

Resultado: Memória de projeto durável que sobrevive ao bate-papo.

Armadilhas
  • Grafo de memória fica obsoleto — Execute prune_stale_links mensalmente
Combine com: memory-service

Combinações

Combine com outros MCPs para 10× de alavancagem

contextplus + github

Use as descobertas de raio de impacto para preencher um problema de rastreamento

Execute get_blast_radius em LegacyAuth e crie um problema de rastreamento GitHub com cada local de chamada como item de lista de verificação.✓ Copiado
contextplus + memory-service

Persistir decisões de longo prazo entre projetos usando mcp-memory-service como armazenamento compartilhado

Sempre que Context+ captura uma nova decisão arquitetônica, espelhe-a para mcp-memory-service.✓ Copiado

Ferramentas

O que este MCP expõe

FerramentaEntradasQuando chamarCusto
get_context_tree root: str, depth?: int Primeira chamada em uma nova sessão de repositório gratuito
get_file_skeleton path: str Visão geral de arquivo barato gratuito
semantic_code_search query: str, k?: int Encontrar código por significado 1 embedding + 1 busca vetorial
semantic_identifier_search query: str Localizar uma função/classe 1 busca vetorial
get_blast_radius symbol: str, file?: str Antes de deletar/renomear gratuito
run_static_analysis path?: str Código não utilizado + erros de tipo gratuito
propose_commit files: Edit[] Aplicar edições com validação gratuito
list_restore_points Ver reversões disponíveis gratuito
undo_change restore_point_id: str Reverter uma edição oculta gratuito
upsert_memory_node content: str, tags?: str[] Salvar um fato durável 1 embedding
search_memory_graph query: str, traversal?: int Recordar decisões passadas 1 busca vetorial

Custo e limites

O que custa rodar

Cota de API
Depende do provedor de embedding: Ollama gratuito, OpenAI ~$0.02/1M tokens
Tokens por chamada
Leituras de esqueleto: 100-500 tokens. Buscas completas: 500-2000
Monetário
Gratuito (código aberto) + custos de embedding se usar provedores em nuvem
Dica
Use Ollama com nomic-embed-text para zero custo marginal.

Segurança

Permissões, segredos, alcance

Escopos mínimos: Leitura/escrita de sistema de arquivos no repositório indexado
Armazenamento de credenciais: Chaves do provedor de embedding via env
Saída de dados: Embeddings vão para seu provedor escolhido (ou permanecem locais com Ollama)
Nunca conceda: Não indexe diretórios com segredos como .env

Solução de problemas

Erros comuns e correções

A indexação é extremamente lenta

Adicione diretórios grandes (node_modules, dist) ao .contextplusignore; use Ollama localmente.

A busca semântica retorna resultados irrelevantes

Sua consulta é muito abstrata — inclua um símbolo concreto ou dica de nome de arquivo.

undo_change falha com 'point not found'

Pontos ocultos são por sessão por padrão. Persistem entre sessões via sinalizador de configuração.

Gramática tree-sitter ausente para um idioma

Verifique a lista de extensões suportadas; arquivos de tipos não suportados são ignorados, mas indexados como texto simples.

Alternativas

contextplus vs. outros

AlternativaQuando usarTroca
mcp-language-serverVocê deseja semântica LSP (renomear, referências) em vez de busca baseada em embeddingSem grafo de memória, sem desfazer oculto
codebase-memory-mcpVocê prefere uma visualização de grafo de conhecimento em vez de esqueletos por arquivoForma de índice diferente; 66 idiomas

Mais

Recursos

📖 Leia o README oficial no GitHub

🐙 Ver issues abertas

🔍 Ver todos os 400+ servidores MCP e Skills