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):
| Repositorio | Archivos Totales | Tokens de Contexto Crudo | Tokens de Contexto Comprimido | Reducción de Tokens | Costo Ahorrado / Ejecución |
|---|---|---|---|---|---|
| Django | 2,359 | 5,554,607 | 596,752 | 89.3% | $10.99 |
| Tokio | 789 | 1,597,813 | 444,164 | 72.2% | $3.11 |
| Gin | 99 | 197,300 | 47,718 | 75.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_retrieveconexpand_graph=truepara 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_diagrampara dibujar instantáneamente toda la secuencia de ejecución saliente. - Entender grafos de dependencias — Usa
injector_blast_radiuspara 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_radiuspara 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_contextpara entender los commits recientes y la intención del autor junto con el código. - Navegar monorepos grandes —
get_project_maple da a la IA una vista comprimida de pájaro de toda tu arquitectura, permitiéndole profundizar en microservicios específicos usandopath_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ón | Ejemplo de coincidencia |
|---|---|
| IDs de clave de acceso de AWS | AKIAIOSFODNN7EXAMPLE |
| PATs de GitHub (ghp_, ghs_) | ghp_aBcDeFg... |
| Claves secretas de Stripe | sk_live_abc... / sk_test_abc... |
| Tokens JWT | eyJ... |
| Encabezados de claves privadas PEM | -----BEGIN RSA PRIVATE KEY----- |
| Cadenas genéricas de alta entropía >20 caracteres | Detectado mediante entropía de Shannon |
| Asignaciones de contraseñas / secretos / tokens | password = "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