GitLab MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GITLAB_API_URL | No | Your GitLab API URL | https://gitlab.com/api/v4 |
| GITLAB_PERSONAL_ACCESS_TOKEN | Yes | Your GitLab personal access token |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| add_time_spentC | Add time spent on an issue |
| delete_time_spentC | Delete a time spent entry from an issue |
| create_or_update_fileC | Create or update a single file in a GitLab project |
| search_repositoriesC | Search for GitLab projects |
| create_repositoryB | Create a new GitLab project |
| get_file_contentsC | Get the contents of a file or directory from a GitLab project |
| push_filesB | Push multiple files to a GitLab project in a single commit |
| create_issueC | Create a new issue in a GitLab project |
| create_merge_requestC | Create a new merge request in a GitLab project |
| fork_repositoryB | Fork a GitLab project to your account or specified namespace |
| create_branchC | Create a new branch in a GitLab project |
| get_merge_requestB | Get details of a merge request (Either mergeRequestIid or branchName must be provided) |
| get_merge_request_diffsB | Get the changes/diffs of a merge request (Either mergeRequestIid or branchName must be provided) |
| get_branch_diffsB | Get the changes/diffs between two branches or commits in a GitLab project |
| update_merge_requestC | Update a merge request (Either mergeRequestIid or branchName must be provided) |
| create_noteC | Create a new note (comment) to an issue or merge request |
| create_merge_request_threadC | Create a new thread on a merge request |
| mr_discussionsC | List discussion items for a merge request |
| update_merge_request_noteC | Modify an existing merge request thread note |
| create_merge_request_noteB | Add a new note to an existing merge request thread |
| update_issue_noteC | Modify an existing issue thread note |
| create_issue_noteC | Add a new note to an existing issue thread |
| list_issuesC | List issues in a GitLab project with filtering options |
| get_issueB | Get details of a specific issue in a GitLab project |
| update_issueC | Update an issue in a GitLab project |
| delete_issueC | Delete an issue from a GitLab project |
| list_issue_linksC | List all issue links for a specific issue |
| list_issue_discussionsC | List discussions for an issue in a GitLab project |
| get_issue_linkC | Get a specific issue link |
| create_issue_linkC | Create an issue link between two issues |
| delete_issue_linkD | Delete an issue link |
| list_namespacesB | List all namespaces available to the current user |
| get_namespaceC | Get details of a namespace by ID or path |
| verify_namespaceC | Verify if a namespace path exists |
| get_projectC | Get details of a specific project |
| list_projectsC | List projects accessible by the current user |
| list_labelsC | List labels for a project |
| get_labelC | Get a single label from a project |
| create_labelC | Create a new label in a project |
| update_labelC | Update an existing label in a project |
| delete_labelC | Delete a label from a project |
| list_group_projectsC | List projects in a GitLab group with filtering options |
| get_repository_treeC | Get the repository tree for a GitLab project (list files and directories) |
| list_merge_requestsC | List merge requests in a GitLab project with filtering options |
| get_usersA | Get GitLab user details by usernames |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 45 tools
Most tools have distinct purposes targeting specific resources and actions, but there is some overlap between note-related tools (e.g., create_issue_note, create_note, create_merge_request_note) and discussion tools (list_issue_discussions, mr_discussions) that could cause confusion. However, descriptions generally clarify boundaries.
Tool names follow a highly consistent verb_noun pattern throughout, with clear and predictable naming (e.g., create_issue, get_merge_request, list_labels). There are no deviations in style or convention, making the set easy to navigate.
With 45 tools, the count is excessive for a GitLab server, leading to potential cognitive overload and redundancy. While GitLab is feature-rich, many tools could be consolidated (e.g., note and discussion tools), making the surface feel bloated and less scoped.
The tool set provides comprehensive coverage of GitLab's core functionalities, including full CRUD operations for issues, merge requests, labels, and projects, along with advanced features like time tracking, file management, and namespace handling. No obvious gaps are present for the domain.