Reported issues for gitlab-mcp
Pod holds 24 of 188 problems reported by people outside the maintainer team. Issues filed by the project's own owners, members and collaborators are excluded entirely — a maintainer's release checklist is not a warning to a prospective user.
Back to gitlab-mcp.
Most discussed
Error when running /mcp in Gemini CLI
Gemini CLI Version: 0.1.12
Running the /mcp command works correctly, and it displays the following tool information:
GitLab communication server__create_branch
- GitLab communication server__create_issue
- GitLab communication server__create_issue_link
- GitLab communication server__create_issue_note
- GitLab communication server__create_label
- GitLab communication server__create_merge_request
- GitLab communication server__create_merge_request_note
- GitLab communicatio
Read the thread · 2025-07-17 · closed · external user · 12 comments
MCP not working with Gemini
Model: Gemini-2.0-flash
Running the MCP server locally on the main branch (version: 1.0.72)
"GitLab-comm-server": {
"type": "sse",
"url": "http://localhost:3002/sse"
}
I am using the Agno framework to connect to MCP
import asyncio
import os
from textwrap import dedent
from agno.agent import Agent
from agno.models.google import Gemini
from agno.tools.mcp import MCPTools
server_url = "http://localhost:3002/sse"
async def run_agent(message: str) -> None:
async
[Read the thread](https://github.com/zereight/gitlab-mcp/issues/166) · 2025-07-14 · closed · external user · 17 comments
### Issue Fetching isn't working anymore
Last week, I was using the MCP to fetch private GitLab issues but that's not working anymore.
<img width="962" height="513" alt="Image" src="https://github.com/user-attachments/assets/a58dcfc9-ede2-45ca-a129-c5aed343dc18" />
The issue I am trying to fetch is in a private repo but I obviously provided a correct PAT.
[Read the thread](https://github.com/zereight/gitlab-mcp/issues/157) · 2025-07-09 · closed · external user · 18 comments
### `remove_source_branch` in `create_merge_request` not working
⏺ Now I'll create the merge request using the GitLab API:
⏺ GitLab:create_merge_request (MCP)(project_id: "xxx", title: "xxx
xxx", description: "xxx", source_branch:
"xxx", target_branch: "main",
assignee_ids: [84], remove_source_branch: "true")
⎿ {
"id": 19248,
"iid": 12386,
Read the thread · 2025-07-07 · closed · external user · 22 comments
Possible to get working for Gemini Cli?
Have tried, doesnt seem to work
Read the thread · 2025-07-07 · closed · external user · 18 comments
Use as remote MCP server with an oauth application
It would be useful to perhaps allow running the mcp as a remote mcp server pointed at an instance, and then users when they connect to it, authorize with the gitlab instance/application, using that token for auth.
this way, people dont have to generate a token in order to use MCP with our gitlab instance, and ideally I just setup the MCP server with an application once for myself.
Are there any plans / interest in this sort of feature?
Read the thread · 2025-06-30 · closed · external user · 15 comments
Feature Request: Support for Multiline Comments in Merge Requests
Hello,
First of all, thank you for this project! It's been very helpful in the daily GitLab management workflow.
I’d like to request support for multiline comments in Merge Requests diff view using the GitLab API.
GitLab provides a way to create multiline comments via their API by specifying the position parameters, as documented here:
It would be great if gitlab-mcp could support this functionality, a
Read the thread · 2025-06-09 · closed · external user · 12 comments
list issues doesn't work well when filtering by label
When I try to get the current issues filtered by certain label via mcp it just doesn't work. Tickets show up that don't have that label at all.
Read the thread · 2025-06-01 · closed · external user · 13 comments
Most recent
Environment lifecycle and pipeline triggers
Add environment update/delete/stop/stale-stop and project pipeline trigger CRUD plus trigger_pipeline.
Reference: https://docs.gitlab.com/api/environments/ and https://docs.gitlab.com/api/pipeline_triggers/
Read the thread · 2026-08-26 · open · outside contributor · 0 comments
Deployment operations and approvals
Add deployment create/update/delete, deployment merge-request listing, and approve/reject plus approval inspection.
Reference: https://docs.gitlab.com/api/deployments/
Read the thread · 2026-08-26 · open · outside contributor · 0 comments
Pipeline jobs DAG and lifecycle tools
Add job erase, job inputs, DAG/needs helpers, and wait_for_pipeline/wait_for_job polling helpers.
Reference: https://docs.gitlab.com/api/jobs/
Read the thread · 2026-08-26 · open · outside contributor · 0 comments
Pipeline schedules and schedule variables
Add pipeline schedule CRUD, play, ownership transfer, triggered-pipeline listing, and schedule-variable CRUD.
Reference: https://docs.gitlab.com/api/pipeline_schedules/
Read the thread · 2026-08-26 · open · outside contributor · 1 comment
Pipeline core and reports API tools
Add the remaining pipeline core operations documented by GitLab: test report, test report summary, delete pipeline, and update pipeline metadata.
Reference: https://docs.gitlab.com/api/pipelines/
Read the thread · 2026-08-26 · open · outside contributor · 0 comments
Feature: add GitLab Pipeline Schedules API tools
Summary
The server exposes 14 pipeline-related tools (list_pipelines, get_pipeline, create_pipeline, retry_pipeline, cancel_pipeline, the job tools, artifacts, …) but none of them cover the Pipeline Schedules API (/projects/:id/pipeline_schedules).
That means an agent can trigger and inspect ad-hoc pipelines, but cannot see or manage the scheduled ones — which is where a lot of a project's recurring CI actually lives (nigh
Read the thread · 2026-08-25 · closed · outside contributor · 2 comments
bug: list_merge_requests tool fails with schema validation error (expected record, received array)
Description
When calling the list_merge_requests tool, the GitLab MCP server fails with a schema validation error:
[
{
"expected": "record",
"code": "invalid_type",
"path": [
"structuredContent"
],
"message": "Invalid input: expected record, received array"
}
]
Root Cause
The GitLab REST API returns an array of merge request objects when listing merge requests (either globally or project-scoped). However, the MCP server's response schema def
Read the thread · 2026-08-25 · open · external user · 1 comment
README badge for gitlab-mcp
Saw the homebrew formula sync for the release - gitlab-mcp ships steadily. mcpindex tracks the registry entry and diffs the tool contracts daily: https://mcpindex.ai/server/io-github-zereight-gitlab-mcp
Badge for the row next to MCP Toplist, if you want it:
Advisory only. Reply if the card states anything wrong.
Thank you, GB https://mcpindex.ai
Read the thread · 2026-08-19 · closed · external user · 1 comment
merge_merge_request fails on GitLab 19.2: schema has no sha field → "SHA must be provided when merging"
Environment
MCP client/runtime: opencode (opencode-ai TUI), stdio transport. Reproduced independently with a raw JSON-RPC stdio client against
build/index.js.Install method:
npx -yfrom the opencode MCP config; reproduced the bug with a plain localnpm install @zereight/mcp-gitlab@2.1.49as well.Exact command and config:
{ "mcp": { "gitlab": { "type": "local", "command": ["npx", "-y", "@zereight/mcp-gitlab"], "envi
Read the thread · 2026-08-19 · closed · external user · 1 comment
Broken version 2.1.48
I have this message log today:
2026-08-18T07:37:17.308Z [gitlab] [info] Server started and connected successfully { metadata: undefined }
2026-08-18T07:37:21.060Z [gitlab] [info] Message from client: method="initialize" id=0 params { metadata: undefined }
sh: line 1: mcp-gitlab: command not found
2026-08-18T07:37:21.230Z [gitlab] [info] Server transport closed { metadata: undefined }
2026-08-18T07:37:21.230Z [gitlab] [info] Server transport closed unexpectedly, this is likely due to the proc
[Read the thread](https://github.com/zereight/gitlab-mcp/issues/662) · 2026-08-18 · closed · external user · 3 comments
### `list_job_artifacts` tool seems to fail with a schema validation error
Every tool call to `gitlab_list_job_artifacts` fails with the same message:
gitlab_list_job_artifacts [job_id=15701568935, project_id=
This looks similar to #281 , #485 and other validation-related issues, although I'm not very familiar with JS/TS and its ecosystem. I don't see any `mode` argument as input, so I'm guessing it's the output format that it doesn't like (?)
Installed via: `npm -g install`
[Read the thread](https://github.com/zereight/gitlab-mcp/issues/661) · 2026-08-17 · closed · external user · 2 comments
### Create_tag returns "Invalid arguments: release: Required" although the tag is created
**Describe the bug**
`create_tag` succeeds server-side (the tag exists in GitLab) but the tool call fails with:
MCP error -32603: Invalid arguments: release: Required
Root cause looks like response-side validation, not input validation:
- `index.ts` (createTag): `return GitLabTagSchema.parse(data);`
- `schemas.ts` (GitLabTagSchema): `release` is declared `.nullable()` but not `.optional()`
Our GitLab instance omits the `release` key entirely in the `POST /projects/:id/repository/tags`
respo
[Read the thread](https://github.com/zereight/gitlab-mcp/issues/653) · 2026-08-14 · closed · external user · 0 comments
### Invalid `MCP-Protocol-Version` header returns 200 instead of the required 400
## Summary
The Streamable HTTP transport requires a server to reject a request carrying an unusable `MCP-Protocol-Version` header:
> If the server receives a request with an invalid or unsupported `MCP-Protocol-Version`, it **MUST** respond with `400 Bad Request`.
> — [Transports § Protocol Version Header](https://modelcontextprotocol.io/specification/2025-11-25/basic/transports#protocol-version-header)
This server accepts anything and returns `200`.
## Reproduction
```bash
curl -sS -o /dev
[Read the thread](https://github.com/zereight/gitlab-mcp/issues/652) · 2026-08-14 · closed · outside contributor · 1 comment
### Streamable HTTP clients cannot cache `tools/list`: no `list_changed` channel (GET is 405) and no `ttlMs`/`cacheScope`
## Summary
Over Streamable HTTP, a client has **no way to know when `tools/list` has gone stale, and no hint for how long to cache it.** Both of the spec's mechanisms are unavailable:
1. **Push invalidation** — `notifications/tools/list_changed` has no delivery channel, because `GET /mcp` returns `405`.
2. **Freshness hints** — `ttlMs` / `cacheScope` are not emitted, because the server negotiates at most `2025-11-25`.
MCP has no third option. There is no ETag/`If-None-Match` revalidation in t
[Read the thread](https://github.com/zereight/gitlab-mcp/issues/651) · 2026-08-14 · closed · outside contributor · 0 comments
### `discover_tools` can never work: server sends `tools/list_changed` without declaring `tools.listChanged`
### Environment
| | |
|---|---|
| Server version | `@zereight/mcp-gitlab` **2.1.46** (latest release; bug also present on `main`) |
| Client | Claude Code 2.1.229 — plus a raw JSON-RPC probe, below, to isolate it from the client |
| Transport | **stdio** |
| Env vars | `GITLAB_TOOLSETS=pipelines`, `GITLAB_API_URL`, `GITLAB_PERSONAL_ACCESS_TOKEN` (self-hosted GitLab) |
| Node | 22.21.1 |
`discover_tools` activates a toolset server-side and returns success, but no spec-conformant MCP client will
[Read the thread](https://github.com/zereight/gitlab-mcp/issues/649) · 2026-08-12 · closed · external user · 0 comments
### get_file_contents corrupts binary files (PDF, images, archives): Base64 content is force-decoded to UTF-8
## Summary
`get_file_contents` irreversibly corrupts every binary file in a repository (PDF, PNG/JPG, ZIP, XLSX/DOCX, fonts, compiled artifacts). The GitLab API returns file content as Base64, but `getFileContents()` force-decodes it into a UTF-8 **string**. Any byte sequence that is not valid UTF-8 is replaced with `U+FFFD` (`EF BF BD`), so the original bytes are permanently lost before the content ever reaches the MCP client.
Reported originally as "fetching a PDF loses data" — the file is n
[Read the thread](https://github.com/zereight/gitlab-mcp/issues/648) · 2026-08-12 · closed · external user · 3 comments
The remaining reports are on [the project's issue tracker](https://github.com/zereight/gitlab-mcp/issues).