The server implements 6 tools with visible schemas and descriptions in index.ts. All tools are named with clear action verbs (search_, get_, list_, save_). Descriptions exist but are terse (10-40 chars) and lack depth. Input parameters have type definitions and brief descriptions, but parameter descriptions could be more detailed. Output schemas are partially documented through TypeScript interfaces but not explicitly documented in tool registrations. Error handling exists but lacks recovery guidance. The code shows careful implementation (proper URL encoding, error handling, pagination awareness) but the tool interface needs stronger LLM-optimized documentation.
Get commit diffs
Get merge request details
Get merge request changes/diffs
Get a list of repository commits in a project
Save code review report as HTML file
Search for GitLab projects
Descriptions are terse (10-40 characters) and lack context about WHEN to use each tool, what it returns, and prerequisites
Parameter descriptions are minimal. E.g. 'Project ID or URL-encoded path' lacks guidance on format (is 123 valid? Is 'group/project' valid?) or when to use each variant
No documented output schemas in tool registrations. TypeScript interfaces exist (GitLabMergeRequestSchema, etc.) but are not exposed in the tool definition for LLM visibility
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 43 | - | v1 |
Error messages are generic and lack recovery guidance. E.g. 'GitLab API error: 404' does not tell the LLM whether to retry, search for the resource, or ask the user
save_code_review_report is a destructive operation (writes to local filesystem) but has no confirmation/dry-run variant and no documentation of side effects
No dependency hints. E.g. get_merge_request_diffs should suggest 'Call search_projects() first if you only have a project name' but does not