MCP server for CERN GitLab - code discovery, documentation access, and usage examples for HEP projects
The CERN GitLab MCP server demonstrates solid definition quality with consistent naming patterns, comprehensive parameter schemas, and clear descriptions across all 15 tools. All tools start with action verbs (get_, list_, search_, inspect_) following production conventions. Descriptions are present and contextual (average ~120 chars), falling within the productive range. Input schemas are well-structured with proper JSON Schema types, enums for constrained parameters, and meaningful descriptions. However, there are notable gaps: (1) output schemas are not documented in the provided source, no structured return type definitions visible; (2) error handling and recovery guidance is minimal; (3) tool annotations (readOnlyHint, destructiveHint) are absent despite all tools being READ_ONLY; (4) parameter descriptions occasionally lack format/constraint details (e.g., 'sort_by' and 'order' have enums but no usage guidance). The tools are well-composed and single-responsibility, with natural chaining potential (search_projects → get_project_info → list_project_files → get_file_content). No security issues detected, all tools are read-only GitLab queries with no credential exposure.
Retrieve the content of a specific file from a repository
Get detailed information about a specific project
Get the README content for a project
Get details about a specific project release
Get wiki pages for a project
Inspect a project structure including branches, tags, wiki, and recent activity
List all branches in a project repository
Output schemas not documented. No structured return type definitions visible in source. LLMs cannot determine what fields to expect from tool responses, breaking chaining and forcing manual parsing of unstructured output.
Tool annotations absent. Despite all tools being READ_ONLY, no readOnlyHint/destructiveHint/idempotentHint directives present. Agents cannot determine safe-to-retry semantics.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 67 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 54 | - | v1 |
List files and directories in a project's repository
List all releases for a project
List all tags in a project repository
Search for code snippets across CERN GitLab repositories
Search for issues and merge requests across CERN GitLab
Search for code within a specific LHCb software stack
Search for public CERN GitLab projects by keywords, topics, or language
Test connectivity to the CERN GitLab instance. Returns the GitLab version, authentication status, and connection health.
Error handling and recovery guidance missing. Tools document no error conditions or LLM-actionable next steps. A failed API call returns nothing about alternatives or retry strategies.
Parameter constraint details incomplete. Numeric parameters (per_page, page, minimum, maximum) lack explicit range guidance in descriptions. LLMs may pass unbounded or absurd values.
Pagination handling unclear. Tools return per_page and page parameters but no documentation of total count, next_cursor, or has_more semantics. Large result sets may blow context window.
inspect_project and search_lhcb_stack descriptions are vague. 'Inspect a project structure' and 'Search for code within a specific LHCb software stack' lack WHEN/WHY guidance. LLMs cannot distinguish when to use inspect_project vs get_project_info.