Qartez MCP

Servidor MCP de inteligencia de código: PageRank, radio de explosión, co-cambio, hotspots, detección de clones en 34 lenguajes en un solo binario de Rust.

Documentación

Qartez

Qartez MCP

Visión de rayos X para tu código base: construido para agentes de IA, no para humanos.

El primer servidor de inteligencia de código diseñado desde el primer día para ser
consumido por modelos de lenguaje, no leído por personas. Reduce el uso de tokens de IA en un ~94%.

Inicio rápido · 43 herramientas · Guard · Benchmarks · Comparación · 37 lenguajes · CLI · Contribuciones · Seguridad · Registro de cambios

License MSRV 1.88 37 languages 43 MCP tools


Por qué existe esto

grep, find, cat y ls se inventaron en la década de 1970 para que los humanos leyeran un archivo a la vez en una terminal. Medio siglo después, tu asistente de IA todavía los usa: escaneando archivos byte a byte, releyendo los mismos directorios en cada pregunta, adivinando qué es importante y quemando tus tokens en trabajo para el que esas herramientas nunca fueron diseñadas.

Qartez es otra especie de herramienta. No es un envoltorio de grep. Es un grafo de conocimiento precomputado de tu repositorio: símbolos, imports, aristas de llamadas, radio de explosión, PageRank, co-cambio de git, complejidad ciclomática: servido a cualquier LLM a través del Protocolo de Contexto de Modelo. El agente deja de leer tu código base y empieza a consultarlo.

Piénsalo como el primer órgano sensorial diseñado específicamente para agentes de código. Grep ve una línea a la vez. Qartez ve la forma completa del código base de un vistazo.

Cada vez que tu asistente de IA toca código, ocurren tres cosas costosas:

1. Lee los mismos archivos una y otra vez. Sin memoria del repositorio. Cada pregunta empieza desde cero. Pagas por cada token, una y otra vez.

2. No puede ver qué se romperá. Tu asistente edita utils.ts sin saber que otros 14 archivos lo importan. Te enteras en CI. O en producción.

3. Desperdicia tokens buscando cosas. "¿Dónde está definido handleRequest?" se convierte en Grep en 200 archivos, Read en 5 candidatos y 1.600 tokens quemados antes de encontrar la respuesta. Qartez responde eso en 50 tokens.

La solución no es un modelo más inteligente. Es un índice más inteligente.


Inicio rápido

Soporte de plataformas: macOS 13+, Ubuntu 22.04+ (y otras distribuciones Linux modernas, gnu o musl), Windows (PowerShell nativo 5.1+/7+) y WSL 2. Arquitecturas: x86_64 y arm64. MSRV de Rust es 1.88: solo se necesita para plataformas no compatibles o la vía de escape de --from-source.

Instalación (recomendada)

Elige el comando de una línea para tu sistema operativo. Ambos comandos hacen lo mismo: descargan un binario precompilado, verifican su SHA-256 contra el SHA256SUMS de la versión, instalan los tres binarios (qartez, qartez-guard, qartez-setup) y lanzan qartez-setup en modo no interactivo para configurar cada IDE compatible con MCP que detecte (incluidos los hooks de protección de modificaciones para Claude Code).

macOS / Linux / WSL 2: instalador bash, los binarios se instalan en ~/.local/bin/:

curl -sSfL https://qartez.dev/install | sh

Windows (PowerShell nativo 5.1+/7+): instalador PowerShell, los binarios se instalan en %LOCALAPPDATA%\Programs\qartez\:

powershell -ExecutionPolicy Bypass -c "iwr https://raw.githubusercontent.com/kuberstar/qartez-mcp/main/install.ps1 -useb | iex"

Las plataformas no compatibles (p. ej., linux-musl arm64 sin un artefacto publicado) recurren automáticamente a un cargo build local; pasa --from-source (bash) o -FromSource (PowerShell) para forzar esa ruta. El MSRV de Rust 1.88 solo se requiere para esa alternativa.

Abre cualquier proyecto en tu IDE: Qartez lo indexa automáticamente al iniciar la sesión. No se necesita ningún paso manual. El observador de archivos mantiene el índice actualizado mientras editas.

Alternativa: instalar desde el código fuente (todas las plataformas)
git clone https://github.com/kuberstar/qartez-mcp.git
cd qartez-mcp
make deploy

¿Quieres inspeccionar el script de instalación antes de pasarlo a sh? Léelo en GitHub: install.sh (bash) o install.ps1 (PowerShell).

Instalación interactiva, instalación dirigida y otras opciones

Funciona con 19 editores y agentes

Un solo binario de Rust (qartez-setup) detecta y configura cada editor compatible. Sin scripts de shell por editor, sin JSON de copiar y pegar.

make deploy                          # Configure every detected IDE (non-interactive)
make setup                           # Same, but interactive checkbox prompt
qartez-setup --ide cursor,zed       # Configure specific IDEs only
make uninstall                       # Remove qartez from every IDE and delete binaries

Compatible de serie: Claude Code, Claude Desktop, Gemini, Cursor, Windsurf, Kiro, Zed, Continue.dev, Copilot CLI, Amazon Q, Amp, Cline, Roo Code, Goose, Warp, Augment, OpenCode, Codex CLI, Antigravity.

Instalación dirigida

qartez-setup --ide cursor,zed,claude

Configura solo un subconjunto específico de IDEs. Rutas detectadas:

IDERuta de configuración
Claude Code~/.claude/settings.json
Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.json
Gemini~/.gemini/settings.json
Cursor~/.cursor/mcp.json
Windsurf~/.codeium/windsurf/mcp_config.json
Kiro~/.kiro/settings/mcp.json
Zed~/.config/zed/settings.json
Continue.dev~/.continue/config.yaml
Copilot CLI~/.copilot/mcp-config.json
Amazon Q~/.aws/amazonq/mcp.json
Amp~/.config/amp/settings.json
ClineAlmacenamiento global de VS Code saoudrizwan.claude-dev/settings/cline_mcp_settings.json
Roo CodeAlmacenamiento global de VS Code rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
Goose~/.config/goose/config.yaml
Warp~/.warp/mcp_settings.json
Augment~/.augment/settings.json
OpenCode~/.config/opencode/opencode.json (o opencode.jsonc)
Codex CLI~/.codex/config.toml
Antigravity~/.gemini/antigravity/mcp_config.json

Toda ruta de instalación es idempotente y respalda la configuración existente.

Habilitar Qartez en un proyecto

Qartez indexa automáticamente al iniciar la sesión. Para re-indexación manual:

qartez --root /path/to/your/project --reindex

Claude Desktop (manual)

{
  "mcpServers": {
    "qartez": {
      "command": "/absolute/path/to/qartez",
      "args": []
    }
  }
}

Desinstalación

make uninstall

Elimina Qartez de cada IDE configurado y borra los binarios.


Qué hace Qartez

Qartez construye un grafo de conocimiento de tu código base, una vez, y lo sirve a cualquier asistente de IA a través de MCP. En lugar de escanear archivos desde cero en cada pregunta, tu asistente consulta un índice precomputado que sabe:

  • Qué archivos importan más (PageRank en el grafo de imports)
  • Qué se rompe si cambias un archivo (análisis de radio de explosión)
  • Qué archivos cambian siempre juntos (minería de co-cambio de git)
  • Qué funciones son las más peligrosas de tocar (complejidad ciclomática x acoplamiento x cambios)
  • Dónde está definido cada símbolo, quién lo usa y quién lo llama
  • Qué bloques de código están duplicados (hash estructural de forma de AST)
  • Qué límites de arquitectura están violando los imports
  • Qué tipos implementan un trait/interfaz, y viceversa

El resultado: tu IA trabaja más rápido, usa menos tokens, refactoriza de forma segura y deja de hacer cambios a ciegas en archivos de carga crítica.

Antes y después

TareaSin QartezCon Qartez
"¿Dónde está definido QartezServer?"Grep en 200 archivos, Read de candidatos. 1.490 tokens.qartez_find. 52 tokens.
"¿Qué se rompe si cambio storage/read.rs?"BFS grep desde los imports, profundidad 2. 9.243 tokens.qartez_impact: importadores directos + transitivos + co-cambio. 352 tokens.
"Esquema de src/server/mod.rs (96 símbolos)"Lectura completa del archivo de 300KB. 77.843 tokens.qartez_outline con firmas. 3.009 tokens.
"Encuentra todas las exportaciones muertas"Imposible sin herramientas.qartez_unused: pre-materializado, instantáneo. 468 tokens.
"¿Qué funciones son las más arriesgadas de refactorizar?"Nada que consultar.qartez_hotspots: complejidad x PageRank x cambios.

Las 43 herramientas

Piénsalas como la biblioteca estándar para la comprensión de código por IA. Cada una reemplaza un flujo de trabajo humano de varios pasos con una única llamada eficiente en tokens que el agente puede razonar.

Las herramientas están organizadas en niveles con divulgación progresiva. Las herramientas principales están siempre disponibles. Se pueden desbloquear niveles adicionales bajo demanda mediante qartez_tools enable: ["analysis"] (o "all").

Principales (siempre disponibles)

HerramientaQué hace
qartez_mapEmpieza aquí. Esqueleto del proyecto clasificado por importancia. PageRank, exportaciones, radios de explosión. Potencia por archivos o términos para enfocarte en lo que estás trabajando.
qartez_findSalta a la definición de un símbolo por nombre exacto. Archivo, rango de líneas, firma, visibilidad. Sin escaneo.
qartez_grepBúsqueda FTS5 en símbolos indexados. Coincidencia de prefijos, respaldo de regex, búsqueda opcional en el cuerpo.
qartez_readLee el código fuente de uno o más símbolos con números de línea. Sin escaneo de archivos. Salta directamente al símbolo.
qartez_outlineTabla de contenidos para cualquier archivo: cada símbolo agrupado por tipo, con firmas.
qartez_impactLlámalo antes de editar cualquier archivo importante. Muestra importadores directos, dependientes transitivos y socios de co-cambio. Todo lo que podría romperse.
qartez_depsGrafo de dependencias de un archivo: qué importa, qué lo importa.
qartez_statsPanel del código base: archivos, símbolos, aristas por lenguaje, archivos más conectados.

Análisis (desbloquear mediante qartez_tools)

HerramientaQué hace
qartez_refsRastrea cada uso de un símbolo en todo el código base, con cadenas transitivas opcionales.
qartez_callsJerarquía de llamadas: quién llama a esta función y qué llama ella.
qartez_cochangeArchivos que históricamente cambian juntos en git. Acoplamiento lógico invisible para el grafo de importaciones.
qartez_contextConstructor de contexto inteligente: dados los archivos que planeas modificar, devuelve el conjunto óptimo de archivos relacionados para leer primero.
qartez_unusedDetector de código muerto: símbolos exportados con cero importadores, pre-materializados en tiempo de indexación.
qartez_diff_impactImpacto por lotes para un rango de git diff. Pasa un revspec como main..HEAD para obtener archivos modificados con PageRank, radio de explosión unificado, puntos de convergencia y omisiones de co-cambio. Una llamada reemplaza N llamadas a qartez_impact + qartez_cochange.
qartez_hotspotsEl radar de refactorización. Clasifica archivos y funciones por puntuación de hotspot = complejidad ciclomática × PageRank × (1 + churn). Apunta directamente al código de mayor riesgo del repositorio.
qartez_clonesDetección estructural de clones de código mediante hash de forma AST (identificadores, literales y comentarios se normalizan para eliminar ruido). Encuentra lógica duplicada que el revisor humano jamás detectaría.
qartez_boundariesAplicación de límites de arquitectura. Declara "estos módulos no pueden importar aquellos" en .qartez/boundaries.toml y recibe cada arista infractora. suggest=true genera una configuración inicial a partir del clustering de Leiden.
qartez_hierarchyConsultas de jerarquía de tipos: encuentra todos los tipos que implementan un trait/interfaz, o todos los traits/interfaces que implementa un tipo. Funciona en Rust, TypeScript, Java, Python y Go.
qartez_trendTendencia de complejidad a lo largo de la historia de git: rastrea cómo evolucionó la complejidad ciclomática de una función commit a commit. Marca funciones que están CRECIENDO, ESTABLES o REDUCIÉNDOSE.
qartez_securityEscáner de seguridad con 13 reglas integradas. Coincidencia de patrones basada en regex puntuada por PageRank para priorizar archivos de alto impacto. Reglas personalizadas mediante .qartez/security.toml. Filtros por severidad (bajo/medio/alto/crítico) y categoría.
qartez_smellsDetector de malos olores de código: encuentra funciones dios (alta complejidad + cuerpo largo), listas largas de parámetros y feature envy (métodos que usan más otro tipo que el propio). Umbrales ajustables.
qartez_healthLista de correcciones priorizada. Cruza qartez_hotspots con qartez_smells y clasifica archivos como Crítico (hotspot + mal olor), Alto (solo hotspot) o Medio (solo mal olor). Cada entrada incluye una técnica de refactorización concreta sugerida.
qartez_refactor_planPlan de refactorización ordenado y anotado con seguridad para un archivo. Cada paso nombra una técnica (Extract Method, Introduce Parameter Object), una categoría estimada de impacto de CC (Alto/Medio/Bajo) con un rango, y señales de seguridad derivadas del impacto, la cobertura de pruebas y el número de llamadores.
qartez_test_gapsAnálisis de brechas de cobertura de pruebas mediante el grafo de importaciones. Tres modos: gaps clasifica archivos fuente sin probar por riesgo, map muestra las asignaciones de prueba a fuente, suggest recomienda pruebas a ejecutar para un rango de git diff.
qartez_knowledgeAnálisis de bus-factor. Autoría basada en git-blame a nivel de archivo y módulo. Expone archivos y módulos de autor único donde el conocimiento está concentrado en un solo contribuyente.
qartez_blameGit blame con ámbito de símbolo. Resuelve un nombre de función/tipo a su rango de líneas y culpa solo esas líneas: commits/autores por hunk, o un resumen por autor con el último commit de cada uno.
qartez_semanticBúsqueda semántica con un modelo de embeddings local. Consultas en lenguaje natural clasificadas por similitud híbrida FTS5 + vectorial (RRF). Requiere la característica cargo semantic y una descarga única del modelo (~270 MB).
qartez_pathCamino más corto de llamada/referencia entre dos símbolos. BFS hacia adelante sobre el grafo de referencias de símbolos devuelve la cadena ordenada de símbolos/archivos más un recuento de caminos más cortos alternativos. Filtra aristas por kind (call o type).

Refactor (desbloquear mediante qartez_tools)

HerramientaQué hace
qartez_renameRenombra un símbolo en todo el código base. Definición, importaciones, todos los usos. Vista previa por defecto, apply=true para ejecutar.
qartez_moveMueve un símbolo a otro archivo y reescribe todas las rutas de importación. Una sola llamada MCP.
qartez_rename_fileRenombra un archivo y actualiza cada importación que apunta a él.
qartez_replace_symbolReemplaza todo el rango de líneas de un símbolo con código fuente nuevo. El llamador proporciona el reemplazo completo, incluida la firma; vista previa por defecto, apply=true ejecuta atómicamente.
qartez_insert_before_symbolInserta código nuevo inmediatamente antes de un símbolo ancla. La búsqueda del ancla pasa por la tabla de símbolos indexada: no hace falta el contexto circundante exacto.
qartez_insert_after_symbolInserta código nuevo inmediatamente después de un símbolo ancla. Misma direccionamiento basado en ancla que qartez_insert_before_symbol.
qartez_safe_deleteElimina un símbolo después de informar cada archivo que aún lo importa. Se niega a aplicar si existen importadores, a menos que force=true.

Meta (desbloquear mediante qartez_tools)

HerramientaQué hace
qartez_projectDetecta automáticamente tu cadena de herramientas (Cargo, npm/bun/yarn, Go, Python, Make, Gradle) y ejecuta test/build/lint/typecheck mediante una sola herramienta.
qartez_wikiGenera una wiki de arquitectura en markdown usando detección de comunidades de Leiden sobre el grafo de importaciones. Divide los archivos en clústeres, nombra cada uno y emite ARCHITECTURE.md con aristas entre clústeres.
qartez_workspaceAñade o elimina dominios de workspace en tiempo de ejecución. Registra directorios externos bajo un alias personalizado en .qartez/workspace.toml, los indexa y los purga al eliminarlos.
qartez_add_rootRegistra una raíz de proyecto adicional en tiempo de ejecución. Indexa el directorio, actualiza pagerank/co-cambio y engancha un observador de archivos; el alias es opcional (derivado del nombre base de la ruta) y la persistencia es conmutable para raíces efímeras.
qartez_list_rootsLista cada raíz de proyecto que el servidor rastrea actualmente con su alias, origen (cli/config/runtime), estado de adjunto del observador, recuento de archivos y última marca de tiempo de indexación.
qartez_maintenanceInspecciona y compacta .qartez/index.db. La acción por defecto stats informa tamaños de DB / WAL, tablas principales, huella del workspace actual y última marca de tiempo de reindexación completa. Otras acciones: checkpoint, optimize_fts (fusionar segmentos FTS5), vacuum_incremental, vacuum, convert_incremental (conversión de una sola vez a auto_vacuum=INCREMENTAL), purge_stale (eliminar filas de raíces que ya no están en el workspace). Usa esto en una DB inflada en lugar de borrar .qartez/index.db manualmente.

Gestión de niveles

HerramientaQué hace
qartez_toolsSiempre visible. Lista todos los niveles y sus herramientas. Usa enable: ["analysis"], enable: ["all"] o disable: ["refactor"] para controlar qué herramientas se exponen al agente. Las herramientas principales no se pueden deshabilitar.

Prompts de flujo de trabajo

Seis recetas listas para usar que encadenan las herramientas anteriores en el orden correcto. Invócalos como comandos de barra en Claude Code o en cualquier cliente MCP que admita prompts.

PromptQué hace
/qartez_review <file>Revisión de código: radio de explosión, esquema, referencias, co-cambio — luego una lista de verificación enfocada.
/qartez_architecture [top_n]Resumen de arquitectura en un minuto basado en datos de PageRank.
/qartez_debug <symbol>Definición + llamadores + calorías + referencias en una sola pasada.
/qartez_onboard [area]Lista de lectura de cinco archivos para nuevos contribuyentes, clasificada por importancia.
/qartez_pre_merge <files>Verificación de seguridad previa a la fusión con recomendación de ship/hold.
/qartez_arch_review [focus]Auditoría de riesgo de arquitectura: hubs frágiles, límites enredados, superficie de seguridad, deuda de complejidad.

Protección de modificación

Qartez incluye una red de seguridad que impide que tu IA edite a ciegas archivos críticos para la carga.

El binario qartez-guard se engancha al sistema PreToolUse de Claude Code y bloquea Edit/Write/MultiEdit en cualquier archivo que supere un umbral de PageRank o de radio de explosión — hasta que la IA llame a qartez_impact primero para reconocer el riesgo.

Cómo funciona:

  1. La IA intenta editar src/server/mod.rs
  2. El guard comprueba: PageRank 0.23 (> umbral 0.05), radio de explosión 10 (>= umbral 10)
  3. La edición es bloqueada con una explicación que lista qué umbrales se activaron
  4. La IA llama a qartez_impact file_path=src/server/mod.rs — revisa el radio de explosión
  5. El guard concede una ventana de edición de 10 minutos para ese archivo
  6. La IA reintenta la edición — permitida

Cero configuración. Ajustable mediante QARTEZ_GUARD_PAGERANK_MIN, QARTEZ_GUARD_BLAST_MIN, QARTEZ_GUARD_ACK_TTL_SECS, o deshabilitada con QARTEZ_GUARD_DISABLE=1.


Benchmarks

No afirmaciones. Medidos. Reproducibles. Ejecuta make bench y verifícalo tú mismo.

Titular

Ahorro agregado de tokens vs Glob + Grep + Read + git log: +91.8% (suma de MCP 38,789 / suma de no-MCP 472,109 tokens en todos los 28 escenarios del auto-bench de Qartez. Sub-conteo conservador: 10 de 28 escenarios tienen una simulación no-MCP incompleta — esas filas siguen contribuyendo sus tokens MCP a ambas sumas. En los 18 escenarios con una comparación justa token a token el ahorro sube a +94.5%.)

Calidad evaluada por LLM-juez (claude-opus-4-6): MCP 8.3 / 10 vs no-MCP 4.3 / 10 en cinco ejes (corrección, completitud, usabilidad, basamiento, concisión), n=28.

Contexto de coste por sesión. Una sesión típica de Claude Code comienza con ~20,000 tokens de sobrecarga de prompt. Una sola ejecución de make bench ahorra ~433,000 tokens — ~21 sesiones vacías de presupuesto recuperadas, solo por enrutar preguntas a través de la herramienta correcta.

Desglose por herramienta (auto-bench de Rust)

18 herramientas con simulaciones no-MCP completas (comparación justa token a token):

HerramientaTokens MCPSin MCPAhorroAceleración
qartez_cochange9214,622+99.4%2x
qartez_context1074,489+97.6%533x
qartez_find521,490+96.5%210x
qartez_impact3529,243+96.2%140x
qartez_outline3,00977,843+96.1%5x
qartez_project681,394+95.1%0x
qartez_unused4686,750+93.1%22x
qartez_deps1662,286+92.7%118x
qartez_map87674+87.1%1x
qartez_rename_file27185+85.4%211x
qartez_grep127763+83.4%72x
qartez_stats155848+81.7%1x
qartez_move161701+77.0%159x
qartez_calls5642,409+76.6%3x
qartez_refs201692+71.0%26x
qartez_read150495+69.7%100x
qartez_hierarchy7352,056+64.3%127x
qartez_rename439648+32.3%11x

10 herramientas analíticas adicionales no tienen equivalente grep/lectura significativo — resuelven problemas que la pila no-MCP no puede resolver en absoluto:

qartez_hotspots, qartez_clones, qartez_smells, qartez_test_gaps, qartez_wiki, qartez_boundaries, qartez_trend, qartez_knowledge, qartez_diff_impact, qartez_security.

Bench multi-idioma

make bench-all ejecuta el mismo arnés de 28 escenarios contra cinco fixtures OSS fijados — colinhacks/zod (TypeScript), spf13/cobra (Go), encode/httpx (Python), FasterXML/jackson-core (Java), más el auto-bench de Qartez (Rust) — y luego emite un resumen entre idiomas a reports/benchmark-<lang>.md más una matriz combinada. Cada herramienta, cada idioma, cada escenario — medido con el tokenizador cl100k_base contra una simulación fiel de Glob + Grep + Read + git log.

make bench          # Rust self-bench only - fresh measurements
make bench-all      # All 5 languages (Rust, TypeScript, Python, Go, Java) + cross-language summary
make bench-fixtures # Clone and index the pinned fixture repos

Los informes llegan a reports/benchmark.md / reports/benchmark.json para la ejecución de un solo idioma, o reports/benchmark-<lang>.md más un resumen combinado entre idiomas para bench-all.


Cómo funciona por dentro

Cuatro capas, calculadas una vez, consultadas desde SQLite en cada llamada de herramienta.

1. Análisis con tree-sitter

Cada archivo fuente se analiza con una gramática tree-sitter específica del lenguaje. Sin servidor LSP, sin instalaciones de SDK por lenguaje, sin penalización de arranque en frío. El analizador extrae símbolos (funciones, métodos, tipos, constantes), sus firmas, rangos de líneas, visibilidad de exportación, relaciones de importación y —para 21 lenguajes imperativos— la complejidad ciclomática por función.

2. Hash de forma estructural

Los cuerpos de las funciones se canonizan en un esqueleto AST (identificadores, literales y comentarios normalizados) y se les aplica un hash. Dos símbolos con el mismo hash son clones estructurales. Eso es lo que consulta qartez_clones.

3. Análisis de grafo

Las aristas de importación forman un grafo dirigido. Sobre él se ejecutan tres algoritmos:

  • PageRank: el mismo algoritmo de caminata aleatoria que Google usó para páginas web. Aplicado a tu grafo de importaciones, revela los archivos que forman la columna vertebral arquitectónica de tu proyecto.
  • Blast radius: BFS inverso que cuenta cuántos archivos se ven afectados transitivamente por un cambio. qartez_impact lo utiliza para advertir antes de ediciones.
  • Agrupamiento de Leiden: detección de comunidades que divide tu código base en módulos lógicos para la wiki de arquitectura generada automáticamente y la configuración inicial de qartez_boundaries.

4. Minería del historial de Git

Recorre los últimos N commits (300 por defecto) y cuenta los pares de archivos que aparecen en el mismo commit. Esto revela el acoplamiento lógico que el grafo de importaciones no puede ver: archivos que no están vinculados por importaciones pero que siempre se editan juntos.

qartez_impact, qartez_context y qartez_hotspots fusionan estas señales —PageRank + blast + co-cambio + complejidad— en una única respuesta clasificada. Ningún otro servidor MCP combina las cuatro.

Almacenamiento

Todo reside en .qartez/index.db: un único archivo SQLite con índices de texto completo FTS5. Al iniciar, Qartez reanaliza únicamente los archivos cuya hora de modificación haya cambiado. El vigilante de archivos se activa automáticamente mientras el servidor está en ejecución: las ediciones y los archivos nuevos se reindexan en segundo plano sin tiempo de inactividad. Pasa --no-watch para desactivarlo.

Transporte

Qartez se comunica a través de stdio (JSON-RPC sobre stdin/stdout), el transporte MCP estándar. Sin servidor HTTP, sin asignación de puertos, sin exposición a la red. El IDE lanza el binario qartez como proceso hijo e intercambia mensajes a través de tuberías.


Lenguajes compatibles

Un solo binario. Sin configuración por lenguaje. Los 37 lenguajes se analizan con tree-sitter (con respaldo de regex para formatos que carecen de gramática compatible). Los 21 lenguajes imperativos también obtienen complejidad ciclomática por función, lo que impulsa qartez_hotspots.

Tabla completa de lenguajes (37 lenguajes)
LanguageExtensiones / Nombres de archivo
TypeScript / JavaScript.ts .tsx .js .jsx .mts .cts .mjs .cjs
Rust.rs
Go.go
Python.py .pyi
Java.java
Kotlin.kt .kts
Swift.swift
C#.cs
C.c .h
C++.cpp .cc .cxx .hpp .hh .hxx
Ruby.rb
PHP.php
Bash.sh .bash
CSS.css .scss
Scala.scala .sc: clases, traits, objetos, case classes
Dart.dart: clases, mixins, enums, privacidad basada en guion bajo
Lua.lua: funciones, métodos (M.f/M:f), importaciones require
Elixir.ex .exs: defmodule, def/defp, defstruct, alias/use/import
Zig.zig: pub fn, structs, enums, unions, @import
Nix.nix: enlaces de atributos, funciones, rutas import
Haskell.hs .lhs: funciones de nivel superior, data, newtype, type, typeclasses, import
OCaml.ml .mli: enlaces let, type, module, class, exception, open/include
R.r .R: asignaciones de funciones/variables, clases S4/R6, library/require/source
Protobuf.proto: message, service, rpc, enum, import
SQL.sql: CREATE TABLE/VIEW/FUNCTION/PROCEDURE, ALTER, bloques BEGIN...END
HCL / Terraform.tf: referencias entre archivos var/local/module/data/resource
YAML.yaml .yml: K8s, GitHub Actions, GitLab CI, docker-compose, Ansible
DockerfileDockerfile, Dockerfile.*, .dockerfile: referencias COPY --from de varias etapas
MakefileMakefile, GNUmakefile, .mk: objetivos, variables, importaciones include
TOML.toml: tablas, claves, matrices de tablas
Nginx.conf, .nginx: bloques server, location, upstream
Plantillas Helm / Go.tpl: bloques define/include/template
Jenkinsfile / GroovyJenkinsfile, .groovy: pipeline, stage, node, def
Starlark / BazelBUILD, BUILD.bazel, WORKSPACE, WORKSPACE.bazel, .bzl, .star, .bazel: load, reglas con name=, def
Jsonnet.jsonnet .libsonnet: funciones/variables local, campos, import/importstr
CaddyfileCaddyfile, .caddyfile: bloques de sitio, handle, reverse_proxy, snippets
Unidades systemd.service .timer .socket .mount .target .path .slice .scope: secciones, ExecStart, directivas

Aspectos destacados: TypeScript, Rust, Go, Python, Java, Kotlin, Swift, C#, C/C++, Ruby, PHP, Dart, Scala, Elixir, Zig, Lua, Haskell, OCaml, R y 17 más. Los 21 lenguajes imperativos incluyen puntuación de complejidad ciclomática.


Comparación con alternativas

El espacio de los servidores MCP de inteligencia de código está saturado en 2026. Esta sección cubre competidores OSS directos, plataformas empresariales y ecosistemas adyacentes. Todas las cifras de estrellas se contrastaron con el repositorio de GitHub de cada proyecto en abril de 2026.

Competidores MCP OSS directos

Nueve proyectos comparten el nicho de "servidor MCP para inteligencia de código", ordenados por estrellas de GitHub.

ProyectoEstrellasImpl.Enfoque de indexaciónLenguajesHerramientas MCP
Qartez (este repositorio)nuevoRusttree-sitter + SQLite + PageRank + blast radius + co-cambio + complejidad + clones + límites3730
Serena23kPythonLSP (servidores de lenguaje por lenguaje)46+~35
code-review-graph10.4kPythontree-sitter + SQLite + agrupamiento de Leiden23+28
Claude-Context5.9kTypeScriptEmbeddings + base de datos vectorial Milvus/Zilliz144
CodeGraphContext3kPythontree-sitter + KuzuDB / FalkorDB / Neo4j1421
Codebase-Memory MCP1.6kCtree-sitter + SQLite + resolución de tipos híbrida6614
Repowise1.2kPythonGrafo de dependencias + historial de git + documentación generada por LLM147
Code Index MCP903Pythontree-sitter (10 lenguajes) + respaldo ripgrep para 50+10 + 5011
Codanna651Rusttree-sitter + tantivy FTS + fastembed15~9
Comparación característica por característica
CapacidadQartezSerenacode-review-graphClaude-ContextCodeGraphContextCodebase-MemoryRepowiseCode Index MCPCodanna
Análisis tree-sitterNo (LSP)Solo fragmentaciónNoSí (10 lenguajes)
Clasificación de importancia PageRankNoNoNoNoNoNoNoNo
Blast radius (dependientes transitivos)NoNoNoNoNo
Minería de co-cambios en gitNoNoNoNoNoNo
Complejidad ciclomática por funciónSí (21 lenguajes)NoNoNoNoNoNoNoNo
Puntuación de puntos calientes (complejidad x PR x cambio)NoNoNoNoNoNoNoNo
Detección de clones estructurales de códigoNoNoNoNoNoNoNoNo
Aplicación de límites arquitectónicosNoNoNoNoNoNoNoNo
Impacto de señal cuádruple (PR + blast + co-cambio + complejidad)NoNoNoNoNoNoNoNo
Detección de código oloroso (god functions, feature envy)NoNoNoNoNoNoNoNo
Análisis de brechas de cobertura de pruebasNoNoNoNoNoNoNoNo
Análisis de factor bus / conocimientoNoNoNoNoNoNoNoNo
Consultas de jerarquía de tiposVía LSPNoNoNoNoNoNoNo
Grafo de llamadas (llamador / llamado)ParcialNoNoNo
Refactorización (renombrar / mover / renombrar archivo)Sí (vista previa + aplicar)Solo renombrar (LSP); mover mediante plugin de JetBrains (de pago)Solo vista previa de renombradoNoNoNoNoNoNo
Ejecutor de comandos de toolchain (test / build / lint)Solo shellNoNoNoNoNoNoNo
Constructor de contexto inteligente de múltiples señalesNoParcialNoNoNoNoNoNo
Análisis de impacto de diffs por lotesNoNoNoNoNoNoNoNo
Plantillas de prompt MCPSí (6)NoSí (5)NoNoNoNoNoNo
Instalación multi-IDE con un comandoSí (19 IDEs, asistente Rust)No (manual)Sí (9 IDEs)No (manual)Sí (10 IDEs)Sí (10 agentes)NoNoNo
Escaneo de seguridad (regex + puntuación PageRank)NoNoNoNoNoNoNoNo
Tendencia de complejidad a lo largo del historial de gitNoNoNoNoNoNoNoNo
Divulgación progresiva de herramientas (niveles)Sí (4 niveles)NoNoNoNoNoNoNoNo
Búsqueda semántica / vectorialSí (opt-in, embedding local)NoOpcional (FTS5 híbrido)Sí (Milvus)NoNoNoNoSí (fastembed)
Detección de comunidades + wiki automáticaSí (Leiden + wiki)NoSí (Leiden + wiki)NoNoParcial (Louvain, sin wiki)NoNoNo
Visualización de grafosNoNoSí (D3.js)NoSí (Neo4j + HTML)Sí (3D interactivo)NoNoNo
Modo vigilancia (reindexación incremental)Sí (auto-activado)ParcialParcialNo
Benchmarks publicados por herramienta con juez LLMSí (28 escenarios, 8.3/10 vs 4.3/10)Solo tercerosSí (6 repos, 8.2x promedio)Limitado (afirmación ~40%)NoSí (artículo arXiv, 10x tokens)NoNoParcial (criterion)
Guardia de modificación (bloquea ediciones riesgosas)NoNoNoNoNoNoNoNo
Modelo de embedding / base de datos vectorial requeridaNoNoOpcionalNoNoNoNo
Dependencia de la nubeNoNoNoSí (predeterminado)NoNoNoNoOpcional

Alternativas empresariales y nativas de IDE

Plataformas comerciales que resuelven el mismo problema para usuarios dispuestos a intercambiar local-first y código abierto por pulido o escala entre repositorios:

  • Sourcegraph Cody / Amp — indexadores SCIP de calidad de compilador, servidor MCP oficial desde 2026. Cloud-first, precios empresariales.
  • Augment Code — Serie B de $227M. Índice semántico en tiempo real + grafo de relaciones de código en más de 400k archivos, servidor MCP oficial desde octubre de 2025. Dependencia de la nube.
  • Deep Graph MCP (CodeGPT) — 392 estrellas. Backend de grafo de conocimiento alojado en la nube; intercambia github.com por deepgraph.co en cualquier URL de repositorio para obtener un grafo de código preconstruido. Sin necesidad de indexación local.
  • JetBrains AI Assistant (IntelliJ 2025.2+) — servidor MCP integrado que expone símbolos y diagnósticos de nivel IDE. Solo JetBrains.
  • Cursor — modelo de embeddings personalizado, índice compartido por equipo en Turbopuffer. IDE cerrado, sin exposición MCP.
  • Windsurf Cascade — recuperación RAG M-Query. IDE cerrado, sin servidor MCP.

Qartez te da la misma inteligencia estructural que venden estas plataformas — funcionando por completo en tu laptop, de forma gratuita.

También destacables (proyectos más pequeños)
ProyectoEstrellasImpl.Nicho
Drift772TS / RustAprende patrones y convenciones del código, los enseña a la IA entre sesiones
Octocode319RustGrafo de conocimiento GraphRAG + búsqueda semántica híbrida (4 herramientas MCP)
mcp-server-tree-sitter287PythonExposición de consultas tree-sitter en bruto para que los agentes compongan sus propios análisis (~20 herramientas)
CodeGraph179RustSurrealDB + LSP + arquitectura agéntica ReAct / LATS, radio de explosión parcial
RepoMapper150PythonPageRank sobre tree-sitter de Aider como una única herramienta MCP
Narsil-MCP134Rust90 herramientas MCP, 32 lenguajes, grafos de llamadas + análisis de flujo de datos + escaneo de seguridad SBOM
Code Pathfinder118GoSAST enfocado en seguridad con análisis de flujo de datos/taint entre archivos vía MCP
Code Graph RAG MCP86TypeScriptHíbrido Grafo + RAG, 26 métodos MCP, detección de clones
Tree-sitter Analyzer20PythonPageRank + modification_guard que bloquea ediciones inseguras (17 lenguajes)
AiDex25TypeScript30 herramientas MCP, gestión de tareas, captura de pantallas, Log Hub (11 lenguajes)

Ecosistemas adyacentes (categoría diferente, mismo problema)

  • Aider repo-map — el CLI de Paul Gauthier fue pionero en tree-sitter + PageRank en octubre de 2023. Vive dentro del CLI de aider, no como servidor MCP. RepoMapper envuelve la salida única de repo_map como MCP.
  • Continue.dev — cliente MCP, no servidor. Su documentación recomienda explícitamente combinar Continue con un servidor MCP dedicado de grafo de código — el rol que Qartez cubre.
  • Context7, Mem0, Pieces LTM — herramientas de memoria y documentación, no indexadores de bases de código. Complementarios, no competidores.
  • Block Goose, Cline, Codebuff — clientes de agentes de codificación que consumen servidores MCP. Son los usuarios de herramientas como Qartez.

Qué hace diferente a Qartez

1. Análisis de impacto de cuatro señales. qartez_impact, qartez_diff_impact, qartez_context y qartez_hotspots fusionan la importancia PageRank, el radio de explosión estático, la co-modificación de git y la complejidad ciclomática en una única respuesta clasificada. Ningún otro proyecto combina las cuatro.

2. Hotspots, clones, límites, seguridad, olores, brechas de prueba, conocimiento y tendencias en un solo servidor. qartez_hotspots clasifica las funciones más peligrosas del repositorio por complejidad x acoplamiento x cambios. qartez_clones encuentra lógica duplicada mediante hash de forma AST. qartez_boundaries aplica reglas de arquitectura declaradas en .qartez/boundaries.toml. qartez_security escanea patrones de vulnerabilidad puntuados por PageRank. qartez_smells detecta funciones dios, listas de parámetros largas y envidia de características. qartez_test_gaps encuentra archivos fuente sin probar clasificados por riesgo. qartez_knowledge revela riesgos de bus-factor a partir de git blame. qartez_trend rastrea cómo evolucionó la complejidad de una función commit a commit. Estas son ocho productos comerciales por separado en otros lugares, una sola llamada MCP aquí.

3. Refactorización a través de MCP con vista previa y aplicación. qartez_rename, qartez_move y qartez_rename_file le dan al asistente refactorizaciones atómicas y revisables en una sola llamada MCP. Serena ofrece renombrado vía LSP (requiere instalación de servidor por lenguaje); los servidores restantes no incluyen herramientas de refactorización en absoluto.

4. Red de seguridad integrada. El guardián de modificaciones bloquea que tu IA edite archivos de alto impacto sin revisar primero el radio de explosión. Ningún otro servidor en la tabla principal de competidores incluye esto.

5. Medido, no afirmado. 28 escenarios, 8.3/10 frente a 4.3/10 en calidad según juez LLM, conteos de tokens por herramienta y latencia. Todo reproducible con make bench (un solo lenguaje) o make bench-all (5 lenguajes con resumen entre lenguajes).

6. Rust nativo, local-first, cero dependencia de nube. Tres binarios (qartez, qartez-guard, qartez-setup). Sin runtime de Python, sin base de datos vectorial, sin cuenta en la nube. Todo se ejecuta en tu máquina. Ningún código sale del equipo. Una característica opcional de cargo semantic añade búsqueda de embeddings local, pero la compilación predeterminada no necesita descargar ningún modelo.


Opciones de línea de comandos

Qartez también funciona como CLI independiente. Ejecuta qartez <tool_name> (por ejemplo, qartez map, qartez find Config, qartez impact src/server/mod.rs) para usar cualquier herramienta principal o de análisis directamente desde la terminal sin un cliente MCP.

OpciónDescripciónPredeterminado
--root <path>Raíz del proyecto a indexar (repetible para monorepos)Auto-detectada
--reindexForzar re-indexación completaDesactivado
--git-depth <n>Commits a analizar para co-modificación300
--db-path <path>Sobrescribir ubicación del índice.qartez/index.db
--no-watchDesactivar el vigilador de archivos automático (activado por defecto)Vigilador activado
--wiki <path>Generar wiki de arquitectura después de indexarDesactivado
--leiden-resolution <f>Granularidad de clústeres (más grande = más clústeres)1.0
--format <format>Formato de salida para subcomandos del CLI: human, json, compacthuman
--log-level <level>error, warn, info, debug, trace (cualquier directiva tracing aceptada)info

Estructura del proyecto
src/
  main.rs                  Entry point: index, compute, start server
  lib.rs                   Library root (re-exports)
  cli.rs                   CLI argument parsing (19 subcommands)
  cli_runner.rs            CLI subcommand dispatcher
  config.rs                Project configuration and root detection
  error.rs                 Error types
  str_utils.rs             String utilities (stable floor_char_boundary polyfill)
  toolchain.rs             Toolchain detection (Cargo, npm, Go, etc.)
  watch.rs                 File watcher for incremental re-indexing
  guard.rs                 Modification guard evaluation engine
  embeddings.rs            Local embedding model for qartez_semantic (opt-in)
  server/
    mod.rs                 MCP server entrypoint - dispatches to per-tool handlers
    tools/                 30 per-tool handler modules (one file per MCP tool)
    prompts.rs             6 workflow prompt templates
    tiers.rs               Progressive tool disclosure (core/analysis/refactor/meta)
    cache.rs               Tree-sitter parse cache
    helpers.rs             Shared handler utilities
    overview.rs            Overview/map generation
    params.rs              Tool parameter structs
    treesitter.rs          Tree-sitter integration helpers
    mcp_instructions.md    Embedded MCP server instructions
  index/
    mod.rs                 Core indexing engine (full + incremental, import resolution)
    walker.rs              File discovery (respects .gitignore + .qartezignore)
    parser.rs              Tree-sitter parser pool
    symbols.rs             Symbols / imports / references + AST shape hashing
    languages/             37 language adapters (21 with cyclomatic complexity)
  graph/
    mod.rs                 Graph module root
    pagerank.rs            PageRank on import graph
    blast.rs               Blast radius BFS
    leiden.rs              Community detection (Leiden clustering)
    boundaries.rs          Architecture-boundary rules engine
    security.rs            Security rule engine (powers qartez_security)
    wiki.rs                Architecture wiki renderer
  git/
    mod.rs                 Git module root
    cochange.rs            Co-change pair mining
    diff.rs                Diff range analysis (for qartez_diff_impact)
    trend.rs               Complexity trend over git history
    knowledge.rs           Code authorship and bus-factor analysis
  storage/
    mod.rs                 Storage module root
    schema.rs              SQLite + FTS5 schema
    read.rs / write.rs     Query and mutation helpers
    models.rs              Row structs
  bin/
    setup.rs               Interactive IDE setup wizard (19 IDEs)
    guard.rs               PreToolUse modification guard
    benchmark.rs           Benchmark harness entry point
  benchmark/               Benchmark internals (cargo feature)
    profiles/              Per-language benchmark profiles (Rust, TS, Python, Go, Java)
    scenarios.rs           28 benchmark scenarios
    judge.rs               LLM-judge harness
    report.rs              Markdown / JSON report writers
    tokenize.rs            cl100k_base token accounting
scripts/                   Hook + snippet assets embedded by qartez-setup
benchmarks/fixtures.toml   Pinned OSS repos for multi-language benchmarks
reports/                   Generated benchmark.md / benchmark.json artifacts

Contribuciones

¿Encontraste un bug? Abre un issue. ¿Quieres añadir un lenguaje, corregir un parser o mejorar una herramienta? Las pull requests son bienvenidas — lee CONTRIBUTING.md y CODE_OF_CONDUCT.md primero. Los PR no triviales requieren firmar el CLA.md.

git clone https://github.com/kuberstar/qartez-mcp.git
cd qartez-mcp
cargo build
cargo test

Las notas de versión de cada versión están en CHANGELOG.md.


Seguridad

¿Encontraste una vulnerabilidad? No abras un issue público. Sigue la política de divulgación en SECURITY.md.


Licencia

Doble licencia bajo la Qartez Small Team License (gratuita para individuos y equipos pequeños) y la Qartez Commercial License (para todos los demás). Lee el texto completo en LICENSE, y consulta COMMERCIAL.md para el resumen de los términos comerciales. Identificador SPDX: LicenseRef-Qartez-Dual.


Grep era para humanos. Qartez es para agentes.

Si Qartez te ahorra aunque sea el 10% de tu factura mensual de IA, dale una estrella al repositorio — es la única señal que les dice a otros desarrolladores que este enfoque vale la pena probar.