SECCIÓN 12

MCP Server

El MCP (Model Context Protocol) expone las capacidades de ixtli como herramientas nativas que Claude Code u otro cliente MCP puede invocar directamente.

Nota: Para la mayoría de los casos de uso, los hooks y slash commands son más eficientes que el servidor MCP, ya que no requieren cargar los schemas de herramientas en el contexto del modelo. Usa el MCP cuando necesites acceder a recursos estructurados (grafo PIL, historial de reviews) o cuando trabajes con un cliente que lo requiera explícitamente.

Iniciar el servidor

ixtli mcp serve

Inicia el servidor MCP en modo stdio. Normalmente no lo corres manualmente — el cliente MCP lo lanza como proceso hijo automáticamente.

Configurar en Claude Code

Por proyecto (.mcp.json en la raíz del repo):

{
  "mcpServers": {
    "ixtli": {
      "command": "ixtli",
      "args": ["mcp", "serve"]
    }
  }
}

Global (~/.claude/claude_desktop_config.json):

{
  "mcpServers": {
    "ixtli": {
      "command": "ixtli",
      "args": ["mcp", "serve"]
    }
  }
}

ixtli setup escribe el .mcp.json automáticamente.


Herramientas disponibles (15)

Grupo review:

HerramientaDescripción
review_staged_filesAnaliza los archivos staged. Acepta agent_context con task, confidence, iterations y tool_outputs para contexto del agente.
review_filesAnaliza archivos específicos (rutas relativas). Acepta agent_context.
review_diffAnaliza un diff en formato unified diff
review_commitAnaliza commits y genera mensaje Conventional Commits
poll_reviewConsulta el estado de un review en progreso dado un review_session_id
re_reviewVerifica que los fixes aplicados a un archivo resolvieron los issues de un review anterior

Parámetros de re_review:

ParámetroTipoDescripción
filestringRuta del archivo (relativa al root)
resolved_issuesarrayIssues que el agente dice haber resuelto. Cada item: {issue_id, issue, code_evidence, fix_applied}
session_idstring (opcional)ID de la sesión original para correlación
intentstring (opcional)Descripción de los fixes en lenguaje natural

Parámetros de agent_context (en review_staged_files y review_files):

CampoTipoDescripción
taskstringInstrucción exacta que recibió el agente
confidencenumberConfianza del agente en su solución (0.0–1.0)
iterationsintegerNúmero de intentos para llegar a la solución
tool_outputsarray de stringsOutput de herramientas ejecutadas (pytest, ruff, tsc, etc.)

Grupo issues:

HerramientaParámetrosDescripción
list_issuesreview_session_id, severities[], status, filenameLista issues con filtros opcionales
resolve_issuereview_session_id, issue_idMarca un issue como resuelto
ignore_issuereview_session_id, issue_id, reasonMarca un issue como ignorado (falso positivo)

Grupo PIL — 100% local, sin red, sin API key (equivalentes a ixtli index ...):

HerramientaParámetrosDescripción
get_project_contextFramework, ORM, lenguaje principal, estado del índice
get_symbol_infosymbolCallers, endpoints afectados, línea de definición
get_impacted_filesfile, symbol, depthRadio de impacto de modificar un archivo/símbolo
get_endpointsmethod, path_containsLista de endpoints HTTP detectados, con filtros
get_modelsname_containsLista de modelos ORM detectados, con filtro
search_symbolsquery, kind, fileBusca símbolos por nombre o tipo (incluye model)

Grupo historial:

HerramientaParámetrosDescripción
list_reviewstypeHistorial de reviews anteriores con filtro por tipo

Recursos disponibles

URIContenido
ixtli://project/metadataFramework, ORM, estado del PIL
ixtli://project/index/symbolsPrimeros 500 símbolos del índice
ixtli://project/index/graphGrafo completo de dependencias
ixtli://project/endpointsTodos los endpoints detectados
ixtli://reviews/recentÚltimos 5 reviews
ixtli://review/{id}/issuesIssues de un review específico

Prompts disponibles

PromptDescripción
review_and_fixReview staged + ofrece aplicar fixes críticos/altos
pre_commit_reviewReview rápido min_severity=high antes de commit
understand_codebaseResumen del proyecto: framework, endpoints, calidad
impact_analysisAnálisis de impacto antes de modificar un archivo/símbolo

Ejemplo de flujo encadenado (MCP)

1. review_staged_files(include_fix=true, agent_context={task: "Fix auth bug"})
   → encuentra SQL injection en auth.py:42

2. get_symbol_info("UserService.create_user")
   → callers: [AuthController.login], endpoints: [POST /auth/login]

3. [Claude explica el issue con contexto completo]

4. [Claude edita auth.py aplicando fixed_code]

5. re_review(file="src/api/auth.py", resolved_issues=[{issue_id: "abc", fix_applied: "Parameterized queries"}])
   → {"resolved": ["SQL injection"], "still_present": [], "new_issues": []}

6. resolve_issue(review_session_id="...", issue_id="abc")
Integración con herramientas AILSP — Language Server Protocol