Skip to main content
Glama

Clonst - Revisión de código con IA mediante MCP para Claude Code, impulsado por Codex

CI

Obtén una segunda opinión de IA sobre tu código antes de enviarlo. Clonst es un servidor del Protocolo de Contexto de Modelo (MCP) que conecta Claude Code con OpenAI Codex para una revisión de código adversarial: Claude escribe el plan o el código, Codex lo critica, Claude lo revisa, y el ping-pong se repite hasta que ambos modelos alcanzan consenso. Funciona con tu suscripción existente de ChatGPT a través de la CLI oficial de Codex. Sin claves API, sin facturación adicional.

Proyecto independiente. No afiliado con OpenAI ("Codex", "ChatGPT") ni con Anthropic ("Claude").

¿Por qué un segundo modelo?

Un LLM que revisa su propia salida comparte sus propios puntos ciegos. Un segundo modelo, de un proveedor diferente, con su propio entrenamiento y su propia memoria, detecta lo que el primero pasó por alto: suposiciones incorrectas, casos límite omitidos, migraciones frágiles, condiciones de carrera, agujeros de seguridad. Clonst convierte eso en un bucle de revisión estructurado con un criterio de salida estricto: consenso, no cortesía.

Related MCP server: claude-code-codex-agents

Características

  • Sin rituales. Instálalo y olvídate: Claude activa la revisión por sí mismo, y solo cuando el cambio vale la pena para tu cuota.

  • Ping-pong hasta el consenso. Rondas ilimitadas por defecto. Veredictos estructurados (APPROVED / CHANGES_NEEDED), cambios requeridos, sugerencias, riesgos. Claude puede rechazar una crítica con justificación; Codex reevalúa el rechazo en la siguiente ronda.

  • Memoria de sesión real. Codex reanuda la misma sesión CLI en cada ronda y recuerda sus críticas anteriores. Sin reenvío de contexto, sin revisor pez de colores.

  • Tu suscripción de ChatGPT, sin claves API. Las revisiones pasan por la CLI oficial de codex y su inicio de sesión existente.

  • Elige tu revisor. Por defecto, las revisiones usan el modelo y el esfuerzo de razonamiento con los que ya está configurada tu CLI de codex. Una línea en ~/.clonst/config.json asigna a las revisiones su propia configuración (por ejemplo, un esfuerzo más rápido y económico) sin tocar tu extensión de Codex; consulta Configuración.

  • Transparencia de costos. El informe final muestra el modelo revisor, las rondas, la duración total y los tokens consumidos: los tokens nuevos destacados, las reservas de caché separadas para que los totales acumulados nunca parezcan más aterradores de lo que son.

  • Un registro de auditoría que sobrevive a la conversación. Cada revisión escribe un informe Markdown estructurado (resumen en lenguaje sencillo + las demandas, cambios y rechazos de cada ronda, textualmente) en ~/.clonst/reports/.

  • La desviación de intención es una verificación de primera clase. El revisor mide el entregable contra tu objetivo declarado, no solo contra estándares técnicos: una "corrección" que cambia silenciosamente el comportamiento que deseabas se marca, y las decisiones de producto se te redirigen a ti en lugar de ser decididas por un LLM.

  • Pragmático por diseño. La revisión se enfoca en defectos materiales: lo que rompe el uso normal, pierde datos, abre un agujero de seguridad o forzaría una reescritura costosa; no en la exhaustividad. La rareza por sí sola nunca excusa un defecto grave, y un detalle barato de arreglar después nunca bloquea tu lanzamiento.

  • Preguntas que realmente puedes responder. ¿Dejaste el bucle corriendo y perdiste el hilo? Cada pregunta que se te hace reformula lo que se está construyendo, por qué surge ahora y qué cambia cada opción, en lenguaje sencillo, sin necesidad de leer código.

  • Recuerda lo que le dices. Di que una revisión fue demasiado exigente, o que una pregunta no tenía sentido, y Clonst lo registra, incluso cuando estabas hablando con Claude en lugar de con Clonst. Nada cambia a tus espaldas: lo cuenta, te dice cuando un comentario sigue apareciendo, y tú decides qué hacer al respecto.

  • Los daños colaterales se buscan en ambos lados. Antes de exigir un cambio, el revisor debe verificar qué más rompería ese cambio (llamantes, contratos, módulos distantes); antes de aplicar uno, Claude debe hacer lo mismo, y un rechazo por daño colateral viene con una alternativa más segura, no con un veto simple.

  • Tus propias reglas de revisión del proyecto. Coloca un CLONST.md en la raíz del proyecto y el revisor verifica tus convenciones además de sus propios estándares. CLAUDE.md guía al escritor; CLONST.md guía al revisor.

  • Revisiones en tu idioma. Las críticas vuelven en el idioma en el que trabajas (por llamada, o de una vez para todas con default_language en la configuración), mientras que el protocolo permanece en inglés legible por máquina.

  • Nunca se pierde nada. Cada respuesta cruda del revisor se guarda en disco antes de cualquier análisis.

  • Multiplataforma. Windows, macOS y Linux, los tres cubiertos por el CI.

  • Endurecido. Protecciones contra inyección de prompts, sandbox de solo lectura, argumentos CLI en lista blanca, suite de pruebas hermética (sin llamada a LLM, sin cuota).

¿Cuándo se activa?

Nunca tienes que pedirlo. Claude decide cuándo una revisión vale tu cuota, y la regla es lo que está en juego, no el tamaño:

Revisa por sí mismo

Permanece en silencio

Lógica de negocio, cálculos

Presentación pura (HTML/CSS, texto)

Flujos de datos, modelos, migraciones

Documentación, comentarios

Rutas, APIs, integraciones

Cambios de nombre sin cambio de comportamiento

Estado, manejo de errores, concurrencia

Ajustes de configuración local

Seguridad, autenticación

Scripts desechables y prototipos

Planes y arquitectura, antes de codificar

(cuando tiene dudas, te pregunta)

El ping-pong es ilimitado por defecto: se ejecuta hasta el consenso, consultándote cada 5 rondas (configurable). Y puedes limitar cualquier revisión en lenguaje sencillo: "revisa esto, máximo 3 rondas".

Cómo funciona

You ── conversation ── Claude (reviser, keeps the conversation context)
                          │
                          │  clonst_review (MCP, one call = one critique)
                          ▼
                       Clonst ── spawn ── codex exec [resume <thread_id>]
                                             (reviewer, keeps its session)

El bucle vive del lado de Claude: envía, Codex critica, Claude revisa en la conversación (frente a ti), reenvía con el thread_id devuelto, hasta que consensus: true. El bucle se impulsa a través del llamante (el thread_id viaja con cada llamada), mientras que el servidor mantiene registros por sesión en disco: registros completos, el veredicto de la ronda anterior para una recuperación exacta, los totales de duración/tokens en ejecución y el informe de revisión estructurado (regenerado en cada ronda). Las sesiones de Codex persisten en el lado de la CLI.

Inicio rápido

Requisitos:

  • Claude Code - la CLI de terminal o las extensiones de VS Code / JetBrains, que comparten la misma configuración MCP

  • Node.js 22+

  • La CLI de Codex, iniciada sesión con un plan de ChatGPT:

npm install -g @openai/codex
codex login

Instalar Clonst (recomendado, mediante npm):

claude mcp add clonst --scope user -- npx -y @clonst/clonst

O desde el código fuente:

git clone https://github.com/capritora/clonst.git && cd clonst
npm install && npm run build
claude mcp add clonst --scope user -- node /absolute/path/to/clonst/dist/index.js

Verifica que funciona: en una nueva conversación de Claude Code, di "ping clonst". Esperado: codex_available: true, codex_logged_in: true.

Cómo es una revisión

Las revisiones ocurren por sí solas, pero también puedes dirigirlas:

Propón un plan para X, luego haz que Clonst lo revise hasta el consenso.

Haz que Clonst revise esta migración, máximo 3 rondas.

Pídele a Clonst una revisión centrada en seguridad de este flujo de autenticación.

Ves cada revisión ocurrir en la conversación, y al consenso Claude termina con un breve informe, por ejemplo:

Revisión de Clonst: GPT-5.5 (alto esfuerzo), 2 rondas, 5 min 30 s, ~210k tokens de entrada nuevos más 18k tokens de salida (entrada acumulada 2.8M, de los cuales 2.6M fueron reservas de caché). El revisor requirió un límite anti-doble corrección en la migración y un tiempo de espera en la llamada API, ambos aplicados. Rechacé una sugerencia (fuera del alcance del MVP) y el revisor aceptó la justificación. Informe completo ronda por ronda: ~/.clonst/reports/2026-07-06-a3f1...md

¿Quieres el detalle ronda por ronda? Solo pregunta ("guíame por las rondas"): Claude mantiene todo el intercambio y lo informa a pedido.

El archivo de informe de revisión

Cada revisión también escribe un informe Markdown estructurado en ~/.clonst/reports/, actualizado en cada ronda, para que la auditoría sobreviva a la conversación. Comienza con el resumen en lenguaje sencillo (sellado textualmente después del consenso), luego una sección por ronda con las palabras exactas que usó cada parte:

  • lo que el revisor requirió, sugirió y marcó como riesgoso (textualmente),

  • lo que el revisor declaró cambiado o rechazado antes de cada ronda (textualmente),

  • modelo, esfuerzo, duración y tokens por ronda, más totales de toda la revisión,

  • un rastro de auditoría que apunta al registro de sesión y la salida cruda del revisor.

El archivo es una proyección pura de un estado del lado del servidor: nada se reformula después del hecho, y el texto originado por LLM se escapa para que no pueda falsificar secciones del informe. Un informe que comienza a mitad de sesión (hilo reanudado) se marca explícitamente como PARTIAL HISTORY. Dos identificadores, dos trabajos: report_id nombra el archivo de informe, thread_id reanuda la sesión del revisor.

Herramientas

clonst_ping

Estado del servidor: disponibilidad de la CLI de codex, versión, estado de inicio de sesión, configuración cargada, directorio de registros. No consume cuota.

clonst_review

Una crítica estructurada por llamada. Parámetros (todos impulsan el LLM llamante; normalmente nunca los escribes tú mismo):

Parámetro

Por defecto

Rol

content (obligatorio)

-

El plan/código a revisar, completo (rondas posteriores: la versión revisada completa, nunca un diff)

context

ninguno

Ronda 1: la vara de medir del revisor: objetivo, comportamiento previsto, no objetivos, restricciones, decisiones ya tomadas. La verificación de desviación de intención mide el entregable contra esto

project_path

ninguno

Ruta ABSOLUTA del proyecto: Codex se ejecuta allí y lee los archivos reales (sandbox de solo lectura). Consulta Privacidad más abajo

thread_id

ninguno

Rondas posteriores: el identificador devuelto por la llamada anterior (reanuda la sesión de Codex)

round

1 (2 con thread_id)

Número de ronda; límite de seguridad estricto en 50

max_rounds

ilimitado

Límite de rondas estricto para esta revisión; al límite, el desacuerdo va al usuario

language

idioma del contenido

Código como "fr" o "pt-BR": el revisor escribe críticas en ese idioma. Resuelto del lado del servidor; el valor crudo nunca llega al prompt

review_focus

todo

errores, arquitectura, rendimiento, seguridad, o todo

changes_made / changes_rejected

ninguno

Rondas posteriores: lo que se cambió / rechazó con justificación

Resultado: verdict, consensus (solo true en un APPROVED probado: JSON limpio, cero cambios requeridos, sin análisis de respaldo), critique, required_changes, suggestions, risks_identified, thread_id, duración y uso de tokens por ronda y de toda la revisión, reviewer_model / reviewer_reasoning_effort (resolución de mejor esfuerzo: anulación, si no configuración de codex, si no null), report_id / report_path (el archivo de informe estructurado; report_error cuando no se pudo escribir — la revisión en sí no se ve afectada), y una instrucción next_action (texto + campos tipados) que impulsa el bucle.

clonst_feedback

Registra un comentario sobre cómo funciona Clonst: demasiado exigente, pregunta poco clara, alcance incorrecto, demasiado lento, estilo de salida. Claude lo invoca por sí solo cada vez que dices algo así, ya sea que te dirijas a Clonst, a Claude o a nadie en particular. Solo metadatos: sin llamada al revisor, sin cuota, sin red. Cuenta las ocurrencias por tema y le dice a Claude cuando uno se vuelve recurrente; nunca cambia ningún comportamiento por sí mismo.

clonst_topics

Enumera, busca o renombra esos temas. Solo acceso a archivos locales — nunca inicia nada. action: "list" / "search" (con query, limit, offset) para ver lo que se ha acumulado, action: "describe" para mejorar la descripción de una línea de un tema.

clonst_report_summary

Sella el resumen en lenguaje natural en el archivo de informe de revisión, textualmente, después del consenso. Toma report_id (devuelto por clonst_review — no thread_id) y summary. Solo metadatos: sin generar revisor, sin cuota, idempotente.

Configuración

Archivo opcional, ausente por defecto: crea ~/.clonst/config.json tú mismo para cambiar cualquier clave. Se relee en cada llamada; los valores no válidos vuelven al valor predeterminado con una advertencia.

Clave

Valor predeterminado

Qué hace

codex_model

null = hereda ~/.codex/config.toml

Modelo usado solo para revisiones (ej. "gpt-5.5"). Tu extensión Codex VS Code mantiene su propia configuración

codex_reasoning_effort

null = hereda

Esfuerzo de razonamiento solo para revisiones (ej. "medium", "high", "xhigh"). Menor = rondas más rápidas y baratas

default_language

null = idioma del contenido revisado

Idioma de las críticas cuando el llamante no pasa uno, como un código "fr" o "pt-BR"

feedback_recurring_threshold

2

Cuántas veces debe repetirse un tema antes de que Claude lo marque como recurrente (2-20)

feedback_retention_days

180

Un comentario escuchado solo una vez se elimina después de este número de días; cualquier cosa dicha dos o más veces se conserva para siempre (30-3650)

suggested_max_rounds

5

Sin un límite explícito, Claude se pone en contacto contigo cada N rondas (5, 10, 15...) antes de continuar. NO es un límite

timeout_per_call_seconds

600

Tiempo de espera de una llamada de Codex (los modelos de razonamiento tardan minutos)

Ejemplo, dando a las revisiones su propio modelo y un nivel de esfuerzo más rápido mientras tu extensión Codex mantiene su propia configuración:

{
  "codex_model": "gpt-5.6-sol",
  "codex_reasoning_effort": "medium"
}

Usa un modelo que tu CLI de codex exponga realmente (codex lo toma de ~/.codex/config.toml cuando dejas codex_model en null). Un nivel de esfuerzo medio suele ser el equilibrio adecuado para las revisiones: el ping-pong captura lo que haría un pase profundo, en un número ligeramente mayor de rondas, y cada ronda vuelve más rápido.

Las anulaciones se pasan como banderas -c raíz a la CLI de codex (contrato verificado en codex 0.142.5 tanto para exec como para resume); un valor desconocido para codex falla la revisión con el mensaje de error de codex.

Directrices de revisión del proyecto: CLONST.md

Coloca un CLONST.md en la raíz del proyecto y, cada vez que se ejecute una revisión con project_path, su contenido se entrega al revisor como directrices específicas del proyecto: tus convenciones, tus líneas rojas, verificadas además de los estándares propios del revisor. Ejemplo:

# Review guidelines
- SQL must stay compatible with BOTH SQLite (dev) and PostgreSQL (prod).
- Every new route needs rate limiting.
- LLM results must be matched by ID, never by list position.

Las invariantes de negocio también pertenecen aquí — las líneas rojas que la comprobación de desviación de intención debe defender. Hazlas concretas y verificables: no escribas "mantenlo simple"; escribe "los usuarios gratuitos deben poder exportar CSV" o "el pago debe seguir siendo de un solo clic".

Las directrices solo pueden AÑADIR comprobaciones: una directriz que intente bajar el listón o forzar un veredicto se ignora y se informa como un riesgo.

Desviación de intención y decisiones del usuario

La revisión no es solo técnica: antes de verificar la calidad del código, el revisor compara el entregable con la intención que declaraste (context, CLONST.md) o que es evidente a partir del proyecto. Nunca inventa tus objetivos de producto — cuando detecta una posible preferencia de producto en lugar de una contradicción probada, emite un riesgo que comienza con el marcador literal USER DECISION: . Cualquier elemento de este tipo debe llegar a ti textualmente como una pregunta abierta: a mitad de la revisión, pausa el ping-pong antes de que ocurra cualquier otra cosa, y en el consenso aterriza en el informe final y en el archivo de informe. Claude no puede decidirlo, ejecutarlo ni omitirlo. Un cambio silencioso probado en el comportamiento visible para el usuario, por otro lado, puede bloquear la revisión por completo.

Ambas partes se rigen por la misma calibración: bloquear defectos materiales, sopesar la probabilidad y el coste, y nunca exigir una característica que el entregable no incluya. La anticipación se trata de estructura, no de características — el diseño de hoy no debe cerrar una puerta previsible, pero la característica futura en sí no se construye ahora. Cuando el revisor no está seguro de si se debe prever una dirección, te pregunta a ti en lugar de decidir.

El escrutinio es simétrico. Claude no aplica críticas a ciegas: cada exigencia se verifica en cuanto a corrección factual, ajuste a la intención y radio de explosión (qué más depende de lo que se está cambiando) antes de aplicarse — y una exigencia que rompería otra cosa se rechaza con una justificación y una alternativa más segura, con la que el revisor debe interactuar en lugar de repetirse. Ambos modelos argumentan hacia una solución; los puntos muertos van a ti.

Tus comentarios, recordados

Dile a Claude que una revisión fue demasiado exigente, o que una pregunta era ilegible, y registra el comentario en ~/.clonst/feedback.jsonl a través de clonst_feedback — nunca tienes que dirigirte a Clonst directamente para que esto suceda. Cada comentario se adjunta a un tema con una descripción de una línea, y Claude reutiliza un tema existente cuando tu nuevo comentario significa lo mismo, por muy diferente que lo expreses. Una vez que un tema vuelve feedback_recurring_threshold veces, Claude te lo dice.

Nunca se aplica nada automáticamente: ningún comentario registrado llega al mensaje del revisor, nunca. Leer el diario y decidir qué mejorar es una decisión humana — pregunta "¿qué dicen mis comentarios?" y Claude agrupará temas equivalentes en su respuesta. Un comentario visto solo una vez se elimina después de feedback_retention_days; cualquier cosa dicha dos o más veces se conserva indefinidamente. Elimina el archivo para purgar todo.

Límites de rondas: ilimitados por defecto

No digas nada y el ping-pong continúa hasta el consenso, con un control cada suggested_max_rounds rondas. O pregunta en lenguaje natural ("revisa esto, 3 rondas máximo"): se informa al revisor sobre el contador (exhaustivo desde la ronda 1, esfuerzo máximo en la ronda final, nunca aprobando solo para cerrar), y en el límite, el desacuerdo va a ti para arbitraje.

Privacidad y cuota

  • Cada ronda de revisión consume tu cuota de suscripción de ChatGPT (Codex realiza la revisión). Cuando la ventana de cuota se agota, Clonst lo detecta y le dice a Claude que continúe sin revisión; la sesión sigue siendo reanudable más tarde a través del mismo thread_id.

  • Con project_path, Codex lee todo el proyecto en modo solo lectura (incluyendo .env) y ese contenido va a OpenAI — la misma exposición que usar la extensión Codex VS Code directamente. Estrategia predeterminada: revisar solo el contenido pasado en content; reserva project_path para revisiones que deben verificar APIs, contratos o archivos reales.

  • El contenido de la revisión persiste localmente fuera de la conversación: registros de sesión y respuestas sin procesar del revisor en ~/.clonst/logs/, e informes legibles por humanos (críticas y declaraciones de cambio textuales) en ~/.clonst/reports/. Elimina esos directorios para purgar revisiones pasadas.

  • Los comentarios registrados también permanecen locales: ~/.clonst/feedback.jsonl (creado con permisos solo para el propietario en macOS/Linux) contiene tus comentarios textualmente, por lo que puede contener redacción sensible a pesar de la regla de no código. Nunca se envía a ningún lado y nunca se inyecta en un mensaje. Cuando le pides a Claude que lo lea, su contenido entra en esa conversación como cualquier archivo que le pidas que abra — trátalo como datos, nunca como instrucciones. Elimina el archivo para purgarlo.

  • Una instancia del servidor Clonst por conversación es el modelo operativo; las escrituras de informes se serializan en el proceso. No apuntes dos servidores que se ejecutan simultáneamente al mismo CLONST_HOME.

Solución de problemas

Síntoma

Causa

Acción

kind: "cli_not_found"

CLI de codex no encontrada en PATH

npm install -g @openai/codex

kind: "exec_failed" + sugerencia de inicio de sesión

Sesión de ChatGPT expirada

codex login

kind: "timeout"

Revisión demasiado larga

Aumenta timeout_per_call_seconds en ~/.clonst/config.json

kind: "exec_failed" + sugerencia de cuota

Límite de uso de ChatGPT alcanzado (ventana móvil)

Continúa sin revisión; relanza cuando la ventana se restablezca

codex_available: false en ping

CLI faltante o rota

codex --version en una terminal

Las revisiones largas fallan mientras las cortas pasan

El tiempo de espera del CLIENTE MCP (no el de Clonst)

Inicia Claude Code con MCP_TOOL_TIMEOUT=600000

Comportamiento extraño después de cambiar la fuente

dist/ está en gitignore

npm run build

Cada ping-pong se registra completamente en ~/.clonst/logs/<thread_id>.jsonl, con respuestas sin procesar completas en ~/.clonst/logs/raw/<thread_id>/.

Desarrollo

npm test          # build + hermetic test suite (no LLM calls)
npm run smoke     # full MCP protocol smoke test

Los scripts scripts/probe-*.ps1 fijan el contrato real de la CLI de codex y consumen cuota de ChatGPT: solo ejecución manual. La interfaz ReviewerProvider está lista para otras CLI de revisores (ej. Gemini).

Licencia

MIT. Proporcionado tal cual, sin garantías de soporte. Usado a diario por su autor.

Available Tools

3 tools
clonst_pingA

Full Clonst server diagnostic: health, codex CLI availability and version, login status, loaded config, logs directory. Consumes no LLM quota.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool consumes no LLM quota and lists the diagnostic checks, but does not specify if there are side effects or network calls.

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: first efficiently lists the diagnostics, second adds the notable quota information. No unnecessary words.

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

Completeness3/5

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

The description explains what the tool checks but not what it returns (e.g., health status format). Given no output schema, more detail on the response would improve completeness.

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?

There are no parameters, so the baseline is 4. The description adds value by explaining the tool's purpose, which is sufficient given no parameters are needed.

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 clearly states 'Full Clonst server diagnostic' and lists specific aspects it checks (health, codex CLI availability and version, login status, loaded config, logs directory), distinguishing it from siblings that are summary/review tools.

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

Usage Guidelines3/5

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

The description mentions 'Consumes no LLM quota' implying it's safe to use freely, but lacks explicit guidance on when to use this tool instead of siblings like clonst_report_summary or clonst_review.

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

clonst_report_summaryA

Seal your plain-language summary into the structured review report file, verbatim. Call it once after a consensus, with the report_id returned by clonst_review (NOT the thread_id: report_id identifies the report file, thread_id resumes the reviewer session) and the exact text of the final report you gave the user. Metadata-only: no reviewer spawn, no LLM quota. Idempotent: calling it again overwrites the summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryYesThe exact plain-language summary you gave the user, verbatim.
report_idYesThe report_id returned by clonst_review (distinct from thread_id).

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
report_pathYes

TDQS

A5/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses traits: it is idempotent (overwrites on re-call), metadata-only, and does not spawn reviewers or consume LLM quota. No contradictions.

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?

Three sentences, each necessary and front-loaded. First sentence states purpose, second gives usage constraints, third adds behavioral traits. No redundant information.

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?

Given simple schema (2 required params, no enums, no nested objects) and presence of output schema, the description fully covers purpose, when to use, parameter nuances, and behavior. No gaps identified.

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 coverage is 100% with descriptions, but the description adds critical context: for 'report_id', it distinguishes from 'thread_id'; for 'summary', it specifies 'exact text you gave the user verbatim'. This extra guidance enhances parameter understanding.

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 clearly states it seals a plain-language summary into a structured report file. It uses a specific verb ('seal') and resource ('structured review report file'), and distinguishes itself from sibling tools ('clonst_ping', 'clonst_review') by specifying it is called after consensus to store the final summary.

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?

Explicitly instructs to call once after a consensus, and clarifies that 'report_id' is from clonst_review (not thread_id). Also mentions metadata-only nature (no reviewer spawn, no LLM quota), providing clear usage context.

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

clonst_reviewA

Have a plan, code or proposal critiqued by Codex (a second LLM, through its CLI and the user's ChatGPT subscription). One call = one structured critique (APPROVED/CHANGES_NEEDED verdict, required changes, suggestions, risks). The revision loop lives on your side: critically evaluate each critique - apply what holds, reject with justification what is wrong, drifts from the project's intent, or would break something else - then call this tool again with the revised content and the returned thread_id - the reviewer keeps its session memory across rounds. Loop until consensus=true, following the returned next_action field, or until the user decides to stop. WHEN TO USE IT: the criterion is LOGIC, not size. Call it by default, without being asked, for any development that touches the project's logic or behavior (business logic, computations, data flows, models, routes, APIs, state, error handling, concurrency, security, migrations), and for plans and architecture decisions before coding. Do NOT use it for pure presentation (static HTML/CSS, copy), documentation, renames without behavior change, or throwaway content the user will not run. Every call consumes the user's subscription quota; when the scope is unclear, ask the user.

ParametersJSON Schema
NameRequiredDescriptionDefault
roundNoRound number (default: 1 without thread_id, 2 with). Hard safety cap: 50 rounds (a ping-pong reaching that point is a runaway, not a review).
contentYesThe plan, code or proposal to review, COMPLETE (on later rounds: the full revised version, not a diff).
contextNoRound 1 only: the reviewer's yardstick for the intent-drift check - user goal, intended behavior, non-goals, constraints, business/product intent, and decisions already made with the user. The reviewer measures the deliverable against this and flags divergences; the richer it is, the better the review. Ignored when thread_id is provided (the reviewer already holds the context in session memory).
languageNoLanguage code for the reviewer's free-text output: language[-Script][-Region] only (e.g. "fr", "pt-BR", "zh-Hans"). Pass the language of your conversation with the user so critiques read naturally to them. Omit to let the reviewer use the language of the reviewed content.
thread_idNoLater rounds: the identifier returned by the previous call. Resumes the reviewer's session, so it remembers its critiques. Omit on round 1.
max_roundsNoRound limit set by the user for THIS ping-pong (the reviewer is informed and calibrates its demands). Omit by default: no limit, the loop continues until consensus. Pass the same value on every round.
changes_madeNoLater rounds: summary of the changes made in response to the previous critiques.
project_pathNoAbsolute path of the project: the reviewer runs there and can read the real files. Reserve it for reviews that must verify existing APIs/contracts/files: by default the content parameter is enough. When set, the ENTIRE project (including .env and secrets) becomes readable by the reviewer, and token consumption can grow sharply: the reviewer explores files agentically, repeatedly re-sending its growing context (largely served from cache when the CLI reports cache hits). Pass it only when independent verification adds value.
review_focusNoRound 1: review focus. Default: all.
changes_rejectedNoLater rounds: rejected critiques, each with its justification (the reviewer will evaluate them).

Output Schema

ParametersJSON Schema
NameRequiredDescription
roundYes
scoreYes
usageYes
statusYes
verdictYes
critiqueYes
consensusYes
report_idYes
thread_idYes
next_roundYes
next_actionYes
report_pathYes
session_logYes
suggestionsYes
total_usageYes
report_errorYes
reviewer_modelYes
should_reinvokeYes
duration_secondsYes
next_action_kindYes
required_changesYes
risks_identifiedYes
session_migratedYes
reviewer_feedbackYes
requires_user_inputYes
parsed_from_fallbackYes
total_duration_secondsYes
reviewer_reasoning_effortYes

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description fully discloses behavior: it explains the review round loop, session memory via thread_id, the 50-round cap, the need for critical evaluation, and the next_action field. It also warns about subscription quota and token consumption when using project_path, making agent behavior highly predictable.

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 and informative but lacks structural breaks like bullet points or sections, which would improve scannability. However, every sentence serves a purpose and there is no extraneous information given the tool's complexity.

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?

Given the tool's complexity (10 parameters, iterative process, output schema exists), the description is fully complete. It covers the review workflow, usage conditions, parameter roles, loop mechanism, and safety caps. The presence of an output schema removes the need to describe return values, and the description adequately fills all other gaps.

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?

Although schema description coverage is 100% with parameter descriptions, the tool description adds workflow context beyond schemas. For example, it explains when to pass thread_id (later rounds), why context is ignored if thread_id exists, and that max_rounds should be the same each round. This enriches agent understanding beyond the schema alone.

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 clearly states the tool's purpose: 'Have a plan, code or proposal critiqued by Codex.' It specifies it provides a structured critique with verdict, changes, and risks. It differentiates from siblings (e.g., clonst_ping, clonst_report_summary) through its detailed description of the review process and iteration loop.

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?

The description explicitly details when to use the tool: 'WHEN TO USE IT: the criterion is LOGIC, not size. Call it by default... for any development that touches the project's logic or behavior.' It also lists exclusions: 'Do NOT use it for pure presentation, documentation, renames without behavior change, or throwaway content.' This provides clear guidance on when to use versus alternatives.

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. 3 tool updatesv1.4.1
    • First observedclonst_ping
    • First observedclonst_report_summary
    • First observedclonst_review

TDQS

A4.3/5.0

Scored across 3 tools

Disambiguation5/5

Each tool targets a distinct stage in the Clonst workflow: diagnostics (ping), iterative code review (review), and final report sealing (report_summary). No functional overlap.

Naming Consistency5/5

All tools follow a consistent 'clonst_' prefix and snake_case verb_noun pattern (ping, report_summary, review), making names predictable.

Tool Count4/5

Three tools is slightly minimal, but they cover the core diagnostic, review, and summary workflow without unnecessary redundancy. The scope is narrow enough that each tool earns its place.

Completeness3/5

The core review loop and summary writing are present, but there is no tool for retrieving past reviews or reports, viewing review history, or managing sessions beyond the thread_id. Minor gaps.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers