MCP server for CERN GitLab - code discovery, documentation access, and usage examples for HEP projects
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"cerngitlab-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
<p align="center"> <img src="https://raw.githubusercontent.com/MohamedElashri/cerngitlab-mcp/main/icons/icon.svg" alt="CERN GitLab MCP Server" width="160" /> </p> <h1 align="center">CERN GitLab MCP Server</h1> <p align="center"> An <a href="https://modelcontextprotocol.io/">MCP</a> server that connects LLMs to <a href="https://gitlab.cern.ch">CERN GitLab</a> for discovering HEP code, documentation, and analysis examples. </p> ## Features - **15 MCP tools** for searching, browsing, and analyzing CERN GitLab repositories - **Dual-mode operation** — stdio (single-user) and HTTP (multi-user) modes - **CLI tool** (`cerngitlab-cli`) for direct command-line usage - **Public access** — works without authentication for public repositories - **Multi-user HTTP mode** — CERN SSO + GitLab OAuth authentication for centralized deployments; GitLab enforces all access permissions natively - **HEP-focused** — dependency parsing for Python and C++ ecosystems, binary detection for `.root` files, 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`](https://docs.astral.sh/uv/) to run directly: ```bash uvx cerngitlab-mcp ``` ### From PyPI ```bash pip install cerngitlab-mcp ``` ### From source ```bash 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, for stdio mode) | | `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` | `IN…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.