cerngitlab-mcp
CERN GitLab MCP Server
Features
- 14 MCP tools for searching, browsing, and analyzing CERN GitLab repositories
- CLI tool (
cerngitlab-cli) for direct command-line usage - Public access — works without authentication for public repositories
- HEP-focused — dependency parsing for Python and C++ ecosystems, binary detection for
.rootfiles, issue search - Robust — rate limiting, retries with exponential backoff, graceful error handling
Installation
Requires Python 3.10+.
Quickstart (recommended)
No installation needed — just use uvx to run directly:
uvx cerngitlab-mcp
From PyPI
pip install cerngitlab-mcp
From source
git clone https://github.com/MohamedElashri/cerngitlab-mcp
cd cerngitlab-mcp
uv sync
Configuration
All settings are configured via environment variables prefixed with CERNGITLAB_:
| Variable | Default | Description |
|---|---|---|
CERNGITLAB_GITLAB_URL | https://gitlab.cern.ch | GitLab instance URL |
CERNGITLAB_TOKEN | (empty) | Personal access token (optional) |
CERNGITLAB_TIMEOUT | 30 | HTTP timeout in seconds |
CERNGITLAB_MAX_RETRIES | 3 | Max retries for failed requests |
CERNGITLAB_RATE_LIMIT_PER_MINUTE | 300 | API rate limit |
CERNGITLAB_LOG_LEVEL | INFO | Logging level |
CERNGITLAB_DEFAULT_REF | (empty) | Default Git branch or tag to search within (e.g., main, master, v1.2.0). Empty means search all branches. |
Authentication
The server works in two modes:
- Without token — Access to all public repositories. Sufficient for most HEP code discovery.
- With token — Additional access to internal/private projects, code search, and wiki pages.
To create a token:
- Go to https://gitlab.cern.ch/-/user_settings/personal_access_tokens
- Create a token with
read_apiscope - Set
CERNGITLAB_TOKEN=glpat-xxxxxxxxxxxx
Note: The code search (
search_code), issue search (search_issues), and wiki (get_wiki_pages) tools require authentication on CERN GitLab.
Usage
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"cerngitlab": {
"command": "uvx",
"args": ["cerngitlab-mcp"],
"env": {
"CERNGITLAB_TOKEN": "glpat-xxxxxxxxxxxx"
}
}
}
}
Note for macOS users: If you see an error about
uvxnot being found, you may need to provide the absolute path. Claude Desktop does not support~or$HOMEexpansion.
- Run
which uvxin your terminal to find the path (e.g.,/Users/yourusername/.local/bin/uvx).- Use that absolute path in the
commandfield:"command": "/Users/yourusername/.local/bin/uvx"
Claude Code
Project-specific (default) — installs in the current directory's configuration:
claude mcp add cerngitlab-mcp -- uvx cerngitlab-mcp
Global — installs for your user account (works in all projects):
claude mcp add --scope user cerngitlab-mcp -- uvx cerngitlab-mcp
To include authentication, add -e CERNGITLAB_TOKEN=glpat-xxxxxxxxxxxx before the --:
# Example: Global installation with token
claude mcp add --scope user -e CERNGITLAB_TOKEN=glpat-xxxxxxxxxxxx cerngitlab-mcp -- uvx cerngitlab-mcp
Manual Configuration — you can also manually edit your global config at ~/.claude.json (on Linux/macOS) or %APPDATA%\Claude\claude.json (on Windows):
{
"mcpServers": {
"cerngitlab": {
"command": "uvx",
"args": ["cerngitlab-mcp"],
"env": {
"CERNGITLAB_TOKEN": "glpat-xxxxxxxxxxxx"
}
}
}
}
GitHub Copilot
Add to your VS Code settings.json:
{
"mcp": {
"servers": {
"cerngitlab": {
"command": "uvx",
"args": ["cerngitlab-mcp"],
"env": {
"CERNGITLAB_TOKEN": "glpat-xxxxxxxxxxxx"
}
}
}
}
}
Or add a .vscode/mcp.json to your project:
{
"servers": {
"cerngitlab": {
"command": "uvx",
"args": ["cerngitlab-mcp"],
"env": {
"CERNGITLAB_TOKEN": "glpat-xxxxxxxxxxxx"
}
}
}
}
Gemini CLI
Add to your ~/.gemini/settings.json:
{
"mcpServers": {
"cerngitlab": {
"command": "uvx",
"args": ["cerngitlab-mcp"],
"env": {
"CERNGITLAB_TOKEN": "glpat-xxxxxxxxxxxx"
}
}
}
}
Direct usage
# Run with uvx (no install needed)
uvx cerngitlab-mcp
# Or if installed from PyPI
cerngitlab-mcp
# Or from source
uv run cerngitlab-mcp
# With authentication
CERNGITLAB_TOKEN=glpat-xxx uvx cerngitlab-mcp
Tools
| Tool | Description | Auth required |
|---|---|---|
search_projects | Search for public CERN GitLab projects (repositories) by keyword, topic, or language | No |
get_project_info | Get detailed project metadata (stars, description, languages, statistics) | No |
list_project_files | List files and directories in a project's repository | No |
get_file_content | Fetch the content of a specific file (includes binary detection) | No |
get_project_readme | Get the README content for a project | No |
search_code | Search for code within a specific project or globally | Yes* |
search_lhcb_stack | Search for code within an LHCb software stack (e.g., 'sim11'), with automatic Git ref resolution | Yes* |
search_issues | Search for issues in a project | Yes |
get_wiki_pages | List wiki pages for a project | Yes |
inspect_project | Analyze project structure, build system, dependencies, and CI/CD | No |
list_releases | List releases for a project | No |
get_release | Get details of a specific release | No |
list_tags | List tags for a project | No |
test_connectivity | Test connection to the GitLab instance | No |
For detailed parameter documentation, see docs/dev.md.
Example Prompts
Search for repositories
"Search CERN GitLab for Python repositories related to ROOT analysis and show me the most starred ones"
Understand a project
"Get the README and file structure of the lhcb/DaVinci project on CERN GitLab"
Find fitting examples
"Search for repositories on CERN GitLab that use RooFit and show me example fitting code"
View LHCb software stack code
"Search the LHCb sim11 stack for the initialization routines in the Boole project"
Analyze a project structure
"Inspect the lhcb/allen project to understand its build system, dependencies, and CI pipeline configuration"
Find usage context
"Search for issues related to 'segmentation fault' in the atlas/athena project to see if others have encountered this"
Track releases
"List the recent releases of lhcb/DaVinci and show me the release notes for the latest version"
Find framework configurations
"Search for Gaudi framework configuration files on CERN GitLab and show me examples"
Development
See docs/dev.md for development setup, project structure, testing, and release instructions.
CLI Tool
A command-line interface is also available for direct usage without the MCP server:
# Install or use with uvx
uvx cerngitlab-cli
# Test connectivity
cerngitlab-cli test-connection
# Search for projects
cerngitlab-cli search-projects --query "ROOT analysis" --language python
# Get project info
cerngitlab-cli get-project-info --project lhcb/DaVinci
# Search code
cerngitlab-cli search-code --search-term "RooFit" --per-page 10
# Inspect project structure
cerngitlab-cli inspect-project --project lhcb/allen
All commands output JSON to stdout for easy piping and composition. See cerngitlab-cli --help for the full list of commands.
Skill File
A detailed skill file (SKILL.md) is available with:
- Complete documentation of all 14 tools
- Input/output specifications
- Usage examples
- Authentication requirements
This can be used by LLMs or agents to understand the available tools and how to use them.
License
AGPL-3.0
Related Servers
memcord
Privacy-first MCP server for AI memory management. Save, search & organize chat history with intelligent summarization.
MCP Minecraft Remote
Remotely control a Minecraft Java Edition server using the Model Context Protocol (MCP).
SEOMCP
AI-native SEO service via MCP — gives Claude native access to keyword research, rank tracking, site audits, backlink analysis, and autonomous SEO agent workflows.
Withings
MCP server for Withings health data integration
VMS Integration
Connects to a CCTV recording program (VMS) to retrieve recorded and live video streams and control the VMS software.
SwitchBot
Control SwitchBot smart home devices through its official API, enabling automation and integration with AI assistants.
SettlementWitness MCP
SettlementWitness is a stateless MCP verification tool that returns replay-stable settlement receipts (PASS/FAIL) by forwarding task_id, spec, and output to the Default Settlement Verifier. Designed for agent execution gating and x402 settlement flows.
Kai AGI
Autonomous AI agent running 24/7 — predictions with calibration, AI research briefs, live system status, web search proxy
Lightning Enable
MCP server enabling AI agents to make Bitcoin Lightning payments, check balances, access L402 APIs, and manage payment budgets. Supports Strike, OpenNode, NWC, and LND wallets.
PolicyLayer MCP
Non-custodial spending controls for AI agent crypto wallets — enforce daily limits, per-tx caps, and recipient whitelists.