mcp-injector

Comprime bases de código com dobramento de corpo AST antes de enviar para Claude Code, Cursor ou VS Code — redução de 57-89% de tokens com saída determinística para acertos de cache KV.

Documentação

mcp-injector

Assistentes de codificação com IA frequentemente falham porque recuperam o contexto errado. Em uma base de código grande, despejar arquivos brutos cegamente no prompt leva a alucinações, respostas lentas e altos custos de API.

A Foldwork resolve isso. É um mecanismo determinístico de compreensão de repositórios que pré-indexa toda a sua base de código em um catálogo SQLite local. Ele atua como a Camada de Contexto para sua IDE, fornecendo exatamente as funções que a IA precisa—nada mais, nada menos—maximizando a taxa de sucesso na primeira tentativa e reduzindo o uso de tokens em 41-89%.

Ao combinar o dobramento de corpo AST (que remove os corpos das funções preservando as assinaturas) com determinismo canônico (que garante saídas byte-idênticas para maximizar os acertos de cache KV da Anthropic), a Foldwork transforma monorepos empresariais massivos em payloads leves e amigáveis ao cache. Isso reduz drasticamente o consumo de tokens, corta os custos de API em até 90% e elimina o estouro da janela de contexto.

Sem nuvem. Sem telemetria. Funciona inteiramente na sua máquina.--

Benchmarks de Contexto de Base de Código do Mundo Real

Estime o impacto da compressão de código AST em grandes repositórios de código aberto (calculado a $2,00 / milhão de tokens de entrada para Claude Sonnet 5):

RepositórioTotal de ArquivosTokens de Contexto BrutosTokens de Contexto ComprimidosRedução de TokensCusto Economizado / Execução
Django2.3595.554.607596.75289,3%$10,99
Tokio7891.597.813444.16472,2%$3,11
Gin99197.30047.71875,8%$0,39

Os números são reproduzíveis. Execute a ferramenta de benchmark de código aberto em qualquer repositório público:
repositório mcp-benchmark


Como É na Prática

Execute mcp-benchmark no seu próprio projeto para ver suas economias exatas antes de instalar qualquer coisa:

mcp-benchmark ./your-project

════════════════════════════════════════════════════════════════════════════════
  mcp-injector Benchmark — context
  Tier 3 compression  |  $2.00/1M tokens  |  2026-07-15T12:00:00Z
════════════════════════════════════════════════════════════════════════════════

FILE                                          RAW TOKENS    COMPRESSED     SAVED   COST SAVED*
──────────────────────────────────────────────────────────────────────────────────────────
cmd/license-gen/main.go                            3,633           214       94%       $0.0072
main.go                                           17,555         1,917       89%       $0.0347
website/api/webhook.go                             2,682           295       89%       $0.0053
main_test.go                                       1,576           353       78%       $0.0031
──────────────────────────────────────────────────────────────────────────────────────────
TOTAL (4 files)                                   25,446         2,779     89.1%       $0.0503

  * Based on $2.00 / 1M input tokens

  💡 Running this codebase through Claude 10×/day costs $0.51/day raw.
     With mcp-injector:  $0.01/day.  You save $0.50/day ($15/month).

Ferramentas

get_project_map

Retorna uma visão geral estrutural comprimida do workspace. Os corpos das funções são dobrados e substituídos por placeholders para reduzir o uso de tokens.

  • tier (inteiro, opcional): Nível de compressão a ser aplicado (padrão: 2).
  • unfolded_files (array de strings, opcional): Caminhos relativos ao workspace ou padrões glob para arquivos a serem servidos em resolução completa (sem compressão).
  • path_prefixes (array de strings, opcional): Escopo do mapa do projeto para microsserviços ou pacotes específicos, reduzindo drasticamente o inchaço do payload.
  • git_context: sempre inclui branch atual, arquivos alterados e commits recentes na resposta.
  • secrets_redacted: contagem de credenciais automaticamente redigidas antes do envio para Claude.

Exemplo de chamada:

{
  "tool": "get_project_map",
  "arguments": {
    "tier": 3,
    "unfolded_files": ["src/auth/handler.go", "**/*_test.go"],
    "path_prefixes": ["src/auth/"]
  }
}

injector_retrieve

Recupera o código-fonte completo e sem compressão de um arquivo do cache local.

  • path (string, obrigatório): O caminho relativo ao workspace do arquivo a ser recuperado.
  • retrievalKey (string, opcional): A chave de recuperação SHA-256 retornada em um payload comprimido anterior.
  • start_line (inteiro, opcional): Linha inicial baseada em 1 para recuperação de intervalo.
  • end_line (inteiro, opcional): Linha final baseada em 1 para recuperação de intervalo.
  • expand_graph (booleano, opcional): Resolve e anexa dependências entre arquivos (limitado a 50 dependências de 1º grau).

injector_search

Busca de símbolos em texto completo classificada por BM25 no catálogo SQLite local. Suporta lógica booleana FTS5 (ex.: user AND (auth OR login)).

  • query (string, obrigatório): String de consulta FTS5 (termos simples, "frase", prefixo*).
  • limit (inteiro, opcional): Máximo de resultados (padrão: 20).
  • search_paths (array de strings, opcional): Escopo da busca para diretórios isolados específicos.

injector_diagram

Gera um diagrama de sequência Mermaid para um símbolo específico percorrendo suas dependências de saída (para após 500 nós).

  • symbol (string, obrigatório): O nome exato do símbolo.
  • max_depth (inteiro, opcional): Profundidade máxima de travessia (padrão: 3).
  • include_primitives (booleano, opcional): Inclui tipos básicos (String, boolean) e limites de frameworks.

injector_regex_search

Fallback para buscas por literal exato ou regex no conteúdo dos arquivos. Ignora a tokenização FTS5.

  • query (string, obrigatório): A string ou padrão regex a ser buscado.
  • is_regex (booleano, opcional): Trata a consulta como regex estendido (-E).

injector_write_file

Escreve um arquivo completo no disco. CRÍTICO: Previne perda de dados interceptando e rejeitando payloads que contenham marcadores de dobramento comprimidos.

injector_blast_radius

Analisa o impacto arquitetural de alterar um símbolo percorrendo o grafo de dependências. Suporta travessia direcional de entrada e saída.

injector_git_context

Integra-se ao histórico Git local para trazer contexto de commits, autoria e evolução do código diretamente para o contexto do LLM.

injector_inspect_table

Habilita capacidades diretas de introspecção de banco de dados. Atualmente suporta PostgreSQL e MySQL. CRÍTICO: Você deve iniciar o daemon com a variável de ambiente FOLDWORK_DB_DSN definida para sua string de conexão do banco de dados (ex.: postgres://user:pass@localhost:5432/dbname) para ativar esta ferramenta.

injector_clear_cache

Limpa o cache do índice SQLite e dispara uma reindexação completa de cold-start.

injector_stats

Retorna o status do índice, a taxa de compressão atual, o total de arquivos indexados e a taxa de acerto do cache.

injector_sync (Obsoleto)

As ferramentas de leitura automaticamente aguardam a indexação pendente implicitamente. Você nunca precisa chamar esta ferramenta manualmente.


Instalação Rápida

Instale o daemon localmente e configure suas IDEs:

curl -fsSL https://foldwork.dev/install | sh

Configura automaticamente Claude Desktop, Cursor IDE, VS Code, Devin Desktop e Antigravity.


Primeiros Passos

Passo 1: Verifique se seu projeto se qualifica para o nível gratuito

Execute o CLI de benchmark no seu projeto para ver suas economias de tokens e contagem de linhas:

mcp-benchmark ./your-project

Se o seu projeto tiver menos de 50.000 linhas, o mcp-injector é completamente gratuito. A saída do benchmark mostra sua contagem exata de linhas.

Passo 2: Instale o daemon

curl -fsSL https://foldwork.dev/install | sh

O instalador detecta automaticamente Claude Desktop, Cursor, VS Code, Devin Desktop e Antigravity e escreve a configuração MCP automaticamente. Você deve ver uma saída como:

* mcp-injector v0.2.0 installed to /usr/local/bin/mcp-injector
* Claude Desktop configured
* Cursor configured
Restart your IDE and mcp-injector will be active.

Passo 3: Reinicie sua IDE

O servidor MCP inicia automaticamente quando sua IDE é aberta. Nenhum processo daemon separado para gerenciar.

Passo 4: Verifique se está funcionando

No Claude Code ou Cursor, pergunte ao Claude:

"Use get_project_map para me mostrar a estrutura deste projeto"

Claude chamará a ferramenta mcp-injector e retornará um mapa comprimido de toda a sua base de código. Se você vir nomes de módulos, pontos de entrada e informações de dependência—está funcionando.

Passo 5: Obtenha o código-fonte completo quando necessário

Quando Claude precisar ver a implementação completa de uma função comprimida, ele automaticamente chama injector_retrieve. Você também pode acionar isso explicitamente:

"Mostre-me a implementação completa de UserService.java"

Claude buscará o código-fonte sem compressão do cache local.

Editando Código: Você DEVE usar a ferramenta injector_write_file para editar código. Se Claude tentar escrever placeholders dobrados de volta no seu código-fonte, o daemon rejeitará o payload para protegê-lo de perda de dados.

Passo 6: Verifique suas economias

injector_stats

Ou pergunte diretamente ao Claude: "Chame injector_stats e me diga minhas economias atuais de tokens."


Casos de Uso do Agente & Uso Avançado

Agora que sua IA tem ferramentas determinísticas para buscar, percorrer e recuperar código, você pode fazer perguntas arquiteturais de alto nível que geralmente falham em bases de código brutas:

  • Rastreie o fluxo de autenticação — Peça ao agente para mapear sua sequência de login; ele usará injector_retrieve com expand_graph=true para percorrer camadas de middleware, validação e banco de dados.
  • Encontre código morto — O agente pode aproveitar injector_blast_radius (travessia de entrada) para identificar funções não utilizadas e structs isolados.
  • Gere diagramas de arquitetura — Diga à sua IA "Gere um diagrama Mermaid para este fluxo de trabalho"; ela usa injector_diagram para desenhar instantaneamente toda a sequência de execução de saída.
  • Entenda grafos de dependência — Use injector_blast_radius para ver exatamente quais serviços ou pacotes dependem de um módulo central específico.
  • Localize implementações — O agente usa injector_search (indexação de texto completo BM25) para encontrar definições exatas de funções em milhões de linhas de código.
  • Refatore com segurança — Antes de fazer uma alteração disruptiva, o agente verifica injector_blast_radius para ver todos os chamadores que serão impactados.
  • Revise pull requests — Instrua o agente a analisar suas alterações não commitadas ou o diff do branch. Ele usa injector_git_context para entender commits recentes e a intenção do autor junto com o código.
  • Navegue em monorepos grandes — get_project_map dá à IA uma visão comprimida de cima para baixo de toda a sua arquitetura, permitindo que ela aprofunde em microsserviços específicos usando path_prefixes.

Inspecionando arquivos específicos sem compressão

Às vezes você precisa que Claude veja a implementação exata de um arquivo enquanto mantém o resto comprimido. Use o parâmetro unfolded_files:

Na sua chamada MCP ou perguntando ao Claude:

"Obtenha o mapa do projeto, mas mostre src/auth/handler.go em resolução completa"

Isso passa "unfolded_files": ["src/auth/handler.go"] para get_project_map. Esse arquivo é servido bruto; todo o resto permanece comprimido.

Padrões glob também funcionam:

  • "**/*_test.go" - todos os arquivos de teste sem compressão
  • "src/auth/*.go" - todos os arquivos em um diretório sem compressão

Alternando branches

O mcp-injector instala um hook git post-checkout quando é executado pela primeira vez. A troca de branch automaticamente dispara uma reindexação completa. Você verá isso nos logs do daemon:

[mcp-injector] Branch switched to feature/auth-refactor, re-indexing...
[mcp-injector] Re-index complete in 4.2s (47,293 lines indexed)

Segurança em Primeiro Lugar: Garantia de Zero Vazamento

Equipes de segurança empresarial frequentemente bloqueiam ferramentas de codificação com IA porque desenvolvedores vazam acidentalmente credenciais sensíveis em sua janela de contexto.

O mcp-injector resolve isso localmente. O daemon inclui um filtro de entropia Shannon embutido que analisa todas as strings e comentários AST em tempo real. Se ele detectar strings de alta entropia (como AWS Access Keys, chaves privadas SSH ou senhas de banco de dados), ele as redige dinamicamente como [REDACTED: high entropy] antes que elas saiam da sua máquina. Suas credenciais de API nunca são enviadas para a Anthropic.

Se sua base de código tiver uma chave de API hardcoded ou credencial AWS, a resposta de get_project_map incluirá:

"secrets_redacted": 2,
"files_with_redactions": ["config/db.go", "scripts/deploy.sh"]

Os valores reais são substituídos por [REDACTED: high entropy]. Os nomes das variáveis são preservados para que Claude ainda entenda a estrutura do código.

Configuração MCP manual

Se o instalador automático não detectar sua IDE, adicione isto à sua configuração MCP manualmente:

{
  "mcpServers": {
    "mcp-injector": {
      "command": "/usr/local/bin/mcp-injector",
      "env": {
        "MCP_WORKSPACE": "/absolute/path/to/your/project",
        "FOLDWORK_DB_DSN": "postgres://user:pass@localhost:5432/dbname"
      }
    }
  }
}

Nota: O VS Code suporta "${workspaceFolder}", mas Claude Desktop, Cursor e Devin Desktop exigem um caminho absoluto hardcoded para seu projeto.

Locais dos arquivos de configuração:

  • Claude Desktop (Mac): ~/Library/Application Support/Claude/claude_desktop_config.json
  • Claude Desktop (Windows): %APPDATA%\Claude\claude_desktop_config.json
  • Claude Desktop (Linux): ~/.config/Claude/claude_desktop_config.json
  • Cursor: ~/.cursor/mcp.json
  • VS Code: .vscode/mcp.json
  • Devin Desktop: ~/.codeium/windsurf/mcp_config.json
  • Antigravity: ~/.gemini/antigravity/mcp_config.json

Como Funciona

  • Parsing Incremental: A Foldwork escaneia seu repositório instantaneamente usando um parser AST de passagem única, identificando todas as interfaces, classes e assinaturas de funções sem bloqueio.
  • Geração de Grafos: Ela constrói deterministicamente duas estruturas: um Grafo de Símbolos para definições precisas e um Grafo de Dependências rastreando relacionamentos de chamador/callee de saída.
  • Catálogo Local: Os grafos são armazenados de forma durável em um catálogo SQLite FTS5 local. A indexação acontece exatamente uma vez por alteração de arquivo, significando zero overhead durante prompts de IA.
  • Serviço MCP: Seu agente de IA se comunica com segurança com a Foldwork via Model Context Protocol, buscando sub-grafos em milissegundos sem que o código saia da sua máquina.
  • Ciente de Branch e Determinístico: Trocar de branch dispara reindexação incremental automática via hooks git. Ao garantir saídas byte-idênticas entre execuções, a Foldwork maximiza os acertos de cache de prompt KV do Claude.

Suporta: Go, Python, TypeScript, JavaScript, Java, C++, C, C#, Rust.


Níveis de Preço

  • Nível Gratuito: Workspaces com menos de 50.000 linhas de código no total (todas as ferramentas e recursos totalmente ativos).
  • Nível Pro ($12/mês ou $99/ano): Desbloqueia tamanhos de workspace ilimitados e indexação incremental de diffs em alta velocidade.
    Ative o Pro em foldwork.dev

Verifique seu ROI (Painel de Economia)

Você pode executar mcp-injector status no seu terminal a qualquer momento. Este painel CLI prova visualmente sua economia exata de tokens e os dólares estimados economizados, comparando os tokens brutos do seu código com os tokens comprimidos via AST em tempo real.


Segurança

O mcp-injector redige automaticamente segredos e credenciais antes que eles cheguem à janela de contexto do Claude:

  • Chaves de acesso AWS, PATs do GitHub, chaves secretas do Stripe
  • Tokens JWT e tokens bearer
  • Strings de alta entropia detectadas via análise de entropia de Shannon
  • Cabeçalhos de chaves privadas (-----BEGIN RSA PRIVATE KEY-----)
  • Pronto para Air-Gapped: A validação da licença Pro usa criptografia Ed25519 estritamente offline. O daemon nunca faz uma requisição de rede de saída, nem mesmo para verificar sua assinatura.

O conteúdo redigido é substituído por [REDACTED BY MCP-INJECTOR]. Uma contagem de redações é incluída na resposta get_project_map para que você sempre saiba o que foi protegido.

Seu código nunca sai da sua máquina. A redação acontece localmente antes da compressão e está sempre ativa — não pode ser desativada.


Desinstalação

Para remover o mcp-injector completamente:

# Remove binary
sudo rm /usr/local/bin/mcp-injector

# Remove index cache and logs
rm -rf ~/.mcp-injector/

# Remove from IDE MCP config (edit manually):
# Claude Desktop (Linux): ~/.config/Claude/claude_desktop_config.json
# Claude Desktop (macOS): ~/Library/Application Support/Claude/claude_desktop_config.json
# Cursor: ~/.cursor/mcp.json
# VS Code: .vscode/mcp.json
# Devin Desktop: ~/.codeium/windsurf/mcp_config.json
# Antigravity: ~/.gemini/antigravity/mcp_config.json
# (Remove the "mcp-injector" entry from mcpServers)

O Que É Redigido

O mcp-injector redige automaticamente o seguinte antes que seu código chegue ao Claude:

PadrãoExemplo de Correspondência
IDs de chave de acesso AWSAKIAIOSFODNN7EXAMPLE
PATs do GitHub (ghp_, ghs_)ghp_aBcDeFg...
Chaves secretas do Stripesk_live_abc... / sk_test_abc...
Tokens JWTeyJ...
Cabeçalhos de chaves privadas PEM-----BEGIN RSA PRIVATE KEY-----
Strings genéricas de alta entropia >20 caracteresDetectado via entropia de Shannon
Atribuições de senha / segredo / tokenpassword = "abc123"

Valores redigidos são substituídos por [REDACTED BY MCP-INJECTOR]. Caminhos de arquivo e nomes de variáveis nunca são redigidos — apenas os valores.


Licença

Comercial. Nível gratuito disponível. Código-fonte não público.
Contato de Suporte: foldwork@proton.me