GitLab for GitHub workflows
A GitHub workflow is not always confined to github.com, and that is exactly the gap GitLab's official server fills as our third pick here. When part of your work lives on GitLab, an alternate forge in the same toolchain, this is the server that lets an agent open merge requests, triage issues, and drive pipelines there over OAuth.
It sits third because the center of a GitHub workflow is GitHub itself, and the GitHub pick owns that. GitLab covers the second-forge case and the GitLab CI side; for local commits and diffs the Git pick fits better, and CircleCI handles CI when that is where your pipelines run.
How GitLab fits
Where GitLab earns its place is the hosted GitLab surface. create_merge_request and get_merge_request open and read a change, get_merge_request_diffs returns the diff under review, and get_merge_request_commits walks its history. create_issue and get_issue track work, while manage_pipeline, get_merge_request_pipelines, and get_pipeline_jobs start a pipeline, list its runs, and surface why a job failed. create_workitem_note and get_workitem_notes carry the discussion thread.
The limit is that none of this touches GitHub or your local repo. GitLab will not open a github.com pull request, run GitHub Actions, or commit on disk, so in a GitHub-centered setup it is the supporting forge rather than the main one. GitHub is the stronger pick for the hosted GitHub work; Git handles local commits, diffs, and branches; CircleCI fits when your CI runs there instead of in GitLab pipelines. Reach for GitLab when some of your code or reviews genuinely live on GitLab and you want the agent operating on that forge directly.
Tools you would use
| Tool | What it does |
|---|---|
| get_mcp_server_version | Returns the current version of the GitLab MCP server. |
| create_issue | Creates a new issue in a GitLab project. |
| get_issue | Retrieves detailed information about a specific GitLab issue. |
| create_merge_request | Creates a merge request in a GitLab project. |
| get_merge_request | Retrieves detailed information about a specific GitLab merge request. |
| get_merge_request_commits | Retrieves the list of commits in a specific GitLab merge request. |
| get_merge_request_diffs | Retrieves the diffs for a specific GitLab merge request. |
| get_merge_request_pipelines | Retrieves the pipelines for a specific GitLab merge request. |
| get_pipeline_jobs | Retrieves the jobs for a specific GitLab CI/CD pipeline. |
| manage_pipeline | Manages CI/CD pipelines in a project: list, create, retry, cancel, or delete a pipeline. |
FAQ
- Can the GitLab MCP server work with github.com pull requests?
- No. Its tools target the GitLab platform: merge requests, issues, and pipelines on GitLab. For github.com pull requests and Actions, use the GitHub server; this one fits when part of your work also lives on GitLab.
- Why would a GitHub-based team add the GitLab server?
- Because work is often split across forges. If a project or mirror lives on GitLab, this server lets the agent open MRs, triage issues, and read GitLab pipelines there, alongside the GitHub server handling the GitHub side.