AI-powered GitLab merge request reviewer with code review capabilities
Server has 10 tools with complete schemas and descriptions, but quality is uneven. All tools have descriptions (10-150 chars, mostly adequate) and input schemas with typed parameters. However, descriptions lack LLM-optimized guidance on WHEN to use each tool vs. alternatives. Output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal; no recovery guidance. Security concern: no tool annotations (readOnlyHint/destructiveHint) despite 6 WRITE tools. Naming is clear and verb-first, but some tools conflate multiple concerns (review_code does review + comment + approve in one call).
Create a new branch in a GitLab project
Create a new issue in a GitLab project
Create a new merge request in a GitLab project
Create or update a single file in a GitLab project
Create a new GitLab project
Fork a GitLab project to your account or specified namespace
Get the contents of a file or directory from a GitLab project
No output schemas documented. LLMs cannot predict response structure or plan downstream tool calls. E.g., does search_repositories return channel_id? Does create_merge_request return merge_request_iid for review_code?
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Six WRITE tools (create_or_update_file, create_repository, push_files, create_issue, create_merge_request, fork_repository, create_branch, review_code) lack destructiveHint. Agents cannot distinguish safe from risky operations.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | <=2025-11-25 | v2 |
Push multiple files to a GitLab project in a single commit
Review a merge request for naming and coding standards, approving if met or commenting if not
Search for GitLab projects
review_code conflates multiple concerns: review + comment + approve. Should split into separate tools (review_merge_request, add_merge_request_comment, approve_merge_request) so agents compose them independently.
Descriptions lack WHEN-to-use guidance. E.g., 'Create a new GitLab project' does not explain when to use create_repository vs fork_repository, or what happens if the name already exists. LLMs cannot disambiguate.
No error recovery guidance. If push_files fails with 'main branch protection', the error message should suggest 'Create a branch first with create_branch, then push_files to that branch.' Current code throws generic errors.