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_project | Get detailed information about a specific GitLab project (read-only) |
| get_issues | Get issues from a specific GitLab project (read-only) |
| get_merge_requests | Get merge requests from a specific GitLab project (read-only) |
| execute_custom_query | 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_queries | Get list of available GraphQL queries and mutations from the GitLab schema |
| get_merge_request_pipelines | Get CI/CD pipelines for a merge request, including status, duration, and stages |
| get_pipeline_jobs | Get jobs for a specific pipeline, including status, stage, duration, and retry/cancel info |
| get_merge_request_diffs | Get diff statistics for a merge request, including per-file additions/deletions and diff refs |
| get_merge_request_commits | Get commits for a merge request (excluding merge commits), with commit count and details |
| get_notes | Get notes (comments) on an issue or merge request, including system notes and inline MR comments |
| list_milestones | List milestones for a project or group with progress statistics (total/closed issue counts) |
| list_iterations | List iterations (sprints) for a group with cadence info. Requires GitLab Premium/Ultimate. |
| get_time_tracking | Get time tracking data (estimate, spent, timelogs) for an issue or merge request |
| get_merge_request_reviewers | Get approval and reviewer status for a merge request, including who approved and review states |
| get_project_statistics | Get aggregate project statistics: open issues/MRs, star/fork counts, storage sizes, commit count, last pipeline status, release count, and language breakdown |
| get_current_user | Get information about the current authenticated GitLab user |
| get_projects | List projects accessible to the user (requires authentication to see private projects) |
| create_issue | Create a new issue in a GitLab project (requires user authentication with write permissions) |
| create_merge_request | Create a new merge request in a GitLab project (requires user authentication with write permissions) |
| create_note | Add a comment/note to an issue or merge request (requires user authentication) |
| manage_pipeline | Retry or cancel a CI/CD pipeline (requires user authentication with write permissions) |
| update_issue | Update an issue (title, description, assignees, labels, due date) with schema-aware mutations |
| update_merge_request | Update a merge request (title, description, assignees, reviewers, labels) with schema-aware mutations |
| resolve_path | Resolve a GitLab path to either a project or group and list group projects when applicable |
| get_group_projects | List projects inside a GitLab group (optionally filter by search term) |
| get_type_fields | List available fields on a GraphQL type using introspected schema (requires schema to be introspected) |
| search_gitlab | 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_projects | Search for GitLab projects by name or description |
| search_issues | 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_requests | 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_issues | Get all issues assigned to a specific user - uses proper GraphQL filtering for reliable results |
| get_user_merge_requests | Get merge requests for a specific user (as author or assignee) - uses proper GraphQL filtering |
| search_users | Search for GitLab users by username or name - useful for finding team members or contributors |
| search_groups | Search for GitLab groups and organizations |
| search_labels | Search for labels in a project or group, with optional text filtering |
| browse_repository | Browse repository files and folders - essential for exploring codebase structure |
| get_file_content | Get the content of a specific file from a GitLab repository - crucial for code analysis |
| list_group_members | 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 | |