Server has 7 tools with explicit schemas and descriptions. Naming follows verb_noun convention (register_plan, review_code_chunk, list_sessions, etc.). Most tools have descriptions 50-150 chars, meeting baseline. Input schemas are present with type definitions and parameter descriptions. However, output schemas are referenced but not visible in provided source (only schema names like registerPlanOutputSchema imported). Error handling exists but lacks actionable recovery guidance. Tool composition is reasonable but some parameters could be more constrained (e.g., modification_type should be enum, not free string). No security-critical issues detected but path validation and input sanitization are delegated to helper functions not shown.
Clean up expired review sessions.
Check the health status of the code review server.
List AST indexing errors for a project.
List available prompt profiles for code review.
List review sessions, optionally filtered by status.
Register an execution plan for iterative MCP code review.
Review a code chunk against a plan step with AST-localized context and pre-flight checks.
Output schemas not visible in source code. registerPlanOutputSchema, reviewCodeChunkOutputSchema, etc. are imported but definitions not provided. Cannot verify output structure, field naming, or whether responses include chaining IDs needed for downstream tool calls.
modification_type parameter in review_code_chunk accepts free string but should be enum. Description says 'INSERT, MODIFY, DELETE, or REPLACE' but no enum constraint in schema. LLMs will hallucinate invalid values.
Error handling in handleRequest() catches StateNotFoundError, StateConflictError, UserInputError but returns generic messages ('Resource not found', 'Review state changed concurrently'). No actionable recovery guidance for LLM (e.g., 'Try calling list_sessions() to find active sessions').
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2025-06-18+ | v2 |
list_sessions and list_indexing_errors accept optional string parameters (status, project_path) but lack enum constraints or format validation. 'status' description says 'ACTIVE or COMPLETED' but no enum in schema.
review_code_chunk accepts code_chunk up to 1,000,000 chars but no pagination or streaming guidance. Large payloads risk context window exhaustion. No mention of chunking strategy or max recommended size in description.