GitLab MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GITLAB_URL | No | GitLab instance URL | https://gitlab.com |
| GITLAB_TIMEOUT | No | Request timeout in milliseconds | 30000 |
| GITLAB_AUTH_MODE | No | Authentication mode (hybrid, per-user, or shared) | hybrid |
| GITLAB_MAX_PAGE_SIZE | No | Maximum items per page (1-100) | 50 |
| GITLAB_SHARED_ACCESS_TOKEN | No | Shared token for read operations (optional in hybrid mode) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_projectA | Get detailed information about a specific GitLab project (read-only) |
| get_issuesB | Get issues from a specific GitLab project (read-only) |
| get_merge_requestsB | Get merge requests from a specific GitLab project (read-only) |
| execute_custom_queryA | Execute custom GraphQL queries for complex filtering (e.g., issues with assigneeUsernames: ["user"], labelName: ["bug"]). Use this for structured filtering by assignee/author/labels when search tools return 0 results. Use pagination and limit complexity to avoid timeouts. |
| get_available_queriesB | Get list of available GraphQL queries and mutations from the GitLab schema |
| get_merge_request_pipelinesB | Get CI/CD pipelines for a merge request, including status, duration, and stages |
| get_pipeline_jobsB | Get jobs for a specific pipeline, including status, stage, duration, and retry/cancel info |
| get_merge_request_diffsB | Get diff statistics for a merge request, including per-file additions/deletions and diff refs |
| get_merge_request_commitsB | Get commits for a merge request (excluding merge commits), with commit count and details |
| get_notesA | Get notes (comments) on an issue or merge request, including system notes and inline MR comments |
| list_milestonesA | List milestones for a project or group with progress statistics (total/closed issue counts) |
| list_iterationsA | List iterations (sprints) for a group with cadence info. Requires GitLab Premium/Ultimate. |
| get_time_trackingB | Get time tracking data (estimate, spent, timelogs) for an issue or merge request |
| get_merge_request_reviewersA | Get approval and reviewer status for a merge request, including who approved and review states |
| get_project_statisticsA | Get aggregate project statistics: open issues/MRs, star/fork counts, storage sizes, commit count, last pipeline status, release count, and language breakdown |
| get_current_userA | Get information about the current authenticated GitLab user |
| get_projectsA | List projects accessible to the user (requires authentication to see private projects) |
| create_issueA | Create a new issue in a GitLab project (requires user authentication with write permissions) |
| create_merge_requestA | Create a new merge request in a GitLab project (requires user authentication with write permissions) |
| create_noteA | Add a comment/note to an issue or merge request (requires user authentication) |
| manage_pipelineA | Retry or cancel a CI/CD pipeline (requires user authentication with write permissions) |
| update_issueB | Update an issue (title, description, assignees, labels, due date) with schema-aware mutations |
| update_merge_requestC | Update a merge request (title, description, assignees, reviewers, labels) with schema-aware mutations |
| resolve_pathA | Resolve a GitLab path to either a project or group and list group projects when applicable |
| get_group_projectsA | List projects inside a GitLab group (optionally filter by search term) |
| get_type_fieldsA | List available fields on a GraphQL type using introspected schema (requires schema to be introspected) |
| search_gitlabA | Text search across GitLab projects and issues (Note: Does not support filtering by assignee/labels - use search_issues for that. MRs cannot be searched globally - use search_merge_requests with username) |
| search_projectsB | Search for GitLab projects by name or description |
| search_issuesA | Search for issues with text search and/or structured filtering (assignee, author, labels, state). For filtering by assignee/author/labels without text search, leave searchTerm empty. |
| search_merge_requestsA | Search merge requests by username (supports "username", "author:username", "assignee:username") or search within a specific project. Note: GitLab does not support global text search for MRs - use projectPath for text searches. |
| get_user_issuesA | Get all issues assigned to a specific user - uses proper GraphQL filtering for reliable results |
| get_user_merge_requestsB | Get merge requests for a specific user (as author or assignee) - uses proper GraphQL filtering |
| search_usersA | Search for GitLab users by username or name - useful for finding team members or contributors |
| search_groupsB | Search for GitLab groups and organizations |
| search_labelsB | Search for labels in a project or group, with optional text filtering |
| browse_repositoryB | Browse repository files and folders - essential for exploring codebase structure |
| get_file_contentA | Get the content of a specific file from a GitLab repository - crucial for code analysis |
| list_group_membersA | List group members with access levels, optionally filtered by search term |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| explore-project | Explore a GitLab project structure and recent activity |
| find-my-work | Find issues and merge requests assigned to you |
| review-merge-request | Review a specific merge request with code changes |
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/ttpears/gitlab-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server