Skip to main content
Glama
adefemi-dev
by adefemi-dev

jCodeMunch MCP

El servidor MCP más eficiente en tokens para la recuperación precisa de código fuente mediante análisis AST con tree-sitter. Reduce los costos de tokens de IA entre un 86 y un 99 % en la exploración de código (promedio del 96 %, medido en 27,9 veces menos tokens que un agente de grep-y-lectura) y deja de quemar tu ventana de contexto leyendo archivos completos.

Resultados reales, en vivo desde producción Más de 838 mil millones de tokens ahorrados · Más de 136 000 instalaciones reportadas · Más de $4,2 millones en gastos de IA evitados · Más de 100 000 kg de CO₂ evitados Cifras al 17 de agosto de 2026, valoradas a la tarifa de entrada de Claude Opus de $5/MTok. Las cuatro solo crecen, así que tómalas como mínimos. En vivo en jcodemunch.com.

Funciona con Claude Code, Cursor, VS Code, Codex CLI, Windsurf, Continue y cualquier cliente compatible con MCP.

Instalar ahora · Inicio rápido · Ver la evidencia · Precios

Versión de PyPI PyPI - Versión de Python Licencia MCP Local-first Issues cerrados DOI

Gratis para uso personal. Úsalo para ganar dinero, y el tío J. se lleva su parte. ¿Justo, no? Licencias comerciales abajo. Nuestra garantía: si jCodeMunch no se paga solo, no pagas por jCodeMunch.


¿Por qué jCodeMunch?

La mayoría de los agentes de IA exploran repositorios de la manera costosa: abren archivos completos, hojean miles de líneas irrelevantes, y repiten. Eso no es "un poco ineficiente". Es un incinerador de tokens.

jCodeMunch indexa un código base una vez y permite que los agentes recuperen solo el código exacto que necesitan: funciones, clases, métodos, constantes, esquemas y paquetes de contexto bien acotados, con precisión a nivel de byte. Analiza el código fuente con tree-sitter, almacena metadatos estructurados de símbolos (firma, tipo, nombre calificado, resumen, desplazamientos de bytes) junto con el contenido crudo de los archivos en un índice local, y obtiene implementaciones exactas bajo demanda en lugar de releer archivos una y otra vez.

Tarea

Enfoque tradicional

Con jCodeMunch

Encontrar una función

Abrir y escanear archivos grandes

Buscar símbolo, obtener implementación exacta

Entender un módulo

Leer regiones amplias del archivo

Extraer solo los símbolos e imports relevantes

Explorar la estructura del repo

Recorrer archivo tras archivo

Consultar esquemas, árboles y paquetes dirigidos

"¿Qué se rompe si cambio X?"

No es posible

get_blast_radius

Indexa una vez. Consulta barato. Sigue avanzando. El contexto de precisión vence al contexto de fuerza bruta.


Related MCP server: Symbol Delta Ledger

Evidencia

Benchmark reproducible de eficiencia de tokens

Medido con tiktoken cl100k_base en tres repositorios públicos fijados a commits aguas arriba, ejecutado el 3 de agosto de 2026 en la v1.108.233. Flujo de trabajo: search_symbols (top 5) + get_symbol_source × 3 por consulta. Dos líneas base, misma ejecución, mismo corpus, mismo lector de archivos:

  • Grep-top-3: rg -l los términos de la consulta, clasificar archivos por recuento de coincidencias, abrir los 3 principales completos. Esto es lo que un agente competente sin la herramienta realmente hace, y es el número que se debe citar.

  • Read-all: todos los archivos fuente indexados concatenados. Un techo que nadie paga; se mantiene por continuidad con cifras publicadas anteriormente.

Repositorio

Archivos

Símbolos

Línea base Grep-top-3

jCodeMunch

vs grep

vs read-all

expressjs/express

182

200

15 724 prom

1 007 prom

15,6x

153,2x

fastapi/fastapi

1 182

6 841

85 296 prom

2 209 prom

38,6x

372,9x

gin-gonic/gin

98

1 179

31 975 prom

1 545 prom

20,7x

98,3x

Total general (15 ejecuciones de tareas)

664 975

23 805

27,9x

237,3x

Contra un agente de grep-y-lectura: reducción del 96,4 %, 27,9 veces menos tokens. Los resultados por consulta van desde 7,3x hasta 84,3x (mediana de 25,5x); ningún múltiplo único describe cada consulta. Contra read-all la cifra es del 99,6 %, pero nadie paga ese techo. La codificación compacta MUNCH en el cable luego recorta una mediana de 45,5 % más de bytes de las respuestas.

Metodología completa, commits fijados, arnés y limitaciones conocidas: benchmarks/METHODOLOGY.md · Reprodúcelo tú mismo · TOKEN_SAVINGS.md

Prueba A/B independiente en un código base de producción

Prueba A/B de 50 iteraciones en un código base real de producción con Vue 3 + Firebase, jCodeMunch vs herramientas nativas (Grep/Glob/Read), Claude Sonnet 4.6, sesión nueva por iteración: tasa de éxito del 80 % vs 72 %, tasa de tiempo de espera del 32 % vs 40 %, creación media de caché reducida en un 10,5 %. Ahorros a nivel de herramienta aislados de los gastos generales fijos: 15-25 %. Una categoría de hallazgos apareció exclusivamente en la variante de jCodeMunch: detección de archivos huérfanos mediante find_importers, una consulta estructural que las herramientas nativas no pueden responder sin scripting. Informe completo: benchmarks/ab-test-naming-audit-2026-03-18.md

Mencionado por

  • Artur Skowroński (VirtusLab): "aproximadamente un 80 % menos de tokens, o 5 veces más eficiente: indexa una vez, consulta barato para siempre" · GitHub All-Stars #15

  • Traci Lim (AWS · Líder de IA para ASEAN): "consultas estructurales que las herramientas nativas no pueden responder: find_importers, get_blast_radius, get_class_hierarchy, find_dead_code" · 5 Repos That Save Token Usage in Claude Code

  • Julian Horsey (Geeky Gadgets): "3 850 tokens reducidos a solo 700: una mejora de 5,5 veces" · JCodeMunch AI Token Saver

  • Eric Grill: "el contexto es el recurso escaso. Redúcelo en un 90 % y toda la pila se vuelve más barata y más confiable" · jCodemunch: Context Engine for AI Agents

Página de reconocimiento completa →


Instalar

Instalaciones con un clic

Instalar en VS Code Instalar en VS Code Insiders Instalar en Cursor

Recomendado: un solo comando

uv tool install jcodemunch-mcp
jcodemunch-mcp init

Sin virtualenv que gestionar, nada escrito en el Python del sistema, y funciona tal cual en distribuciones PEP 668 (Ubuntu 24.04+, Debian 12+) donde se rechaza el pip install simple. ¿Aún no tienes uv?

init detecta automáticamente tus clientes MCP (Claude Code, Claude Desktop, Cursor, Windsurf, Continue), escribe sus entradas de configuración, instala la política de prompt de CLAUDE.md para que tu agente realmente use jCodeMunch, opcionalmente instala hooks de cumplimiento, opcionalmente indexa tu proyecto y audita tus archivos de configuración de agentes en busca de desperdicio de tokens.

Comando

Úsalo cuando

uvx jcodemunch-mcp

Instalación cero. Se ejecuta desde un entorno efímero: nada queda en disco de forma permanente. Las entradas de cliente que escribe init ya invocan el servidor de esta manera, así que para la mayoría de configuraciones esto es todo lo que se ejecuta. ⚠ Los hooks de cumplimiento son la excepción: los lanza un subshell con PATH mínimo y resuelven el ejecutable por nombre, por lo que necesitan uv tool install (o pipx/pip) para funcionar.

pipx install jcodemunch-mcp

Ya estandarizas en pipx

pip install jcodemunch-mcp

Dentro de un virtualenv que gestionas tú mismo

Verificar:

jcodemunch-mcp --version

Configuración manual de Claude Code

claude mcp add -s user jcodemunch -- uvx jcodemunch-mcp

Sin paso de instalación: uvx obtiene y ejecuta el servidor bajo demanda. ¿Lo prefieres en tu PATH (y es necesario para los hooks de cumplimiento)? uv tool install jcodemunch-mcp, luego claude mcp add -s user jcodemunch jcodemunch-mcp.

Luego dile al agente que prefiera las herramientas. Esto importa más de lo que la gente piensa; la instalación hace que las herramientas estén disponibles pero no rompe el hábito de lectura bruta del agente. Una línea en tu CLAUDE.md lo logra:

Call the jcodemunch_guide tool and strictly follow its instructions.

¿Usas Cursor, Windsurf, Codex CLI, Antigravity, Gemini CLI, Qwen Code, Kiro, Cline, Zed, Goose, Hermes, Odysseus o Paperclip? Cada configuración de cliente probada está en CLIENTS.md. Los extras opcionales (búsqueda semántica local, resúmenes de IA por proveedor) están en QUICKSTART.md; las superficies del sistema que cada extra incorpora están documentadas en SECURITY.md.


Inicio rápido

Recorrido completo: QUICKSTART.md. La versión de dos minutos, dentro de tu agente después de init:

  1. Pregunta: "Indexa este repo con jcodemunch."

  2. Pregunta: "Usando jcodemunch, encuentra la función que maneja la autenticación y muéstrame su código fuente."

El agente debe responder mediante search_symbols y get_symbol_source, devolviendo decenas de líneas en lugar de archivos completos. Confírmalo con get_session_stats: informa de los tokens servidos y del ahorro de la sesión. De ahí salen los números del medidor.

¿Quieres omitir la indexación inicial para frameworks populares? Starter packs preconstruidos: jcodemunch-mcp install-pack --list (los packs gratuitos no requieren licencia).


Lo que puedes hacer

  • Recuperar un símbolo en lugar de cargar un archivo. get_symbol_source devuelve el cuerpo exacto de la función, con precisión de byte, para la mayoría de las ediciones que tocan una función en un archivo de 700 líneas (~95% de ahorro en esa lectura).

  • Reunir el contexto de toda una tarea en una sola llamada. assemble_task_context clasifica la intención de la tarea, extrae símbolos ancla y ejecuta la secuencia de herramientas adecuada bajo un único presupuesto de tokens. plan_turn enruta el turno antes de la primera lectura.

  • Hacer preguntas estructurales que grep no puede responder. find_importers, get_blast_radius, get_call_hierarchy, find_dead_code, get_changed_symbols, get_hotspots, barridos de anti-patrones con search_ast, y más.

  • Prever cambios arriesgados y saber cuándo parar. check_edit_safe, check_delete_safe, get_pr_risk_profile y plan_refactoring con bloques {old_text, new_text} listos para editar. Las dos comprobaciones de seguridad devuelven stop_rule.terminal: true significa que ninguna llamada adicional a jcodemunch cambiará el veredicto, así que volver a ejecutar find_importers o check_references para asegurarse es trabajo desperdiciado. Significa final, no seguro. False nombra la cosa concreta que cambiaría la respuesta.

  • Confiar en las respuestas. Puntuaciones de confianza calibradas, indicadores de frescura, contratos de cobertura sobre afirmaciones de ausencia, referencias verificadas por compilador mediante importación SCIP y redacción automática de secretos antes de que nada llegue al LLM.

  • Mantener el índice fresco automáticamente. Modos de vigilancia, hooks de agente y una extensión de VS Code cierran la brecha de obsolescencia.

Eso es lo más destacado. El recorrido completo por las más de 90 herramientas, el formato de cable compacto MUNCH, los recibos de evidencia, la anotación de trabajo descargable y la instrumentación de economía de sesión están en CAPABILITIES.md, con los detalles internos en UNDER_THE_HOOD.md.

Novedades

  • v1.108.293 (2026-08-23) — Diez módulos omitidos que ocultaban 209 pruebas

  • v1.108.292 (2026-08-23) — La única cadena que sobrevive al aplazamiento de herramientas

  • v1.108.291 (2026-08-22) — Contando cada byte de código fuente una sola vez


¿Cuándo ayuda (y cuándo no)?

Escenario

Herramienta nativa

jMunch

Ahorro

Editar una función (archivo de 700 líneas)

Read → 700 líneas

get_symbol_source → 30 líneas

~95%

Entender la estructura de un archivo

Read → contenido completo

get_file_outline → nombres + firmas

~80%

Encontrar qué archivo editar

Grep en muchos archivos

search_symbols → coincidencia exacta

comparable

La edición requiere contexto de archivo completo

Read → contenido completo

get_file_content → contenido completo

~0%

"¿Qué se rompe si cambio X?"

no es posible

get_blast_radius

capacidad única

Ayuda sobre todo en ediciones específicas (una función, un método, una clase), que son la mayoría del trabajo de edición real. Las ediciones que realmente requieren el archivo completo (reestructurar estado a nivel de archivo, reordenar lógica que abarca cientos de líneas) no ven ventaja. Mejor encaja en: repositorios grandes, bases de código desconocidas, exploración dirigida por agentes, refactorización y análisis de impacto, y equipos que recortan costes de tokens de IA sin hacer más tontos a los agentes.

Lenguajes: más de 70 mediante tree-sitter, incluidos Python, JavaScript/TypeScript, Go, Rust, Java, C/C++, C#, PHP, Ruby, Swift y Kotlin. Matriz completa: LANGUAGE_SUPPORT.md. Monorepos: sí; indexación incremental, detección de miembros del workspace, alcance por subruta.


Seguridad, privacidad y comportamiento en segundo plano

Local-first por diseño: los índices viven en ~/.code-index/, y el único comportamiento de red predeterminado del paquete base es un contador de ahorro anónimo (ID aleatorio más recuentos agregados de tokens, sin código, sin rutas, sin PII; se puede desactivar con share_savings: false). Todo lo que el servidor hace más allá de responder a una llamada de herramienta (vigilancia de archivos, el servicio de inicio de sesión opcional, validación de licencia, descargas de modelos, informes de organización) es opcional o desactivable, visible y reversible, y cada elemento está enumerado en SECURITY.md junto con los controles de traversal de rutas, symlinks y redacción de secretos.


Documentación

Doc

Qué cubre

QUICKSTART.md

De cero a indexado en tres pasos

CLIENTS.md

Configuración probada para cada cliente MCP

USER_GUIDE.md

Referencia completa de herramientas, flujos de trabajo y mejores prácticas

CAPABILITIES.md

La referencia completa de capacidades más allá de lo más destacado

CONFIGURATION.md

Referencia del archivo de configuración, palancas de control de tokens, niveles de herramientas, el Contador

UNDER_THE_HOOD.md

El manual técnico: veredictos, internals de ranking, contratos de procedencia

ARCHITECTURE.md

Diseño interno, modelo de almacenamiento y puntos de extensión

GROQ.md

Groq Remote MCP, el CLI gcm, GitHub Action de speedreview

HEADLESS.md

Usar jCodeMunch con claude -p

AGENT_HOOKS.md

Hooks de agente y políticas de prompt

LANGUAGE_SUPPORT.md

Lenguajes soportados y detalles de análisis

SECURITY.md

Controles de seguridad, movimiento de datos, comportamiento en segundo plano

TROUBLESHOOTING.md

Problemas comunes y soluciones

CHANGELOG.md · ROADMAP.md

Historial de versiones y qué viene después


Licencia y uso comercial

jCodeMunch-MCP se publica bajo la Licencia de Doble Uso jCodeMunch-MCP (términos completos). Gratuito para uso no comercial. El uso comercial requiere una licencia de pago, de pago único, vendida por jMunch LLC a través de Stripe:

Solo jCodeMunch: Builder, $79 (1 desarrollador) · Studio, $349 (hasta 5) · Platform, $1,999 (despliegue interno a nivel de organización)

Suite completa de jMunch (código + docs + datos): Trio Builder, $99 · Trio Studio, $449 · Trio Platform, $2,499

¿No estás seguro de que valga la pena? Calcula tus propios números con la calculadora de ROI, o reenvía la versión para el equipo de finanzas a quien dé el visto bueno. La garantía se mantiene: si jCodeMunch no se paga a sí mismo, no pagas por jCodeMunch.

Condiciones para todos los usos: conservar el aviso de copyright, marcar claramente las modificaciones y mantener el nombre del autor original intacto (está un poco pagado de sí mismo), e incluir un aviso de modificación destacado en las redistribuciones del código fuente. El software no puede renombrarse, rebautizarse ni publicarse en ningún registro público de paquetes, y se proporciona "TAL CUAL" sin garantía. LICENSE controla.


FAQ

¿Cuánto puedo ahorrar en tokens de Claude / Opus? En flujos de trabajo con mucha recuperación, los tokens de lectura de código suelen bajar entre un 86% y un 99%, con una media medida del 96,4% (27,9x) frente a un agente de grep-and-read en 15 tareas y 3 repositorios. Los resultados por consulta van de 7,3x a 84,3x. Metodología: TOKEN_SAVINGS.md y benchmarks/.

¿En qué se diferencia de las herramientas basadas en RAG o grep? jCodeMunch recupera a nivel de símbolo con precisión de byte (funciones, clases, importadores, radio de explosión, jerarquías) en lugar de fragmentos difusos (RAG) o coincidencias de líneas en bruto (grep) que el agente aún tiene que leer y razonar.

¿Es gratuito para uso personal? Sí. El uso comercial requiere una licencia; ver arriba.

¿Dónde está el análisis profundo sobre X? Capacidades: CAPABILITIES.md. Configuración: CONFIGURATION.md. Clientes: CLIENTS.md. Internals: UNDER_THE_HOOD.md. O el torrente: jcodemunch.com.


Extras: Observatorio de salud de código OSS (instantáneas semanales de seis ejes de Express, FastAPI, Gin, Django y otros) · Radar de coste de tokens (inteligencia diaria de costes de tokens de IA) · jMunch Console (GUI MIT gratuita para actualizaciones con un clic)

Available Tools

6 tools
announce_modelA

Agent self-reports its active model identifier. Server resolves to a tier via model_tier_map (fuzzy: normalize → exact → glob → substring → '*' → 'full') and narrows the exposed tool list accordingly. Idempotent: a second call with the same model is a cheap no-op. Prefer calling plan_turn(model=...) for routine per-task use; use announce_model as a fallback when plan_turn is not appropriate for the current task.

NameRequiredDescriptionDefault
modelYesYour active model identifier, e.g. 'claude-haiku-4-5'.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses multiple behavioral traits beyond the annotations: idempotency ('a second call with the same model is a cheap no-op'), the fuzzy tier resolution order, and the side effect of narrowing the tool list. These details help the agent anticipate what will happen when it calls the tool, well beyond the sparse annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action and purpose, then detailed resolution logic, and ends with usage guidance. Every clause carries value, and there is no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description covers purpose, effect, idempotency, and when to use it. Nothing an agent needs to decide whether to call it or to understand the outcome is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides a clear description of the model parameter with an example ('claude-haiku-4-5'), so schema coverage is 100%. The description adds little beyond restating that the agent reports its model identifier, which is already implied by the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('self-reports') and resource ('active model identifier'), and clearly explains the consequence: the server resolves to a tier and narrows the exposed tool list. It also distinguishes itself from plan_turn by name, so an agent can tell them apart without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is given: 'Prefer calling plan_turn(model=...) for routine per-task use; use announce_model as a fallback when plan_turn is not appropriate.' This tells the agent exactly when to use this tool and when to use the alternative, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jcodemunch_guideA
Read-only

Return the version-current CLAUDE.md / AGENT.md policy snippet for jcodemunch-mcp — the same text produced by jcodemunch-mcp claude-md --generate. Lets an agent keep a one-line CLAUDE.md (e.g. "Call jcodemunch_guide and strictly follow its instructions.") instead of pasting a static snippet that drifts from the installed version. Idempotent, no repo context required. Matches the active tool surface, tier and disabled_tools — list 'jcodemunch_guide' in disabled_tools to hide it.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description consistently describes a read operation with no contradiction. It adds valuable context beyond the annotations: idempotency, that no repo context is required, and that output dynamically matches the current tool surface, tier, and disabled_tools configuration.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and each subsequent sentence earns its place: the drift-prevention use case, idempotency/no-repo-context, and the config-matching behavior. It is slightly dense — four ideas in one block — but efficient with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only tool with no output schema, the description is thorough: it covers return content, the rationale, safety (idempotent, read-only), and the config-sensitive output behavior. The only minor omission is a concrete sketch of the returned snippet's shape, but given tool simplicity this is not a material gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema is an empty object (100% coverage trivially), so the schema leaves nothing to explain. Per rubric, a zero-parameter tool gets a baseline of 4, and the description adds the useful note that no repo context is required, reinforcing the no-input contract.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Return') plus a precise resource: the version-current CLAUDE.md/AGENT.md policy snippet generated by `jcodemunch-mcp claude-md --generate`. This is clearly distinct from its siblings (set_tool_tier, announce_model, menu, order, route), which are all operational actions, so an agent can disambiguate without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains why and when to call it: to keep a one-line CLAUDE.md instead of a static snippet that drifts from the installed version, and notes 'no repo context required' so it can be invoked standalone. It does not explicitly name alternatives or state when not to use it, but the clean use-case motivation covers the main guidance need.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

orderA

Dispatch any jcodemunch action by name: order(action, args). The single-verb front door to the full tool catalog. Read-only by default — actions that change index/session state require allow_state_change=true, and execution/file-write verbs are refused. For exploration questions ('how does X work'), order('get_ranked_context', {repo, query, token_budget}) answers in ONE call — prefer it over chained search/outline/source hops; add compress=true to fit more symbols in the same budget. Call 'menu' to discover actions, or 'route' to pick one from a task.

NameRequiredDescriptionDefault
argsNoArguments for that action, exactly as you'd pass them directly.
actionYesName of the catalog action to run (e.g. 'search_symbols').
allow_state_changeNoOpt in to dispatching an index/session state-changing action (e.g. index_repo).

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite openWorldHint=true and readOnlyHint=false in annotations, the description adds valuable behavioral detail: it is read-only by default, requires allow_state_change=true for state-changing actions, and refuses execution/file-write verbs. This goes beyond the annotation flags and helps an agent predict side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but efficient. Each sentence adds functional value: the call pattern, read-only default, state-change opt-in, exploration recommendation, and menu/route routing. It could be slightly trimmed, but the structure is logical and front-loaded with the primary usage pattern.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a generic dispatcher with no output schema and dynamic behavior, the description is impressively complete. It covers invocation, safety constraints, suggested use cases, and fallback tools for discovery. It does not describe return values, but given the open-world nature of dispatched actions, that is an acceptable omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantics by showing the call pattern order(action, args), explaining that args are passed 'exactly as you'd pass them directly,' and clarifying allow_state_change with a concrete example (index_repo). The compress=true hint further enriches parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb-resource pair ('dispatch any jcodemunch action by name') and positions itself as 'the single-verb front door to the full tool catalog.' It distinguishes itself somewhat from siblings by noting that 'menu' discovers actions and 'route' picks one, though it could more sharply contrast with 'route' as a dispatcher vs. a router.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Excellent guidance: it explicitly recommends order('get_ranked_context', ...) for exploration questions over chained search/outline/source hops, suggests adding compress=true, and directs users to 'menu' for discovery or 'route' for task-based selection. It also states that execution/file-write verbs are refused, giving a clear boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

routeA

Map a natural-language task to the best catalog action(s): route(task, repo?, execute?). Returns ranked recommendations with ready-to-run argument templates. With execute=true, dispatches the top recommendation and returns its result in the same call, collapsing discover-then-call into one round-trip. Recommends assemble_task_context / plan_turn for context-gathering intents.

NameRequiredDescriptionDefault
repoNoRepository identifier (required to execute repo-scoped actions).
taskYesWhat you're trying to do, in plain language.
modelNoOptional active model id; piggybacks tier-switch like plan_turn(model=...).
executeNoIf true, dispatch the top recommended action and return its result.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations provide readOnlyHint=false and openWorldHint=true, so the tool is not read-only. The description builds on this by disclosing that execute=true dispatches the top recommendation and returns the result, collapsing the discover-then-call flow into one round-trip. It also clarifies that without execute it returns recommendations only, giving the agent a clear behavioral model without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the core purpose, then explains the execution option and a usage hint for context-gathering intents. Every sentence earns its place; no filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a router that can optionally execute, the description covers the main behavior (recommendations vs. execution), the return type (ranked recommendations with argument templates), and even suggests related tools for specific intents. It does not detail error handling or authentication, but these are not essential given the tool's simplicity and the presence of a schema with parameter semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema contains full descriptions for all 4 parameters (100% coverage), including task, repo, model, and execute. The description does not add new parameter-specific semantics; it reiterates the execute behavior already documented. Given the schema covers meaning, the description adds no v、alue here, aligning with the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Map a natural-language task to the best catalog action(s)' – a specific verb + resource that clearly distinguishes it from sibling tools like set_tool_tier or menu, which are direct actions. It also describes its primary output (ranked recommendations) and the optional execution path, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clarifies when to use the tool by indicating it is for natural-language task routing and explicitly recommends assemble_task_context / plan_turn for context-gathering intents. However, it does not explicitly state exclusions (e.g., 'use when you know the exact action'), though this is strongly implied by the router nature. It provides actionable context without being prescriptive about alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_tool_tierA

Explicit tier override for the current session. Narrows or widens the exposed tool list to 'core' / 'standard' / 'full'. Prefer plan_turn(model=...) for routine per-task use; use set_tool_tier only when you need an explicit override (e.g. escalate mid-task to 'full' after a capability-gated failure).

NameRequiredDescriptionDefault
tierYes

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and openWorldHint=false, so agents know this is a mutating, closed-world operation. The description adds that it narrows/widens the exposed tool list and applies to the current session, which is useful context beyond the annotations. It doesn't disclose every side effect (e.g., persistence), but it's adequate given the annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core purpose, then usage guidance. Every word earns its place with no filler or redundancy. Efficiently structured for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, no-output-schema tool, the description fully covers what it does, when to use it, and the allowed parameter values. There is nothing critical missing for a correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has zero description coverage for the parameter, but the description lists the enum values ('core', 'standard', 'full') and explains their effect (narrow/widen tool list). This fully compensates for the schema gap, making the parameter's meaning clear without needing to open the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states a specific action (override tier for current session) and the resource (exposed tool list), and explicitly names the three allowed values. It also distinguishes itself from plan_turn, the routine alternative, so an agent can immediately tell what this tool is for.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing: prefer plan_turn(model=...) for routine per-task use, use set_tool_tier only for explicit overrides, and provides a concrete example (escalate mid-task to 'full' after a capability-gated failure). This leaves no ambiguity about when to pick this tool over the alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.108.293
    • First observedannounce_model
    • First observedjcodemunch_guide
    • First observedmenu
    • First observedorder
    • First observedroute
    • First observedset_tool_tier

TDQS

A4.1/5.0

Scored across 6 tools

Disambiguation4/5

Tools are mostly distinct: tier management (set_tool_tier vs announce_model), discovery (menu vs route), dispatch (order), and policy (jcodemunch_guide) each have clear purposes. However, menu and route both aid in discovering actions, and set_tool_tier/announce_model both influence tier, so a small overlap exists but descriptions clarify boundaries.

Naming Consistency2/5

Naming is inconsistent: set_tool_tier and announce_model follow a verb_noun pattern, but menu, order, and route are single words, and jcodemunch_guide is a noun phrase. There is no uniform convention across the set, which makes the API slightly harder to predict.

Tool Count5/5

Six tools is well within the ideal range for a server focused on agent self-management and action dispatch. Each tool has a clear role, and the count feels neither thin nor bloated.

Completeness4/5

The surface covers the core lifecycle: tier control (set_tool_tier, announce_model), discovery (menu, route), dispatch (order), and policy guidance (jcodemunch_guide). Potential gaps like a direct 'get current tier' tool are minor and workaroundable via announce_model, so the set is largely complete for its stated purpose.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers