You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+42-91Lines changed: 42 additions & 91 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -461,8 +461,8 @@ When OAuth is enabled, the following endpoints are available:
461
461
-`USE_MILESTONE`: When set to 'true', enables the milestone-related tools (list_milestones, get_milestone, create_milestone, edit_milestone, delete_milestone, get_milestone_issue, get_milestone_merge_requests, promote_milestone, get_milestone_burndown_events). By default, milestone features are disabled.
462
462
-`USE_PIPELINE`: When set to 'true', enables the pipeline-related tools (list_pipelines, get_pipeline, list_pipeline_jobs, list_pipeline_trigger_jobs, get_pipeline_job, get_pipeline_job_output, create_pipeline, retry_pipeline, cancel_pipeline, play_pipeline_job, retry_pipeline_job, cancel_pipeline_job). By default, pipeline features are disabled.
463
463
-`USE_LABELS`: When set to 'true', enables the label-related tools (list_labels, get_label, create_label, update_label, delete_label). By default, label features are enabled.
464
-
-`USE_MRS`: When set to 'true', enables the merge request-related tools (list_merge_requests, get_merge_request, create_merge_request, update_merge_request, merge_merge_request, get_merge_request_diffs, list_merge_request_diffs, mr_discussions, create_merge_request_thread, create_merge_request_note, update_merge_request_note, create_draft_note, update_draft_note, delete_draft_note, publish_draft_note, bulk_publish_draft_notes, get_draft_note, list_draft_notes). By default, merge request features are enabled.
465
-
-`USE_FILES`: When set to 'true', enables the file-related tools (get_file_contents, get_repository_tree, create_or_update_file, push_files, upload_markdown). By default, file operation features are enabled.
464
+
-`USE_MRS`: When set to 'true', enables the merge request-related tools (browse_merge_requests, browse_mr_discussions, manage_merge_request, manage_mr_discussion, manage_draft_notes). These 5 CQRS tools consolidate all MR operations. By default, merge request features are enabled.
465
+
-`USE_FILES`: When set to 'true', enables the file-related tools (browse_files, manage_files). These 2 CQRS tools consolidate all file operations. By default, file operation features are enabled.
466
466
-`USE_VARIABLES`: When set to 'true', enables the CI/CD variables-related tools (list_variables, get_variable, create_variable, update_variable, delete_variable). Supports both project-level and group-level variables. By default, variables features are enabled.
467
467
-`GITLAB_AUTH_COOKIE_PATH`: Path to an authentication cookie file for GitLab instances that require cookie-based authentication. When provided, the cookie will be included in all GitLab API requests.
468
468
-`SKIP_TLS_VERIFY`: When set to 'true', skips TLS certificate verification for all GitLab API requests (both REST and GraphQL). **WARNING**: This bypasses SSL certificate validation and should only be used for testing with self-signed certificates or trusted internal GitLab instances. Never use this in production environments.
-**Case Sensitivity**: Tool names in environment variables must be UPPERCASE (e.g., `LIST_PROJECTS` not `list_projects`)
533
533
-**Invalid Names**: Invalid tool names in environment variables are ignored with a warning in debug logs
534
534
-**Content Guidelines**: Descriptions can be any valid string but should be kept concise for better UX
535
-
-**Scope**: Works with all 86 available tools across all entities (Core, Work Items, Merge Requests, Files, etc.)
535
+
-**Scope**: Works with all 61 available tools across all entities (Core, Work Items, Merge Requests, Files, etc.)
536
536
537
537
## Tools 🛠️
538
538
539
-
**85 Tools Available** - Organized by entity and functionality below.
539
+
**61 Tools Available** - Organized by entity and functionality below.
540
540
541
541
### Key Features:
542
+
-**CQRS Pattern** - Consolidated action-based tools: `browse_*` for reads, `manage_*` for writes
542
543
-**Modular Entity Architecture** - Separate entities for Labels, Merge Requests, Files, Pipelines, etc.
543
544
-**Environment-Gated Features** - Enable/disable tool groups with USE_* environment variables
544
545
-**Work Items Management** - Modern GraphQL API for Issues, Epics, Tasks, and more
545
546
-**Complete GitLab API Coverage** - Repository, Merge Requests, Pipelines, Wiki, and more
546
547
-**Tier-based Feature Detection** - Automatically enables features based on your GitLab tier
547
548
-**Read-only Mode Support** - Safe operation mode for production environments
548
549
549
-
### Migration from v2.0:
550
-
All issue management has been migrated to the Work Items GraphQL API. The legacy REST API issue tools (`create_issue`, `update_issue`, etc.) have been removed. Use the Work Items tools (`create_work_item`, `update_work_item`, etc.) instead for better performance and more features.
551
-
552
-
<details>
553
-
<summary>Removed/Migrated Tools from v2.0</summary>
554
-
555
-
The following issue-related tools have been removed and replaced by Work Items GraphQL API:
556
-
557
-
-`create_issue` → Use `create_work_item` instead
558
-
-`update_issue` → Use `update_work_item` instead
559
-
-`delete_issue` → Use `delete_work_item` instead
560
-
-`list_issues` → Use `list_work_items` instead
561
-
-`my_issues` → Use `list_work_items` with assignee filter
562
-
-`get_issue` → Use `get_work_item` instead
563
-
-`create_issue_link` → Use `update_work_item` with LINKED_ITEMS widget
564
-
-`delete_issue_link` → Use `update_work_item` with LINKED_ITEMS widget
565
-
-`update_issue_note` → Use `update_work_item` with NOTES widget
566
-
-`create_issue_note` → Use `update_work_item` with NOTES widget
567
-
-`list_issue_links` → Use Work Items GraphQL API
568
-
-`list_issue_discussions` → Use Work Items GraphQL API
569
-
-`get_issue_link` → Use Work Items GraphQL API
570
-
571
-
</details>
572
-
573
550
## Complete Tool Reference
574
551
575
552
### Legend
576
553
- 📖 = Read-only tool (available in GITLAB_READ_ONLY_MODE)
577
554
- ✏️ = Read/Write tool (disabled in GITLAB_READ_ONLY_MODE)
- ✏️ **`create_repository`**: Create a new GitLab project
584
-
- 📖 **`get_project`**: Get details of a specific project
585
-
- 📖 **`list_projects`**: List GitLab projects with flexible scoping. DEFAULT (no group_id): Lists YOUR accessible projects across GitLab (owned/member/starred). GROUP SCOPE (with group_id): Lists all projects within a specific group/organization. Parameters automatically validate based on scope.
586
-
- 📖 **`search_repositories`**: Search for GitLab projects
587
-
- 📖 **`list_project_members`**: List members of a GitLab project
588
-
589
-
#### Branch Management
590
-
- ✏️ **`create_branch`**: Create a new branch in a GitLab project
591
-
- 📖 **`get_branch_diffs`**: Get the changes/diffs between two branches or commits in a GitLab project
592
-
- ✏️ **`fork_repository`**: Fork a GitLab project to your account or specified namespace
560
+
- 📖 **`browse_projects`**: PROJECT DISCOVERY: Find, browse, or inspect GitLab projects. Actions: "search" finds projects by name/topic, "list" browses accessible projects, "get" retrieves full details.
561
+
- ✏️ **`manage_repository`**: REPOSITORY MANAGEMENT: Create or fork GitLab projects. Actions: "create" starts new project, "fork" creates your copy of existing project.
562
+
- 📖 **`list_project_members`**: List members of a GitLab project with access levels.
593
563
594
-
#### Comments & General Notes
595
-
-✏️**`create_note`**: Create a new note (comment) to an issue or merge request
596
-
-📖**`download_attachment`**: Download an uploaded file from a GitLab project by secret and filename
564
+
#### Namespaces & Groups
565
+
-📖**`browse_namespaces`**: NAMESPACE OPERATIONS: Explore groups and user namespaces. Actions: "list" discovers namespaces, "get" retrieves details, "verify" checks if path exists.
566
+
-✏️**`create_group`**: Create a new GitLab group/namespace. Can create subgroups with parent_id.
597
567
598
568
#### Commits & History
599
-
- 📖 **`get_commit`**: Get details of a specific commit
600
-
- 📖 **`get_commit_diff`**: Get changes/diffs of a specific commit
601
-
- 📖 **`list_commits`**: List repository commits with filtering options
602
-
603
-
#### Namespaces & Users
604
-
- 📖 **`get_namespace`**: Get details of a namespace by ID or path
605
-
- 📖 **`list_namespaces`**: List all namespaces available to the current user
606
-
- 📖 **`verify_namespace`**: Verify if a namespace path exists
607
-
- 📖 **`get_users`**: Get GitLab user details by usernames
Requires USE_VARIABLES=true environment variable (enabled by default). Supports both project-level and group-level variables.
@@ -865,4 +817,3 @@ This GitLab MCP Server is developed and maintained with care for the community.
865
817
866
818
**Maintained with ❤️ by [Dmitry Prudnikov](https://github.com/polaz)**
867
819
**Original work by [zereight](https://github.com/zereight) - Thank you for the foundation!**
0 commit comments