mcp-injector

Comprime bases de código con plegado de cuerpos AST antes de enviar a Claude Code, Cursor o VS Code — reducción de tokens del 57-89% con salida determinista para aciertos de caché KV.

Documentación

mcp-injector

Los asistentes de codificación con IA a menudo fallan porque recuperan el contexto equivocado. En un código base grande, volcar archivos sin procesar en el prompt conduce a alucinaciones, respuestas lentas y altos costos de API.

Foldwork soluciona esto. Es un motor determinista de comprensión de repositorios que pre-indexa todo tu código base en un catálogo SQLite local. Actúa como la Capa de Contexto para tu IDE, sirviendo exactamente las funciones que la IA necesita—ni más, ni menos—maximizando la tasa de éxito en el primer intento y reduciendo el uso de tokens en un 41-89%.

Al combinar el plegado de cuerpos AST (que elimina los cuerpos de las funciones mientras conserva las firmas) con el determinismo canónico (que garantiza salidas byte-idénticas para maximizar los aciertos de caché KV de Anthropic), Foldwork transforma monorepos empresariales masivos en cargas ligeras y amigables con la caché. Esto reduce drásticamente el consumo de tokens, recorta los costos de API hasta en un 90% y elimina el desbordamiento de la ventana de contexto.

Sin nube. Sin telemetría. Se ejecuta completamente en tu máquina.--

Benchmarks de Contexto de Código Base del Mundo Real

Estima el impacto de la compresión de código AST en repositorios de código abierto grandes (calculado a $2.00 / millón de tokens de entrada para Claude Sonnet 5):

RepositorioArchivos TotalesTokens de Contexto CrudoTokens de Contexto ComprimidoReducción de TokensCosto Ahorrado / Ejecución
Django2,3595,554,607596,75289.3%$10.99
Tokio7891,597,813444,16472.2%$3.11
Gin99197,30047,71875.8%$0.39

Los números son reproducibles. Ejecuta la herramienta de benchmark de código abierto en cualquier repositorio público:
repositorio mcp-benchmark


Cómo Se Ve

Ejecuta mcp-benchmark en tu propio proyecto para ver tus ahorros exactos antes de instalar nada:

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).

Herramientas

get_project_map

Devuelve una vista estructural comprimida del espacio de trabajo. Los cuerpos de las funciones se pliegan y se reemplazan con marcadores de posición para reducir el uso de tokens.

  • tier (entero, opcional): Nivel de compresión a aplicar (predeterminado: 2).
  • unfolded_files (matriz de cadenas, opcional): Rutas relativas al espacio de trabajo o patrones glob para archivos que se servirán a resolución completa (sin comprimir).
  • path_prefixes (matriz de cadenas, opcional): Limita el mapa del proyecto a microservicios o paquetes específicos, reduciendo drásticamente la hinchazón de la carga.
  • git_context: siempre incluye la rama actual, los archivos modificados y los commits recientes en la respuesta.
  • secrets_redacted: recuento de credenciales redactadas automáticamente antes de enviarlas a Claude.

Ejemplo de llamada:

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

injector_retrieve

Recupera el código fuente completo sin comprimir de un archivo desde la caché local.

  • path (cadena, obligatorio): La ruta relativa al espacio de trabajo del archivo a recuperar.
  • retrievalKey (cadena, opcional): La clave de recuperación SHA-256 devuelta en una carga comprimida anterior.
  • start_line (entero, opcional): Línea de inicio basada en 1 para la recuperación por rango.
  • end_line (entero, opcional): Línea final basada en 1 para la recuperación por rango.
  • expand_graph (booleano, opcional): Resuelve y agrega dependencias entre archivos (limitado a 50 dependencias de primer grado).

injector_search

Búsqueda de símbolos de texto completo clasificada por BM25 sobre el catálogo SQLite local. Admite lógica booleana FTS5 (p. ej., user AND (auth OR login)).

  • query (cadena, obligatorio): Cadena de consulta FTS5 (términos simples, "frase", prefijo*).
  • limit (entero, opcional): Resultados máximos (predeterminado: 20).
  • search_paths (matriz de cadenas, opcional): Limita la búsqueda a directorios aislados específicos.

injector_diagram

Genera un diagrama de secuencia Mermaid para un símbolo dado recorriendo sus dependencias salientes (se detiene después de 500 nodos).

  • symbol (cadena, obligatorio): El nombre exacto del símbolo.
  • max_depth (entero, opcional): Profundidad máxima de recorrido (predeterminado: 3).
  • include_primitives (booleano, opcional): Incluye tipos básicos (String, boolean) y límites de frameworks.

injector_regex_search

Respaldo para búsquedas de literales exactos o expresiones regulares contra el contenido de los archivos. Omite la tokenización FTS5.

  • query (cadena, obligatorio): La cadena o el patrón de expresión regular a buscar.
  • is_regex (booleano, opcional): Trata la consulta como expresión regular extendida (-E).

injector_write_file

Escribe un archivo completo en disco. CRÍTICO: Previene la pérdida de datos interceptando y rechazando cargas que contengan marcadores de plegado comprimidos.

injector_blast_radius

Analiza el impacto arquitectónico de cambiar un símbolo recorriendo el grafo de dependencias. Admite recorrido direccional entrante y saliente.

injector_git_context

Se integra con el historial de Git local para exponer el contexto de commits, la autoría y la evolución del código directamente en el contexto del LLM.

injector_inspect_table

Habilita capacidades directas de introspección de bases de datos. Actualmente admite PostgreSQL y MySQL. CRÍTICO: Debes iniciar el daemon con la variable de entorno FOLDWORK_DB_DSN configurada con tu cadena de conexión de base de datos (p. ej., postgres://user:pass@localhost:5432/dbname) para activar esta herramienta.

injector_clear_cache

Limpia el índice de caché SQLite y activa una re-indexación completa de arranque en frío.

injector_stats

Devuelve el estado del índice, la relación de compresión actual, el total de archivos indexados y la tasa de aciertos de caché.

injector_sync (Obsoleto)

Las herramientas de lectura esperan automáticamente la indexación pendiente de forma implícita. Nunca necesitas llamar a esta herramienta manualmente.


Instalación Rápida

Instala el daemon localmente y configura tus IDEs:

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

Configura automáticamente Claude Desktop, Cursor IDE, VS Code, Devin Desktop y Antigravity.


Primeros Pasos

Paso 1: Verifica si tu proyecto califica para el nivel gratuito

Ejecuta el CLI de benchmark en tu proyecto para ver tus ahorros de tokens y el recuento de líneas:

mcp-benchmark ./your-project

Si tu proyecto tiene menos de 50,000 líneas, mcp-injector es completamente gratuito. La salida del benchmark muestra tu recuento exacto de líneas.

Paso 2: Instala el daemon

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

El instalador detecta automáticamente Claude Desktop, Cursor, VS Code, Devin Desktop y Antigravity y escribe la configuración MCP automáticamente. Deberías ver una salida 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.

Paso 3: Reinicia tu IDE

El servidor MCP se inicia automáticamente cuando tu IDE se abre. No hay un proceso de daemon separado que gestionar.

Paso 4: Verifica que funciona

En Claude Code o Cursor, pregúntale a Claude:

"Usa get_project_map para mostrarme la estructura de este proyecto"

Claude llamará a la herramienta mcp-injector y devolverá un mapa comprimido de todo tu código base. Si ves nombres de módulos, puntos de entrada e información de dependencias, está funcionando.

Paso 5: Obtén el código fuente completo cuando sea necesario

Cuando Claude necesite ver la implementación completa de una función comprimida, llamará automáticamente a injector_retrieve. También puedes activarlo explícitamente:

"Muéstrame la implementación completa de UserService.java"

Claude recuperará el código fuente sin comprimir desde la caché local.

Edición de Código: DEBES usar la herramienta injector_write_file para editar código. Si Claude intenta escribir marcadores de plegado de vuelta en tu código fuente, el daemon rechazará la carga de forma estricta para protegerte de la pérdida de datos.

Paso 6: Verifica tus ahorros

injector_stats

O pregúntale directamente a Claude: "Llama a injector_stats y dime mis ahorros de tokens actuales."


Casos de Uso del Agente y Uso Avanzado

Ahora que tu IA tiene herramientas deterministas para buscar, recorrer y recuperar código, puedes hacerle preguntas arquitectónicas de alto nivel que normalmente fallan en códigos base sin procesar:

  • Rastrear el flujo de autenticación — Pídele al agente que mapee tu secuencia de inicio de sesión; usará injector_retrieve con expand_graph=true para recorrer las capas de middleware, validación y base de datos.
  • Encontrar código muerto — El agente puede aprovechar injector_blast_radius (recorrido entrante) para identificar funciones no utilizadas y estructuras aisladas.
  • Generar diagramas de arquitectura — Dile a tu IA "Genera un diagrama Mermaid para este flujo de trabajo"; usa injector_diagram para dibujar instantáneamente toda la secuencia de ejecución saliente.
  • Entender grafos de dependencias — Usa injector_blast_radius para ver exactamente qué servicios o paquetes dependen de un módulo central específico.
  • Localizar implementaciones — El agente usa injector_search (indexación de texto completo BM25) para encontrar definiciones de funciones exactas en millones de líneas de código.
  • Refactorizar de forma segura — Antes de hacer un cambio disruptivo, el agente verifica injector_blast_radius para ver cada llamador que se verá afectado.
  • Revisar solicitudes de extracción — Indica al agente que analice tus cambios sin confirmar o el diff de tu rama. Usa injector_git_context para entender los commits recientes y la intención del autor junto con el código.
  • Navegar monorepos grandes — get_project_map le da a la IA una vista comprimida de pájaro de toda tu arquitectura, permitiéndole profundizar en microservicios específicos usando path_prefixes.

Inspeccionando archivos específicos sin comprimir

A veces necesitas que Claude vea la implementación exacta de un archivo mientras mantiene el resto comprimido. Usa el parámetro unfolded_files:

En tu llamada MCP o preguntándole a Claude:

"Obtén el mapa del proyecto pero muéstrame src/auth/handler.go a resolución completa"

Esto pasa "unfolded_files": ["src/auth/handler.go"] a get_project_map. Ese archivo se sirve sin procesar; todo lo demás permanece comprimido.

Los patrones glob también funcionan:

  • "**/*_test.go" - todos los archivos de prueba sin comprimir
  • "src/auth/*.go" - todos los archivos en un directorio sin comprimir

Cambiando de ramas

mcp-injector instala un hook de git post-checkout cuando se ejecuta por primera vez. El cambio de rama activa automáticamente una re-indexación completa. Verás esto en los registros del daemon:

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

Seguridad Primero: Garantía de Cero Fugas

Los equipos de seguridad empresarial a menudo bloquean las herramientas de codificación con IA porque los desarrolladores filtran accidentalmente credenciales sensibles en su ventana de contexto.

mcp-injector resuelve esto localmente. El daemon incluye un filtro de entropía Shannon integrado que analiza todas las cadenas AST y comentarios en tiempo real. Si detecta cadenas de alta entropía (como claves de acceso AWS, claves privadas SSH o contraseñas de bases de datos), las redacta dinámicamente como [REDACTED: high entropy] antes de que salgan de tu máquina. Tus credenciales de API nunca se envían a Anthropic.

Si tu código base tiene una clave de API codificada o una credencial AWS, la respuesta de get_project_map incluirá:

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

Los valores reales se reemplazan con [REDACTED: high entropy]. Los nombres de variables se conservan para que Claude aún entienda la estructura del código.

Configuración manual de MCP

Si el instalador automático no detecta tu IDE, agrega esto a tu configuración 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: VS Code admite "${workspaceFolder}", pero Claude Desktop, Cursor y Devin Desktop requieren una ruta absoluta codificada a tu proyecto.

Ubicaciones de archivos de configuración:

  • 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

Cómo Funciona

  • Análisis Incremental: Foldwork escanea tu repositorio al instante usando un analizador AST de una sola pasada, identificando todas las interfaces, clases y firmas de funciones sin bloquear.
  • Generación de Grafos: Construye deterministamente dos estructuras: un Grafo de Símbolos para definiciones precisas y un Grafo de Dependencias que rastrea las relaciones salientes llamador/llamado.
  • Catálogo Local: Los grafos se almacenan de forma duradera en un catálogo SQLite FTS5 local. La indexación ocurre exactamente una vez por cambio de archivo, lo que significa cero sobrecarga durante los prompts de IA.
  • Servicio MCP: Tu agente de IA se comunica de forma segura con Foldwork a través del Protocolo de Contexto de Modelo, obteniendo sub-grafos en milisegundos sin que el código salga de tu máquina.
  • Consciente de Ramas y Determinista: Cambiar de rama activa la re-indexación incremental automática a través de hooks de git. Al garantizar salidas byte-idénticas entre ejecuciones, Foldwork maximiza los aciertos de caché de prompts KV de Claude.

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


Niveles de Precio

  • Nivel Gratuito: Espacios de trabajo con menos de 50,000 líneas de código fuente en total (todas las herramientas y funciones completamente activas).
  • Nivel Pro ($12/mes o $99/año): Desbloquea tamaños de espacio de trabajo ilimitados e indexación incremental de diffs de alta velocidad.
    Activa Pro en foldwork.dev

Comprueba tu ROI (Panel de Ahorros)

Puedes ejecutar mcp-injector status en tu terminal en cualquier momento. Este panel CLI demuestra visualmente tus ahorros exactos de tokens y los dólares estimados ahorrados, comparando los tokens brutos de tu código base con los tokens comprimidos por AST en tiempo real.


Seguridad

mcp-injector redacta automáticamente secretos y credenciales antes de que lleguen a la ventana de contexto de Claude:

  • Claves de acceso de AWS, PATs de GitHub, claves secretas de Stripe
  • Tokens JWT y tokens de portador
  • Cadenas de alta entropía detectadas mediante análisis de entropía de Shannon
  • Encabezados de claves privadas (-----BEGIN RSA PRIVATE KEY-----)
  • Listo para Aislamiento (Air-Gapped): La validación de la licencia Pro utiliza criptografía Ed25519 estrictamente offline. El daemon nunca realiza una solicitud de red saliente, ni siquiera para verificar tu suscripción.

El contenido redactado se reemplaza con [REDACTED BY MCP-INJECTOR]. Se incluye un recuento de redacciones en la respuesta de get_project_map para que siempre sepas qué se protegió.

Tu código nunca sale de tu máquina. La redacción ocurre localmente antes de la compresión y está siempre activa: no se puede deshabilitar.


Desinstalación

Para eliminar mcp-injector por completo:

# 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)

Qué se Redacta

mcp-injector redacta automáticamente lo siguiente antes de que tu código llegue a Claude:

PatrónEjemplo de coincidencia
IDs de clave de acceso de AWSAKIAIOSFODNN7EXAMPLE
PATs de GitHub (ghp_, ghs_)ghp_aBcDeFg...
Claves secretas de Stripesk_live_abc... / sk_test_abc...
Tokens JWTeyJ...
Encabezados de claves privadas PEM-----BEGIN RSA PRIVATE KEY-----
Cadenas genéricas de alta entropía >20 caracteresDetectado mediante entropía de Shannon
Asignaciones de contraseñas / secretos / tokenspassword = "abc123"

Los valores redactados se reemplazan con [REDACTED BY MCP-INJECTOR]. Las rutas de archivo y los nombres de variables nunca se redactan, solo los valores.


Licencia

Comercial. Nivel gratuito disponible. Código fuente no público.
Contacto de soporte: foldwork@proton.me