GitLab MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NPM_CONFIG_TOKEN | Yes | Your GitLab personal access token used to authenticate with the GitLab API. Required with scopes: api, read_user, read_repository |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
| logging | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_projectsA | List GitLab projects with minimal info by default (to reduce token usage from 40k+ to much less). Use simple=false for full project details when needed. |
| get_projectC | Get details of a specific project |
| upload_project_fileA | Upload a file to a GitLab project. Returns a markdown string and URL that can be embedded in MR comments, issue descriptions, etc. |
| list_project_uploadsB | List files that have been uploaded to a project |
| list_project_labelsA | List all labels available in a project. Useful for discovering valid label names before adding them to issues or merge requests. |
| list_issuesC | List issues in a project |
| get_issueB | Get details of a specific issue |
| create_issueC | Create a new issue |
| list_merge_requestsC | List merge requests in a project |
| get_merge_requestA | Get details of a merge request. Either merge_request_iid or source_branch must be provided. |
| get_merge_request_diffsB | Get the changes/diffs of a merge request. Either merge_request_iid or source_branch must be provided. |
| list_merge_request_diffsA | List merge request diffs with pagination support. Either merge_request_iid or source_branch must be provided. |
| get_branch_diffsB | Get the changes/diffs between two branches or commits in a GitLab project |
| create_merge_requestC | Create a new merge request |
| update_merge_requestA | Update an existing merge request. Either merge_request_iid or source_branch must be provided. |
| list_mr_notesA | List all notes (comments) on a merge request |
| list_mr_discussionsA | List discussions (threaded comments including inline code comments) on a merge request. Use unresolved_only=true to fetch only unresolved discussions (saves tokens). |
| create_mr_noteA | Add a new top-level comment to a merge request. Supports embedding images/files via attachments parameter. |
| create_mr_discussionA | Create a new discussion on a merge request. Can be a general discussion or an inline comment on the diff. Supports embedding images/files via attachments parameter. |
| reply_to_mr_discussionB | Reply to an existing discussion thread on a merge request |
| resolve_mr_discussionB | Mark a discussion on a merge request as resolved |
| unresolve_mr_discussionA | Mark a discussion on a merge request as unresolved |
| update_mr_discussion_noteB | Modify an existing merge request discussion note |
| create_mr_discussion_noteB | Add a new note to an existing merge request discussion thread |
| delete_mr_discussion_noteC | Delete a note from a merge request discussion |
| mark_mr_as_draftA | Mark a merge request as draft (work in progress, not ready for review) |
| mark_mr_as_readyA | Mark a merge request as ready (remove draft status, ready for review) |
| list_mr_templatesA | List available merge request description templates in a project |
| get_mr_templateB | Get a specific merge request description template by name |
| delete_mr_noteA | Delete a top-level note (comment) from a merge request |
| update_mr_noteA | Update the content of an existing top-level note (comment) on a merge request. Supports embedding images/files via attachments parameter. |
| update_mr_labelsA | Add or remove labels from a merge request. More convenient than update_merge_request for label-only changes. |
| get_mr_approvalsA | Get the approval status of a merge request, including who has approved, how many approvals are needed, and approval rules. |
| approve_mrB | Approve a merge request. The authenticated user must have permission to approve. |
| unapprove_mrB | Remove your approval from a merge request. |
| list_project_branchesB | List branches in a project |
| get_project_commitsB | List repository commits with filtering options |
| get_commitB | Get details of a specific commit |
| get_commit_diffB | Get changes/diffs of a specific commit |
| list_pipelinesB | List pipelines in a project |
| get_pipelineB | Get details of a specific pipeline |
| create_pipelineD | Create a new pipeline |
| retry_pipelineB | Retry a failed pipeline |
| cancel_pipelineB | Cancel a running pipeline |
| delete_pipelineC | Delete a pipeline |
| get_pipeline_variablesB | Get variables of a pipeline |
| list_pipeline_jobsB | List jobs in a pipeline |
| get_job_logsB | Get the log (trace) file of a specific job |
| get_job_traceB | Get job trace with options for partial logs, tail mode, and line limits |
| get_userA | Get current user information |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| review-mr | Review a merge request with full context including diffs, discussions, and approval status. Provides a structured analysis template. |
| analyze-pipeline-failure | Analyze a failed pipeline by examining job logs and identifying the root cause of failure. |
| summarize-mr-changes | Generate a summary of all changes in a merge request, suitable for release notes or team updates. |
| check-mr-readiness | Check if a merge request is ready to be merged by verifying approvals, resolved discussions, and pipeline status. |
| generate-release-notes | Generate release notes from merged merge requests in a project since a given date or tag. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Current User | The currently authenticated GitLab user |
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/Alosies/gitlab-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server