MCP server for performing code reviews using external LLMs via Vercel AI SDK.
Single tool with well-structured schema and clear purpose, but descriptions lack LLM-optimization depth and are too verbose. The tool name 'perform_code_review' is action-verb-correct but generic. Parameter descriptions present but inconsistent in quality. Schema is complete and properly typed. Error handling exists but lacks recovery guidance. No tool annotations present.
Performs a code review using a specified LLM on git changes. Requires being run from the root of a git repository.
Tool description is 246 characters, exceeding the optimal 10-200 character range for LLM selection. The description buries the key purpose (git-based code review) after mentioning LLM selection. Should lead with the primary action.
Parameter 'diffBase' description says 'Required if target is branch_diff' but the JSON schema does not enforce this constraint via conditionals or required arrays. Schema validation must align with description, undocumented dependencies cause LLM misuse.
Error handling in tool returns generic 'Error performing code review: <message>' without recovery guidance. LLM receives the error but does not know whether to retry, fix parameters, or ask the user. Should include actionable next steps (e.g., 'Ensure you are in a git repository root; check that git is installed and the specified branch exists').
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 53 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 48 | - | v1 |
No tool annotations present (readOnlyHint, destructiveHint, idempotentHint). This tool modifies no state and is read-only; adding 'readOnlyHint: true' signals to the agent that it is safe to call multiple times without side effects.
Output schema is not formally documented in the code or schema definition. The tool returns '{content: [{type, text}], isError}', but this structure is inferred from the handler code, not declared in the schema. Agents cannot plan downstream data extraction without an explicit response schema.