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 |
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
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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