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_projects | 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_project | Get details of a specific project |
| upload_project_file | 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_uploads | List files that have been uploaded to a project |
| list_project_labels | List all labels available in a project. Useful for discovering valid label names before adding them to issues or merge requests. |
| list_issues | List issues in a project |
| get_issue | Get details of a specific issue |
| create_issue | Create a new issue |
| list_merge_requests | List merge requests in a project |
| get_merge_request | Get details of a merge request. Either merge_request_iid or source_branch must be provided. |
| get_merge_request_diffs | Get the changes/diffs of a merge request. Either merge_request_iid or source_branch must be provided. |
| list_merge_request_diffs | List merge request diffs with pagination support. Either merge_request_iid or source_branch must be provided. |
| get_branch_diffs | Get the changes/diffs between two branches or commits in a GitLab project |
| create_merge_request | Create a new merge request |
| update_merge_request | Update an existing merge request. Either merge_request_iid or source_branch must be provided. |
| list_mr_notes | List all notes (comments) on a merge request |
| list_mr_discussions | 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_note | Add a new top-level comment to a merge request. Supports embedding images/files via attachments parameter. |
| create_mr_discussion | 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_discussion | Reply to an existing discussion thread on a merge request |
| resolve_mr_discussion | Mark a discussion on a merge request as resolved |
| unresolve_mr_discussion | Mark a discussion on a merge request as unresolved |
| update_mr_discussion_note | Modify an existing merge request discussion note |
| create_mr_discussion_note | Add a new note to an existing merge request discussion thread |
| delete_mr_discussion_note | Delete a note from a merge request discussion |
| mark_mr_as_draft | Mark a merge request as draft (work in progress, not ready for review) |
| mark_mr_as_ready | Mark a merge request as ready (remove draft status, ready for review) |
| list_mr_templates | List available merge request description templates in a project |
| get_mr_template | Get a specific merge request description template by name |
| delete_mr_note | Delete a top-level note (comment) from a merge request |
| update_mr_note | Update the content of an existing top-level note (comment) on a merge request. Supports embedding images/files via attachments parameter. |
| update_mr_labels | Add or remove labels from a merge request. More convenient than update_merge_request for label-only changes. |
| get_mr_approvals | Get the approval status of a merge request, including who has approved, how many approvals are needed, and approval rules. |
| approve_mr | Approve a merge request. The authenticated user must have permission to approve. |
| unapprove_mr | Remove your approval from a merge request. |
| list_project_branches | List branches in a project |
| get_project_commits | List repository commits with filtering options |
| get_commit | Get details of a specific commit |
| get_commit_diff | Get changes/diffs of a specific commit |
| list_pipelines | List pipelines in a project |
| get_pipeline | Get details of a specific pipeline |
| create_pipeline | Create a new pipeline |
| retry_pipeline | Retry a failed pipeline |
| cancel_pipeline | Cancel a running pipeline |
| delete_pipeline | Delete a pipeline |
| get_pipeline_variables | Get variables of a pipeline |
| list_pipeline_jobs | List jobs in a pipeline |
| get_job_logs | Get the log (trace) file of a specific job |
| get_job_trace | Get job trace with options for partial logs, tail mode, and line limits |
| get_user | 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