GitLab MCP server
GitLab in any MCP client, through Memtro: GitLab does not publish this server. Memtro's GitLab connector reads GitLab through its API with the credentials you connect, and one endpoint hands those tools, every other system you connect and Memtro's memory tools to Claude Code, Cursor, Claude Desktop or anything else that speaks Streamable HTTP, as you.
What the model can do
Search issues and merge requests with their discussions and approvals, inspect pipelines and failed jobs, browse commits, and search or read code across the projects the token can see (gitlab.com or self-hosted); can also open an issue, comment, change or close an issue, commit files to a branch, open a merge request, approve one, change one and merge it — each only when you ask.
Reads
gitlab_projectsList GitLab projects the token is a member of, most recently active first, optionally filtered by a name search.gitlab_issuesSearch GitLab issues across all projects or within one project (state, labels, assignee, author, text, updated since), newest update first.gitlab_merge_requestsSearch GitLab merge requests across all projects or within one (state opened/merged/closed, author, assignee, reviewer, target branch, labels, text…gitlab_pipelinesRecent CI pipelines of a project (optionally one branch/tag or one status), newest first, with the failed jobs of failed runs.gitlab_commitsRecent commits of a project, newest first, optionally on one branch/tag, under one path, by one author or within a date window.gitlab_codeSearch code or read files.
Acts, when you ask
These change something in GitLab. The model is told to use them only when you ask for exactly that, and each one is granted by name: per team on a shared connection, by the owner on a personal one.
gitlab_create_issueOpens an issue in a GitLab project.gitlab_commentComments on a GitLab issue or merge request, by its number within the project.gitlab_update_issueChanges a GitLab issue — its title, description, labels (added and removed separately, so the rest are left alone), assignees, due date…gitlab_commit_filesWrites files to a branch as one commit — this is the tool that actually changes code.gitlab_create_mrOpens a merge request from a branch that already exists.gitlab_approve_mrApproves a merge request, or takes this account's own approval back.gitlab_update_mrChanges a merge request — its title, description, target branch, labels, assignees or reviewers, whether it is a draft, or closes and reopens it.gitlab_merge_mrMerges a merge request.
Connect it
First connect GitLab on Dashboard → Connections, then add Memtro to your client once. The GitLab tools appear alongside the tools of everything else you have connected; nothing is configured per connector.
Claude Code
One command registers the server; the tools are then available in every session.
claude mcp add --transport http memtro https://platform.memtro.com/api/mcp \
--header "Authorization: Bearer sk-memtro-..."Cursor
Add the server to .cursor/mcp.json in the project, or to the global file under ~/.cursor/.
{
"mcpServers": {
"memtro": {
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Claude Desktop
Create a personal API key on Dashboard → Profile → API keys. In Claude Desktop add an MCP server of type HTTP with URL https://platform.memtro.com/api/mcp and the header Authorization: Bearer sk-memtro-…
OpenCode
A remote server in opencode.json.
{
"mcp": {
"memtro": {
"type": "remote",
"url": "https://platform.memtro.com/api/mcp",
"headers": {
"Authorization": "Bearer sk-memtro-..."
}
}
}
}Any other client
Add an MCP server of type HTTP (Streamable HTTP, stateless) at https://platform.memtro.com/api/mcp with the header Authorization: Bearer sk-memtro-.... Codex, Zed, Windsurf, Cline and the SDKs all take a remote server this way.
Who may use it
The key identifies the person, and the server offers that person the tools they may use everywhere else in Memtro. A shared GitLab connection is used by the teams an administrator granted it to, tool by tool, on the Permissions page; a personal connection is used by its owner alone, and its tools that act stay off until the owner allows them. See Teams and permissions and Connectors.
Ask it like this
- › Which merge requests are waiting for review in acme/api?
- › Why did the last pipeline on main fail for the billing service?
- › Show me the open issues labelled bug assigned to Priya
- › What changed in the payments module this week?
- › Read config/settings.rb from the release branch
Questions
- Is this an official GitLab MCP server?
- No. It is Memtro's MCP server with Memtro's GitLab connector behind it: the connector reads GitLab through its API with the credentials you connect on Dashboard → Connections, and GitLab publishes nothing here. The same endpoint carries every other system you connect and Memtro's memory tools.
- What does it cost?
- Nothing on top of Memtro. One price per organisation by its number of users, from $50 a month for up to 10 users after a 7-day free trial, with every connector, the MCP server, jobs and memory included. You bring your own model keys.
- Can it change anything in GitLab?
- Only when you ask, and only what it has been granted: open an issue in a project; comment on an issue or merge request; change an issue's title, description, labels, assignees or due date, or close or reopen it; commit files to a branch, creating the branch if it does not exist; open a merge request from a branch; approve a merge request, or take that approval back; change a merge request's title, description, target branch, labels, reviewers or draft state, or close it; merge a merge request, optionally squashing it or deleting the source branch. Every other tool reads, searches or lists. An administrator grants each acting tool by name per team, and a personal connection acts only after its owner allows it.
- Which clients work?
- Any MCP client that speaks Streamable HTTP: Claude Code, Cursor, Claude Desktop, OpenCode, Codex, Zed, Windsurf, Cline and the Anthropic and OpenAI SDKs. There is no local process to run; the server is remote and authenticated with your key.