gitlab mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GITLAB_API_URL | No | Your GitLab API URL. Defaults to https://gitlab.com/api/v4 | https://gitlab.com/api/v4 |
| GITLAB_PERSONAL_ACCESS_TOKEN | Yes | Your GitLab personal access token. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| merge_merge_requestC | Merge a merge request |
| approve_merge_requestC | Approve a merge request |
| unapprove_merge_requestB | Unapprove a merge request |
| get_merge_request_approval_stateA | Get merge request approval details including approvers |
| get_merge_request_conflictsB | Get the conflicts of a merge request |
| list_merge_request_pipelinesA | List pipelines for a merge request with pagination |
| create_or_update_fileC | Create or update a file in a GitLab project |
| search_repositoriesC | Search for GitLab projects |
| create_repositoryB | Create a new GitLab project |
| create_groupC | Create new group or subgroup |
| get_file_contentsB | Get contents of a file or directory from a GitLab project |
| push_filesA | Push multiple files in a single commit |
| create_issueC | Create a new issue |
| create_merge_requestC | Create a new merge request |
| fork_repositoryA | Fork a project to your account or specified namespace |
| create_branchC | Create a new branch |
| get_branchA | Get branch details (commit, protection status) |
| list_branchesA | List branches in project with search filter |
| delete_branchA | Delete branch from project |
| list_protected_branchesA | List protected branches in a project, supports search filter |
| get_protected_branchA | Get details of a single protected branch (access levels, force push settings) |
| protect_branchB | Protect a repository branch (set push/merge/unprotect access levels) |
| unprotect_branchA | Remove protection from a previously protected branch |
| update_default_branchB | Change the default branch of a project |
| get_merge_requestB | Get details of a merge request (mergeRequestIid or branchName required) |
| get_merge_request_diffsA | Get the changes/diffs of a merge request (mergeRequestIid or branchName required) |
| list_merge_request_changed_filesA | List changed file paths in a merge request without diff content (mergeRequestIid or branchName required) |
| list_merge_request_diffsA | List merge request diffs with pagination (mergeRequestIid or branchName required) |
| get_merge_request_file_diffC | Get diffs for specific files from a merge request (mergeRequestIid or branchName required) |
| list_merge_request_versionsA | List all versions of a merge request |
| get_merge_request_versionB | Get a specific version of a merge request |
| get_branch_diffsB | Get diffs between two branches or commits |
| update_merge_requestC | Update a merge request (mergeRequestIid or branchName required) |
| 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 |
| resolve_merge_request_threadB | Resolve a thread on a merge request |
| mr_discussionsB | List discussion items for a merge request |
| delete_merge_request_discussion_noteB | Delete a discussion note on a merge request |
| update_merge_request_discussion_noteB | Update a discussion note on a merge request |
| create_merge_request_discussion_noteB | Add a new discussion note to an existing merge request thread |
| create_merge_request_noteB | Add a new note to a merge request |
| delete_merge_request_noteA | Delete an existing merge request note |
| get_merge_request_noteB | Get a specific note for a merge request |
| get_merge_request_notesB | List notes for a merge request |
| update_merge_request_noteC | Modify an existing merge request note |
| get_draft_noteA | Get a single draft note from a merge request |
| list_draft_notesB | List draft notes for a merge request |
| create_draft_noteB | Create a draft note for a merge request |
| update_draft_noteB | Update an existing draft note |
| delete_draft_noteB | Delete a draft note |
| publish_draft_noteB | Publish a single draft note |
| bulk_publish_draft_notesB | Publish all draft notes for a merge request |
| list_merge_request_emoji_reactionsA | List all emoji reactions on a merge request |
| list_merge_request_note_emoji_reactionsA | List all emoji reactions on a merge request note. Pass discussion_id for discussion thread replies. |
| create_merge_request_emoji_reactionA | Add an emoji reaction to a merge request (e.g. thumbsup, rocket, eyes) |
| delete_merge_request_emoji_reactionA | Remove an emoji reaction from a merge request |
| create_merge_request_note_emoji_reactionA | Add an emoji reaction to a merge request note. Pass discussion_id for discussion thread replies. |
| delete_merge_request_note_emoji_reactionA | Remove an emoji reaction from a merge request note. Pass discussion_id for discussion thread replies. |
| update_issue_noteB | Modify an existing issue thread note |
| create_issue_noteA | Add a note to an issue, optionally replying to a discussion thread |
| list_issue_emoji_reactionsA | List all emoji reactions on an issue |
| list_issue_note_emoji_reactionsA | List all emoji reactions on an issue note. Pass discussion_id for discussion thread replies. |
| create_issue_emoji_reactionB | Add an emoji reaction to an issue (e.g. thumbsup, rocket, eyes) |
| delete_issue_emoji_reactionA | Remove an emoji reaction from an issue |
| create_issue_note_emoji_reactionA | Add an emoji reaction to an issue note. Pass discussion_id for discussion thread replies. |
| delete_issue_note_emoji_reactionA | Remove an emoji reaction from an issue note. Pass discussion_id for discussion thread replies. |
| list_issuesA | List issues (default: created by current user; use scope='all' for all) |
| my_issuesB | List issues assigned to the authenticated user |
| get_issueB | Get details of a specific issue |
| update_issueC | Update an issue |
| update_issue_description_patchA | Apply a patch (search/replace or unified diff) to an issue description. Reduces token usage by allowing small changes without sending the full description. Supports dry_run to preview changes and create_note to summarize updates. |
| delete_issueA | Delete an issue |
| list_todosA | List GitLab to-do items for the current user |
| mark_todo_doneA | Mark a GitLab to-do item as done |
| mark_all_todos_doneA | Mark all pending GitLab to-do items as done for the current user |
| list_issue_linksB | List all issue links for a specific issue |
| list_issue_discussionsB | List discussions for an issue |
| get_issue_linkB | Get a specific issue link |
| create_issue_linkB | Create an issue link between two issues |
| delete_issue_linkA | Delete an issue link |
| list_namespacesA | List all namespaces (users and groups) available to the current user. Filter by kind='group' for groups only. |
| get_namespaceA | Get details of a namespace (user or group) by ID or path. Groups are namespaces with kind='group'. |
| verify_namespaceA | Verify if a namespace path exists |
| get_projectB | Get details of a specific project |
| list_projectsC | List projects accessible by the current user |
| list_project_membersB | List members of a GitLab project |
| list_labelsB | List labels for a project |
| get_labelB | Get a single label from a project |
| create_labelB | Create a new label in a project |
| update_labelB | Update an existing label in a project |
| delete_labelA | Delete a label from a project |
| list_group_projectsB | List projects in a group |
| get_repository_treeA | List files and directories in a repository |
| validate_ci_lintB | Validate provided GitLab CI/CD YAML content for a project |
| validate_project_ci_lintB | Validate an existing .gitlab-ci.yml configuration for a project |
| list_merge_requestsA | List merge requests (without project_id: user's MRs; with project_id: project MRs) |
| get_usersB | Get GitLab user details by usernames |
| get_userA | Get user details by ID |
| whoamiA | Get current authenticated user details |
| list_commitsA | List repository commits with filtering options |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/zereight/gitlab-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server