Prototype · Preview: every server in the official registry, synced every 30 minutes. Sign in with Google to write reviews.Prototype · updated every 30 min
PopNx MCPMCP servers for people who use AI · explained in plain words

GitLab Ci MCP

by mshegolevversion 0.5.1i★ 2iRuns on your computer
Registry nameio.github.mshegolev/gitlab-ci-mcp

How to install

What it does

GitLab CI/CD MCP — pipelines, jobs, schedules, MRs, files. Any GitLab (SaaS or self-hosted).

  • Connects Runs on your computer
  • Account or key Needs GITLAB_TOKEN · 1 setting to fill in (GITLAB_URL)
  • Category Developer tools

Install

Pick the AI app you use, then copy the settings.

Passed 3/3 checks · Runs on your computer · ✓ Commands checked Nov 14, 2026

First: which AI do you use?

Pick your app and the steps appear below.

Works with Claude, with some setup first

You need a GitLab Ci MCP key (create it on the maker’s site) · 1 setting(s) to fill in (GITLAB_URL) · Install Python (uv) on your computer first (one time) · Only the Claude desktop app (Windows or Mac), not the web or phone

  1. Install Python (uv)

    One time only; it works for every server that needs Python (uv)

    Open the Python (uv) download page ↗

  2. Sign up and create a GitLab Ci MCP key

    Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.

    How to get a key is in the maker’s README below

  3. Fill in 1 setting(s)

    These are program settings, not keys. No sign-up needed; fill them in as the maker describes.

    • GITLAB_URL GitLab instance URL (e.g. https://gitlab.com or https://gitlab.example.com)

    Descriptions are as written by the maker.

  4. Open the Claude desktop app’s settings file

    SettingsDeveloperEdit Config

  5. Paste these settings and save the file

    {
      "mcpServers": {
        "gitlab-ci": {
          "command": "uvx",
          "args": [
            "gitlab-ci-mcp"
          ],
          "env": {
            "GITLAB_URL": "your-value",
            "GITLAB_TOKEN": "your-value"
          }
        }
      }
    }

    Paste the key only into the app’s field, never into a chat or to anyone

  6. Quit Claude and open it again

  7. Try it

    Use GitLab Ci MCP and tell me what you can do for me, then show me one thing

    ✓ If Claude says it is using GitLab Ci MCP or shows a GitLab Ci MCP tool in the answer, you are connected

2 optional setting(s) (works without them)

The command above works without these. Add them only if you want to change something, following the maker’s description.

  • GITLAB_PROJECT_PATH Default project path (e.g. my-org/my-repo); can be overridden per call
  • GITLAB_SSL_VERIFY Verify SSL certificates (true/false). Set to 'false' for self-hosted GitLab with self-signed certs. · default true

Descriptions are as written by the maker.

Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version

ChatGPT cannot connect GitLab Ci MCP yet

GitLab Ci MCP runs on your computer, but ChatGPT can only connect servers that run on the web

What you can do instead

A · Use an app that can connect GitLab Ci MCP

  • You need a GitLab Ci MCP key (create it on the maker’s site) · 1 setting(s) to fill in (GITLAB_URL) · Install Python (uv) on your computer first (one time) · Only the Claude desktop app (Windows or Mac), not the web or phone
  • You need a GitLab Ci MCP key (create it on the maker’s site) · 1 setting(s) to fill in (GITLAB_URL) · Install Python (uv) on your computer first (one time)
  • You need a GitLab Ci MCP key (create it on the maker’s site) · 1 setting(s) to fill in (GITLAB_URL) · Install Python (uv) on your computer first (one time)
  • You need a GitLab Ci MCP key (create it on the maker’s site) · 1 setting(s) to fill in (GITLAB_URL) · Install Python (uv) on your computer first (one time)

B · Others in Developer tools that work with ChatGPT

Picked from the most used in the same category, only ones that connect by address with no key

Works with Claude Code, with some setup first

You need a GitLab Ci MCP key (create it on the maker’s site) · 1 setting(s) to fill in (GITLAB_URL) · Install Python (uv) on your computer first (one time)

  1. Install Python (uv)

    One time only; it works for every server that needs Python (uv)

    Open the Python (uv) download page ↗

  2. Sign up and create a GitLab Ci MCP key

    Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.

    How to get a key is in the maker’s README below

  3. Fill in 1 setting(s)

    These are program settings, not keys. No sign-up needed; fill them in as the maker describes.

    • GITLAB_URL GitLab instance URL (e.g. https://gitlab.com or https://gitlab.example.com)

    Descriptions are as written by the maker.

  4. Open Terminal

    Mac: press Command+Space and type Terminal · Windows: open PowerShell

  5. Paste this command and press Enter

    claude mcp add --scope user gitlab-ci --env GITLAB_URL=your-value --env GITLAB_TOKEN=your-value -- uvx gitlab-ci-mcp

    Replace “your-value” with your key before pressing Enter

    Paste the key only into the app’s field, never into a chat or to anyone

  6. Type /mcp in Claude Code

    You should see GitLab Ci MCP listed as connected

  7. Try it

    Use GitLab Ci MCP and tell me what you can do for me, then show me one thing

    ✓ If Claude Code says it is using GitLab Ci MCP or shows a GitLab Ci MCP tool in the answer, you are connected

2 optional setting(s) (works without them)

The command above works without these. Add them only if you want to change something, following the maker’s description.

  • GITLAB_PROJECT_PATH Default project path (e.g. my-org/my-repo); can be overridden per call
  • GITLAB_SSL_VERIFY Verify SSL certificates (true/false). Set to 'false' for self-hosted GitLab with self-signed certs. · default true

Descriptions are as written by the maker.

Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Works with Cursor, with some setup first

You need a GitLab Ci MCP key (create it on the maker’s site) · 1 setting(s) to fill in (GITLAB_URL) · Install Python (uv) on your computer first (one time)

  1. Install Python (uv)

    One time only; it works for every server that needs Python (uv)

    Open the Python (uv) download page ↗

  2. Sign up and create a GitLab Ci MCP key

    Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.

    How to get a key is in the maker’s README below

  3. Fill in 1 setting(s)

    These are program settings, not keys. No sign-up needed; fill them in as the maker describes.

    • GITLAB_URL GitLab instance URL (e.g. https://gitlab.com or https://gitlab.example.com)

    Descriptions are as written by the maker.

  4. Click this button to open Cursor

    Open in Cursor

    Cursor asks you to confirm; click Install

  5. Fill in your key

    In the GitLab Ci MCP settings, GITLAB_TOKEN, GITLAB_URL is empty; add your key and save

    Paste the key only into the app’s field, never into a chat or to anyone

  6. Open the AI chat in Cursor in Agent mode

  7. Try it

    Use GitLab Ci MCP and tell me what you can do for me, then show me one thing

    ✓ If Cursor says it is using GitLab Ci MCP or shows a GitLab Ci MCP tool in the answer, you are connected

2 optional setting(s) (works without them)

The command above works without these. Add them only if you want to change something, following the maker’s description.

  • GITLAB_PROJECT_PATH Default project path (e.g. my-org/my-repo); can be overridden per call
  • GITLAB_SSL_VERIFY Verify SSL certificates (true/false). Set to 'false' for self-hosted GitLab with self-signed certs. · default true

Descriptions are as written by the maker.

Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Works with VS Code, with some setup first

You need a GitLab Ci MCP key (create it on the maker’s site) · 1 setting(s) to fill in (GITLAB_URL) · Install Python (uv) on your computer first (one time)

  1. Install Python (uv)

    One time only; it works for every server that needs Python (uv)

    Open the Python (uv) download page ↗

  2. Sign up and create a GitLab Ci MCP key

    Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.

    How to get a key is in the maker’s README below

  3. Fill in 1 setting(s)

    These are program settings, not keys. No sign-up needed; fill them in as the maker describes.

    • GITLAB_URL GitLab instance URL (e.g. https://gitlab.com or https://gitlab.example.com)

    Descriptions are as written by the maker.

  4. Click this button to open VS Code

    Open in VS Code

    VS Code asks you to confirm; click Install

  5. Fill in your key

    In the GitLab Ci MCP settings, GITLAB_TOKEN, GITLAB_URL is empty; add your key and save

    Paste the key only into the app’s field, never into a chat or to anyone

  6. Open the AI chat in VS Code in Agent mode

  7. Try it

    Use GitLab Ci MCP and tell me what you can do for me, then show me one thing

    ✓ If VS Code says it is using GitLab Ci MCP or shows a GitLab Ci MCP tool in the answer, you are connected

2 optional setting(s) (works without them)

The command above works without these. Add them only if you want to change something, following the maker’s description.

  • GITLAB_PROJECT_PATH Default project path (e.g. my-org/my-repo); can be overridden per call
  • GITLAB_SSL_VERIFY Verify SSL certificates (true/false). Set to 'false' for self-hosted GitLab with self-signed certs. · default true

Descriptions are as written by the maker.

Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Other apps that use MCP, such as Windsurf, Zed or Gemini CLI, each add servers differently. See how in the app list.

See every app that uses MCP →

JSON settings are under “For developers” below

Stuck? Ask people who use GitLab Ci MCP💬 Discussion →
For developers: Terminal commands and JSON settings

Installed on your computer

Claude Code

claude mcp add --scope user gitlab-ci --env GITLAB_URL=your-value --env GITLAB_TOKEN=your-value -- uvx gitlab-ci-mcp

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "gitlab-ci": {
      "command": "uvx",
      "args": [
        "gitlab-ci-mcp"
      ],
      "env": {
        "GITLAB_URL": "your-value",
        "GITLAB_TOKEN": "your-value"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "gitlab-ci": {
      "command": "uvx",
      "args": [
        "gitlab-ci-mcp"
      ],
      "env": {
        "GITLAB_URL": "your-value",
        "GITLAB_TOKEN": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "gitlab-ci": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "gitlab-ci-mcp"
      ],
      "env": {
        "GITLAB_URL": "your-value",
        "GITLAB_TOKEN": "your-value"
      }
    }
  }
}

Values you fill in

  • GITLAB_URL required env
    GitLab instance URL (e.g. https://gitlab.com or https://gitlab.example.com)
  • GITLAB_TOKEN secret required env
    GitLab Personal Access Token with 'api' scope
  • GITLAB_PROJECT_PATH env
    Default project path (e.g. my-org/my-repo); can be overridden per call
  • GITLAB_SSL_VERIFY env
    Verify SSL certificates (true/false). Set to 'false' for self-hosted GitLab with self-signed certs.

Descriptions are as written by the maker.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

At a glance

Downloads per weeki
273/wk
Connection
Runs on your computer
Latest versioni
0.5.1
Published to registryi
Apr 18, 2026
Code last changedi
Nov 3, 2026
Maker
mshegolev
Packages
pypi: gitlab-ci-mcp
Registry status
Active

Which apps can use it

Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.

Run on your computer in

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

All apps, with pros and cons →

Related guides

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 14, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account mshegolev, which owns the repo

  • ✓ Pass

    Still maintained

    Code last changed 11 days ago

  • ✓ Pass

    Has a licence

    Uses MIT

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Discussion

Ask, share a tip or report that it does not work. Sorted by what people marked helpful.

No posts yet. Be the first to ask or share.

Posts here are written by users, not the PopNx team.

Sign in with Google to post

User reviews

No reviews yet

Sign in with Google to write a review

Compared with others in Developer toolsi

  • More stars than 77% of the other 5880 servers in this category
  • Published to the registry more recently than 8% of the other 5880 servers in this category
  • Basic checks equal to or better than 100% of the other 5880 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is GitLab Ci MCP safe?

It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: GITLAB_TOKEN

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed 11 days ago, and the latest version (0.5.1) reached the registry 7 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.

What can I use instead?

In the same category: REA, GitHub, Serena MCP: the IDE for your agent

Others in the same category

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

REA

Reverse engineer anything from your terminal or agent with one CLI and MCP server.

by morlutoWidely used↓ 388.7K/wk★ 457.7KUpdated 2 days ago

Runs on your computer

GitHub

GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.

by githubWidely used★ 34.4KUpdated 11 days ago

Computer or cloud

Serena MCP: the IDE for your agent

A powerful toolkit for coding, providing semantic retrieval and editing capabilities.

by oraiosWidely used↓ 35.2K/wk★ 31.4KUpdated 6 months ago

Runs on your computer

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

gitlab-ci-mcp

MCP server for GitLab CI/CD. Lets an LLM agent (Claude Code, Cursor, OpenCode, DevX Agent, etc.) work with pipelines, jobs, schedules, branches, tags, merge requests and repository files.

Python and FastMCP. Local stdio remains the default; opt-in Streamable HTTP supports shared deployments with one GitLab PAT per caller.

Works with any GitLab — SaaS gitlab.com or self-hosted / on-prem. Designed with corporate networks in mind: configurable NO_PROXY handling, optional SSL-verify toggle, per-project scoping via env vars.

Design highlights

  • Tool annotations — every tool carries readOnlyHint / destructiveHint / idempotentHint / openWorldHint so MCP clients can classify operations (e.g. ask for confirmation only on destructive ones like gitlab_merge_mr, gitlab_delete_schedule).
  • Structured output on every tool — each tool declares a TypedDict return type, so FastMCP auto-generates an outputSchema and every result carries structuredContent alongside a pre-rendered markdown text block. Clients that can render structured data use it; agents that prefer compact text get the markdown. No response_format parameter needed.
  • Structured errors — authentication, 404, 403, 429 (rate-limit), 5xx, missing-env errors are converted to actionable ToolError messages (e.g. _"GitLab authentication failed… verify GITLAB_TOKEN has api scope"_) and surfaced as isError=True results.
  • Pydantic input validation — every argument has typed constraints (ranges, lengths, literals) auto-exposed as JSON Schema.
  • Explicit project scoping — every GitLab tool requires project_path by default. Set GITLAB_ALLOW_DEFAULT_PROJECT=true to opt into the legacy environment fallback.
  • Pagination — list tools return a pagination block with page, total, has_more, next_page and a next-page hint in the markdown footer.
  • Per-user HTTP credentials — in Streamable HTTP mode every request must carry X-GitLab-Token; GitLab API calls and cached clients are isolated by PAT. Stdio remains single-user with GITLAB_TOKEN.
  • MCP Resources — gitlab://project/info and gitlab://project/ci-config mirror common lookups for clients that prefer the Resource model over tools.
  • Lifespan management — python-gitlab HTTP sessions are closed cleanly on server shutdown via an asynccontextmanager lifespan hook.
  • Log grep — gitlab_get_job_log accepts grep_pattern + grep_context (surrounding lines) for regex-filtering megabyte-scale CI logs without pulling the whole trace into agent context.
Threading model

FastMCP automatically runs synchronous tools in a worker thread (anyio.to_thread.run_sync), so they do not block the asyncio event loop — python-gitlab is a synchronous library and wrapping every call in asyncio.to_thread ourselves would be ceremony. Tools that benefit from the MCP Context (progress, info logs) are written as async def and explicitly wrap python-gitlab calls with asyncio.to_thread.

Features

24 tools covering the everyday CI/CD surface:

Pipelines gitlab_list_pipelines · gitlab_get_pipeline · gitlab_get_pipeline_jobs · gitlab_get_job_log · gitlab_trigger_pipeline · gitlab_retry_pipeline · gitlab_cancel_pipeline · gitlab_pipeline_health

Schedules gitlab_list_schedules · gitlab_create_schedule · gitlab_update_schedule · gitlab_delete_schedule

Branches & tags gitlab_list_branches · gitlab_list_tags · gitlab_compare_branches

Merge requests gitlab_list_merge_requests · gitlab_get_merge_request · gitlab_get_merge_request_changes · gitlab_create_merge_request · gitlab_merge_mr

Repository & project gitlab_get_file · gitlab_list_repository_tree · gitlab_project_info

Package gitlab_ci_mcp_check_updates

Pipeline health report

gitlab_pipeline_health returns a ready-to-read summary over 7/30 days:

Last 7d:  96.4%  up   | 27/28 success

Last 30d: 92.1% | 105/114 success Last 10: success success success failed success ...

Handy for on-call / triage: покажи health master за последние 7 дней.

Installation

Requires Python 3.10+.

# via uvx (recommended)

uvx --from gitlab-ci-mcp gitlab-ci-mcp

or via pip/pipx

pipx install gitlab-ci-mcp

Configuration

All config is via environment variables:

VariableRequiredDescription
GITLAB_URLyesBase URL, e.g. https://gitlab.example.com
GITLAB_TOKENstdio onlyPersonal Access Token with api scope. In HTTP mode, each client sends its own X-GitLab-Token header.
MCP_TRANSPORTnostdio (default) or streamable-http
MCP_HTTP_HOSTnoHTTP bind host; defaults to 127.0.0.1
MCP_HTTP_PORTnoHTTP bind port; defaults to 8000
GITLAB_PROJECT_PATHnoLegacy fallback project; used only with GITLAB_ALLOW_DEFAULT_PROJECT=true
GITLAB_ALLOW_DEFAULT_PROJECTnoSet to true to opt into the legacy GITLAB_PROJECT_PATH fallback
MCP_GITLAB_UPDATE_CHECK_ENABLEDnofalse by default; set to true to allow the explicit update-check tool to query PyPI
GITLAB_SSL_VERIFYnotrue (default) / false
GITLAB_NO_PROXY_DOMAINSnoComma-separated domains to add to NO_PROXY (useful in corp networks behind a local HTTP proxy — e.g. .corp.example.com,gitlab.internal)

Every tool accepts a project_path arg. It is required by default so a call cannot silently target an environment-wide project. For legacy deployments, set GITLAB_ALLOW_DEFAULT_PROJECT=true together with GITLAB_PROJECT_PATH to opt into the old fallback behavior.

Update checking is disabled by default. Set MCP_GITLAB_UPDATE_CHECK_ENABLED=true to enable the explicit gitlab_ci_mcp_check_updates tool. When enabled, it makes one bounded request to fixed PyPI JSON, caches a result for five minutes, reports failures and unsupported versions, and never installs anything. No startup or other tool call performs this request. If called while disabled, the tool reports disabled without making a network request.

Pipeline health success rate uses completed pipelines only: success and failed are in the denominator; running, pending, manual, canceled, skipped, and other non-completed statuses are excluded. A missing comparison period or a sample without completed pipelines is reported as insufficient data, not as a zero rate or a flat trend.

Shared Streamable HTTP deployment

For a shared server, run with MCP_TRANSPORT=streamable-http. Each caller must send their own GitLab PAT in X-GitLab-Token; the server never falls back to the process GITLAB_TOKEN in this mode. GitLab applies that PAT's identity and permissions to each API operation. The header is a custom credential mechanism, not MCP OAuth; clients need support for configured custom headers.

The server binds to loopback (127.0.0.1:8000) by default. Expose it through an HTTPS reverse proxy, restrict network access, and redact the PAT header from proxy, tracing, and error logs. Initialize and tool discovery only check that the header is non-empty; GitLab validates the PAT when an API call is made.

Example for Claude Code (provide GITLAB_PAT through a secret manager; do not put a literal token in shell history):

claude mcp add --transport http \

--header "X-GitLab-Token: ${GITLAB_PAT}" \ gitlab https://mcp.example.com/mcp

The client must attach the header to every request. Each GitLab tool still requires an explicit project_path. Fixed resources gitlab://project/info and gitlab://project/ci-config have no project argument; they require the explicit compatibility setting GITLAB_ALLOW_DEFAULT_PROJECT=true and GITLAB_PROJECT_PATH.

Full credential details and limitations: docs/per-user-auth.md.

Claude Code

Full walkthrough: docs/claude-code.md — prerequisites, two install paths, multi-project setup, self-hosted GitLab behind a corp proxy, troubleshooting, uninstall.

Short version:

claude mcp add --transport stdio \

--env GITLAB_URL=https://gitlab.example.com \ --env GITLAB_TOKEN="$GITLAB_PAT" \ gitlab -- uvx --from gitlab-ci-mcp gitlab-ci-mcp

Each GitLab tool call must include project_path, for example project_path="my-org/my-repo". For legacy default-project behavior, also set GITLAB_PROJECT_PATH and GITLAB_ALLOW_DEFAULT_PROJECT=true.

Or in ~/.claude.json / project .mcp.json:

{

"mcpServers": { "gitlab": { "type": "stdio", "command": "uvx", "args": ["--from", "gitlab-ci-mcp", "gitlab-ci-mcp"], "env": { "GITLAB_URL": "https://gitlab.example.com", "GITLAB_TOKEN": "${GITLAB_PAT}", "GITLAB_PROJECT_PATH": "my-org/my-repo", "GITLAB_ALLOW_DEFAULT_PROJECT": "true", "GITLAB_SSL_VERIFY": "true" } } } }

Check:

claude mcp list

gitlab: uvx --from gitlab-ci-mcp gitlab-ci-mcp - ✓ Connected

Cursor / OpenCode / DevX Agent

Same idea — point the MCP config to uvx --from gitlab-ci-mcp gitlab-ci-mcp with the env vars above. See each tool's own MCP config syntax.

Example prompts

что сломалось в последнем pipeline master
покажи health master за 7 дней для проекта my-org/other-repo
создай MR из feature/foo в master с title "feat: foo"
покажи содержимое .gitlab-ci.yml из master

Rate limits & connection reuse

GitLab enforces a per-user rate limit (typically 2000 req/h for the REST API, configurable by the admin — see your instance's /admin/application_settings/network).

  • The server caches a bounded python-gitlab HTTP session per GitLab URL, project, and PAT fingerprint. Different users never reuse one another's cached client.
  • List tools default to per_page=20 to keep a single call within a small number of API requests.
  • If you hit a 429 Too Many Requests, the error handler returns an actionable message — wait and try again with larger per_page or fewer calls.

Self-hosted GitLab behind a corporate proxy

When your laptop has a local HTTP proxy (e.g. http://127.0.0.1:3128 for corp web access) but GitLab is on the intranet, the proxy intercepts and kills internal requests. Two options:

  1. Set GITLAB_NO_PROXY_DOMAINS — the server will add them to NO_PROXY at startup and clear `HTTP_PROXY`/`HTTPS_PROXY` from its own process so they don't affect GitLab traffic.
  2. Pass explicitly empty HTTP_PROXY="" etc. in the MCP env section.

Development

git clone https://github.com/mshegolev/gitlab-ci-mcp

cd gitlab-ci-mcp python -m venv .venv && . .venv/bin/activate pip install -e '.[dev]' pytest

Run the server directly (stdio transport is the default and waits on stdin for MCP messages):

GITLAB_URL=... GITLAB_TOKEN=... gitlab-ci-mcp

License

MIT — see LICENSE.

Acknowledgements

Built on python-gitlab and the MCP Python SDK.