GitLab MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GITLAB_API_URL | No | The URL of the GitLab API endpoint | https://gitlab.com/api/v4 |
| GITLAB_API_TOKEN | Yes | Your GitLab API token used to authenticate with the GitLab API |
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 |
|---|---|
| gitlab_list_projectsB | List GitLab projects accessible to the user |
| gitlab_get_projectC | Get details of a specific GitLab project |
| gitlab_list_branchesC | List branches of a GitLab project |
| gitlab_list_merge_requestsC | List merge requests in a GitLab project |
| gitlab_get_merge_requestB | Get details of a specific merge request |
| gitlab_get_merge_request_changesC | Get changes (diff) of a specific merge request |
| gitlab_create_merge_request_noteC | Add a comment to a merge request |
| gitlab_create_merge_request_note_internalB | Add a comment to a merge request with option to make it an internal note |
| gitlab_update_merge_requestC | Update a merge request title and description |
| gitlab_list_issuesC | List issues in a GitLab project |
| gitlab_get_repository_fileC | Get content of a file in a repository |
| gitlab_compare_branchesC | Compare branches, tags or commits |
| gitlab_list_integrationsB | List all available project integrations/services |
| gitlab_get_integrationC | Get integration details for a project |
| gitlab_update_slack_integrationC | Update Slack integration settings for a project |
| gitlab_disable_slack_integrationC | Disable Slack integration for a project |
| gitlab_list_webhooksC | List webhooks for a project |
| gitlab_get_webhookC | Get details of a specific webhook |
| gitlab_add_webhookC | Add a new webhook to a project |
| gitlab_update_webhookC | Update an existing webhook |
| gitlab_delete_webhookC | Delete a webhook |
| gitlab_test_webhookC | Test a webhook |
| gitlab_list_trigger_tokensC | List pipeline trigger tokens |
| gitlab_get_trigger_tokenC | Get details of a pipeline trigger token |
| gitlab_create_trigger_tokenC | Create a new pipeline trigger token |
| gitlab_update_trigger_tokenC | Update a pipeline trigger token |
| gitlab_delete_trigger_tokenC | Delete a pipeline trigger token |
| gitlab_trigger_pipelineC | Trigger a pipeline run |
| gitlab_list_cicd_variablesC | List CI/CD variables for a project |
| gitlab_get_cicd_variableB | Get a specific CI/CD variable |
| gitlab_create_cicd_variableC | Create a new CI/CD variable |
| gitlab_update_cicd_variableC | Update a CI/CD variable |
| gitlab_delete_cicd_variableC | Delete a CI/CD variable |
| gitlab_list_usersC | List GitLab users |
| gitlab_get_userC | Get details of a specific user |
| gitlab_list_groupsC | List GitLab groups |
| gitlab_get_groupC | Get details of a specific group |
| gitlab_list_group_membersC | List members of a group |
| gitlab_add_group_memberC | Add a user to a group |
| gitlab_list_project_membersC | List members of a project |
| gitlab_add_project_memberC | Add a user to a project |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| GitLab Projects | List of GitLab projects accessible to the authenticated user |
TDQS
Scored across 41 tools
Most tools have distinct purposes targeting specific resources and actions, but there is some overlap: gitlab_create_merge_request_note and gitlab_create_merge_request_note_internal are nearly identical, differing only in an optional parameter, which could cause confusion. Otherwise, tools are well-differentiated across groups, projects, CI/CD, webhooks, and integrations.
All tools follow a consistent gitlab_verb_noun pattern with snake_case throughout, such as gitlab_list_projects, gitlab_create_cicd_variable, and gitlab_update_webhook. This uniformity makes the tool set predictable and easy to navigate, with no deviations in style or structure.
With 41 tools, the count is high for a GitLab server, bordering on heavy. While it covers many aspects of GitLab's API, it may overwhelm agents with its breadth. A more focused set of 15-25 tools might be more manageable, but it's not extreme like 50+ tools.
The tool set provides comprehensive coverage for GitLab operations, including CRUD for groups, projects, members, CI/CD variables, webhooks, trigger tokens, and integrations. It supports full lifecycles with create, get, update, delete, and list operations, leaving no obvious gaps for core workflows in the domain.