A code review server that opens a browser UI for users to review uncommitted changes and leave inline comments, with support for AI agent workflows including reply tracking and session management.
Two tools with complete schemas and detailed descriptions. Both tools have proper Zod schema definitions with all parameters typed and described. Descriptions are comprehensive (200+ chars) and include workflow guidance. However, output schemas are not formally documented in the tool definitions, they are returned as JSON strings without explicit schema declarations. Error handling is present but minimal. Tool naming follows verb_noun pattern appropriately. No security issues detected (no credentials in params). Composition is sound: two distinct, single-purpose tools that chain together logically.
Record replies to review comments after making fixes. Returns immediately with the updated ReviewResult. Always call this after making fixes — do not call codechat_review again just to submit replies. Set resolved to false on a reply when you have a clarifying question instead of a fix.
Open a browser UI for the user to review uncommitted changes and leave inline comments. Blocks until the user submits. Returns a ReviewResult JSON with { sessionId, status, comments }. Workflow: 1. When the result comes back, summarize each unresolved comment (file, line, what the reviewer said) and state your plan for each. Skip already-resolved comments. 2. Make the fixes. 3. Call codechat_reply to record your responses. 4. If status is "changes_requested" after replying, ask the user if they'd like another review round — then call codechat_review again. 5. Repeat until status is "approved". Proactively offer a review when you've made significant code changes and want the user to verify before proceeding — don't wait to be asked. Sessions are automatically resumed by repository path — calling this again on the same repo continues the existing session with all previous comments and replies preserved. Do not pass sessionId unless you need to resume a different session.
Output schema not formally documented. Tools return ReviewResult JSON as text, but the schema structure (sessionId, status, comments fields) is only described in prose, not in a structured schema declaration. LLMs cannot reliably parse unstructured JSON responses.
Error handling lacks recovery guidance. WorkflowError is caught and returned as isError=true with a message, but the message does not guide the LLM on what to do next (retry, ask user, check logs, etc.). No error categorization (retryable vs fatal).
No tool annotations. Neither tool declares readOnlyHint, destructiveHint, or idempotentHint. codechat_review is destructive (opens browser, blocks user), and codechat_reply modifies state (records replies). These hints help agents reason about side effects and retry safety.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
No pagination or result limits documented. If ReviewResult.comments is large, the response could exceed context limits. No guidance on max comment count or pagination strategy.
sessionId parameter description says 'Usually not needed' but does not explain when it IS needed or how to obtain it from a previous session. Unclear when to pass it vs rely on auto-discovery.