@zereight/mcp-gitlab 2.1.68 → 2.1.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.ko.md +11 -3
  2. package/README.md +237 -232
  3. package/README.pt-BR.md +8 -4
  4. package/README.zh-CN.md +7 -3
  5. package/build/cli/args.js +298 -0
  6. package/build/cli/compact-mcp-result.js +87 -0
  7. package/build/cli/curated.js +243 -0
  8. package/build/cli/exposure.js +72 -0
  9. package/build/cli/help.js +108 -0
  10. package/build/cli/output.js +65 -0
  11. package/build/cli/replay-command.js +53 -0
  12. package/build/cli/router.js +158 -0
  13. package/build/cli/tables.js +117 -0
  14. package/build/cli-boolean-flags.js +38 -0
  15. package/build/cli-command.js +14 -4
  16. package/build/config.js +30 -7
  17. package/build/index.js +176 -90
  18. package/build/oauth.js +93 -10
  19. package/build/scripts/generate-tool-docs.js +2 -1
  20. package/build/test/cli/args.test.js +175 -0
  21. package/build/test/cli/boolean-flags.test.js +106 -0
  22. package/build/test/cli/compact-mcp-result.test.js +93 -0
  23. package/build/test/cli/credentials.test.js +153 -0
  24. package/build/test/cli/exposure.test.js +104 -0
  25. package/build/test/cli/load-config-snapshot.js +5 -0
  26. package/build/test/cli/output.test.js +74 -0
  27. package/build/test/cli/replay-command.test.js +37 -0
  28. package/build/test/cli/router.test.js +183 -0
  29. package/build/test/gitlab-api-tool-errors.test.js +112 -0
  30. package/build/test/oauth-device-flow-tests.js +10 -0
  31. package/build/test/oauth-download-url.test.js +157 -0
  32. package/build/test/oauth-startup.test.js +204 -0
  33. package/build/test/test-dynamic-project-scope.js +2 -0
  34. package/build/test/test-geteffectiveprojectid.js +20 -26
  35. package/build/test/test-permission-mode.js +86 -0
  36. package/build/test/test-pipeline-schedules.js +3 -1
  37. package/build/test/utils/url.test.js +14 -1
  38. package/build/tools/denied-regex.js +38 -0
  39. package/build/utils/url.js +15 -0
  40. package/package.json +1 -1
package/README.md CHANGED
@@ -22,7 +22,7 @@ Supports PAT, OAuth, read-only mode, dynamic API URLs, and remote authorization
22
22
 
23
23
  ### Why use this GitLab MCP?
24
24
 
25
- - **266 tools + `discover_tools`** — start with a small toolset; activate more at runtime without CQRS-style grouping
25
+ - **267 tools + `discover_tools`** — start with a small toolset; activate more at runtime without CQRS-style grouping
26
26
  - **MR 2-step review** — `list_merge_request_changed_files` → batched `get_merge_request_file_diff`
27
27
  - **Agent Skill built in** — workflow guidance in `skills/gitlab-mcp/`
28
28
  - **Flexible auth** — Personal Access Token, local OAuth2 browser flow, MCP OAuth proxy, and per-request remote authorization
@@ -36,7 +36,7 @@ Supports PAT, OAuth, read-only mode, dynamic API URLs, and remote authorization
36
36
  | | @zereight/mcp-gitlab | GitLab MCP A (community CQRS-style) |
37
37
  |---|----------------------|-------------------------------------|
38
38
  | **Best for** | AI agent workflows | Enterprise multi-instance / grouped tools |
39
- | **Tool model** | ~266 granular tools + `discover_tools` | ~50–60 grouped `browse_*` / `manage_*` tools |
39
+ | **Tool model** | ~267 granular tools + `discover_tools` | ~50–60 grouped `browse_*` / `manage_*` tools |
40
40
  | **MR review** | 2-step batched diff | Varies |
41
41
  | **Node.js** | >=18.17 | Often >=24 |
42
42
  | **License** | MIT | Varies |
@@ -116,7 +116,7 @@ The store path is pinned by your lock file; update it with `nix flake update git
116
116
 
117
117
  The examples use `zereight-mcp-gitlab`, a less collision-prone alias for the legacy `mcp-gitlab` binary. If your MCP client cannot find it, use the absolute path from `which zereight-mcp-gitlab`.
118
118
 
119
- No global install? Pin `npx` to the previous stable release (the version these docs recommend), for example `npx -y @zereight/mcp-gitlab@2.1.67`. If you always want the newest release, use `npx -y @zereight/mcp-gitlab@latest` instead. The server prints a notice to stderr on startup when a newer version is available (disable with `GITLAB_DISABLE_VERSION_CHECK=true`).
119
+ No global install? Pin `npx` to the previous stable release (the version these docs recommend), for example `npx -y @zereight/mcp-gitlab@2.1.69`. If you always want the newest release, use `npx -y @zereight/mcp-gitlab@latest` instead. The server prints a notice to stderr on startup when a newer version is available (disable with `GITLAB_DISABLE_VERSION_CHECK=true`).
120
120
 
121
121
  #### Using CLI Arguments (for clients with env var issues)
122
122
 
@@ -148,11 +148,15 @@ Some MCP clients (like GitHub Copilot CLI) have issues with environment variable
148
148
  - `--masking-config` - Path to a masking configuration file (replaces `GITLAB_MASKING_CONFIG`)
149
149
  - `--masking-policy-file` - Path to a protected managed-policy file (replaces `GITLAB_MASKING_POLICY_FILE`)
150
150
  - `--masking-workspace-dir` - Directory used to resolve masking files (replaces `GITLAB_MASKING_WORKSPACE_DIR`)
151
+ - `--compact-results=true` - Truncate oversized MCP tool replies and attach a CLI command for the full payload (replaces `GITLAB_MCP_COMPACT_RESULTS`; default off)
152
+ - `--compact-result-chars` - Character threshold for compacting (replaces `GITLAB_MCP_COMPACT_RESULT_CHARS`; default `4000`)
151
153
 
152
154
  CLI arguments take precedence over environment variables.
153
155
 
154
156
  `zereight-mcp-gitlab auth` is a subcommand (not an MCP server flag). It runs GitLab device flow and exits. See [CLI Arguments](./docs/getting-started/cli-arguments.md#auth).
155
157
 
158
+ The same binary is also a `gh`-style GitLab CLI (`tool <name>` or curated forms such as `mr list`). **No MCP registration is needed** — set a PAT, or run `auth` and set `GITLAB_USE_OAUTH=true`: see [CLI without MCP](./docs/getting-started/cli-without-mcp.md). Use it for the full payload in a terminal. MCP replies stay in the chat unless you set `GITLAB_MCP_COMPACT_RESULTS=true` (or `--compact-results`), which replaces oversized tool replies with a preview and a CLI command. Human CLI is never compacted. Same permission mode, toolsets, denied-tools regex, and tool-policy filters. Destructive tools and `GITLAB_TOOL_POLICY_APPROVE` tools need `--yes`. See [Human CLI](./docs/getting-started/cli-arguments.md#human-cli).
159
+
156
160
  > **Fine-grained tool filtering:** use `GITLAB_PERMISSION_MODE=modify` to allow create/update while
157
161
  > blocking every delete tool and the destructive teardown tools (`cancel_pipeline`,
158
162
  > `cancel_pipeline_job`, `stop_environment`, `stop_stale_environments`, `unprotect_branch`) —
@@ -639,235 +643,236 @@ Register the skill directory in your AI client to get optimal tool usage guidanc
639
643
  36. `create_merge_request_thread` - Create a new thread on a merge request
640
644
  37. `resolve_merge_request_thread` - Resolve a thread on a merge request
641
645
  38. `mr_discussions` - List discussion items for a merge request
642
- 39. `delete_merge_request_discussion_note` - Delete a discussion note on a merge request
643
- 40. `update_merge_request_discussion_note` - Update a discussion note on a merge request
644
- 41. `create_merge_request_discussion_note` - Add a new discussion note to an existing merge request thread
645
- 42. `create_merge_request_note` - Add a new note to a merge request
646
- 43. `delete_merge_request_note` - Delete an existing merge request note
647
- 44. `get_merge_request_note` - Get a specific note for a merge request
648
- 45. `get_merge_request_notes` - List notes for a merge request
649
- 46. `update_merge_request_note` - Modify an existing merge request note
650
- 47. `get_draft_note` - Get a single draft note from a merge request
651
- 48. `list_draft_notes` - List draft notes for a merge request
652
- 49. `create_draft_note` - Create a draft note for a merge request
653
- 50. `update_draft_note` - Update an existing draft note
654
- 51. `delete_draft_note` - Delete a draft note
655
- 52. `publish_draft_note` - Publish a single draft note
656
- 53. `bulk_publish_draft_notes` - Publish all draft notes for a merge request. Optionally sets reviewer_state and posts a summary note (GitLab 19.2+). Can set reviewer_state even with no drafts.
657
- 54. `list_merge_request_emoji_reactions` - List all emoji reactions on a merge request
658
- 55. `list_merge_request_note_emoji_reactions` - List all emoji reactions on a merge request note. Pass discussion_id for discussion thread replies.
659
- 56. `create_merge_request_emoji_reaction` - Add an emoji reaction to a merge request (e.g. thumbsup, rocket, eyes)
660
- 57. `delete_merge_request_emoji_reaction` - Remove an emoji reaction from a merge request
661
- 58. `create_merge_request_note_emoji_reaction` - Add an emoji reaction to a merge request note. Pass discussion_id for discussion thread replies.
662
- 59. `delete_merge_request_note_emoji_reaction` - Remove an emoji reaction from a merge request note. Pass discussion_id for discussion thread replies.
663
- 60. `update_issue_note` - Modify an existing issue thread note
664
- 61. `create_issue_note` - Add a note to an issue, optionally replying to a discussion thread
665
- 62. `list_issue_emoji_reactions` - List all emoji reactions on an issue
666
- 63. `list_issue_note_emoji_reactions` - List all emoji reactions on an issue note. Pass discussion_id for discussion thread replies.
667
- 64. `create_issue_emoji_reaction` - Add an emoji reaction to an issue (e.g. thumbsup, rocket, eyes)
668
- 65. `delete_issue_emoji_reaction` - Remove an emoji reaction from an issue
669
- 66. `create_issue_note_emoji_reaction` - Add an emoji reaction to an issue note. Pass discussion_id for discussion thread replies.
670
- 67. `delete_issue_note_emoji_reaction` - Remove an emoji reaction from an issue note. Pass discussion_id for discussion thread replies.
671
- 68. `list_issues` - List issues (default: created by current user; use scope='all' for all)
672
- 69. `my_issues` - List issues assigned to the authenticated user
673
- 70. `get_issue` - Get details of a specific issue. Returns a slim milestone by default; set full_response=true for the complete milestone object
674
- 71. `update_issue` - Update an issue. Returns a slim confirmation by default; set full_response=true for the complete updated issue object
675
- 72. `update_issue_description_patch` - Apply a patch (search/replace or unified diff) to an issue description. Reduces token usage by allowing small changes without sending the full description. Supports dry_run to preview changes and create_note to summarize updates.
676
- 73. `delete_issue` - Delete an issue
677
- 74. `list_todos` - List GitLab to-do items for the current user
678
- 75. `mark_todo_done` - Mark a GitLab to-do item as done
679
- 76. `mark_all_todos_done` - Mark all pending GitLab to-do items as done for the current user
680
- 77. `list_issue_links` - List all issue links for a specific issue
681
- 78. `list_issue_discussions` - List discussions for an issue
682
- 79. `get_issue_link` - Get a specific issue link
683
- 80. `create_issue_link` - Create an issue link between two issues
684
- 81. `delete_issue_link` - Delete an issue link
685
- 82. `list_namespaces` - List all namespaces (users and groups) available to the current user. Filter by kind='group' for groups only.
686
- 83. `get_namespace` - Get details of a namespace (user or group) by ID or path. Groups are namespaces with kind='group'.
687
- 84. `verify_namespace` - Verify if a namespace path exists. Use parent_id to scope the check to a specific parent namespace — required for nested namespaces where the same path may exist under different parents.
688
- 85. `get_project` - Get details of a specific project
689
- 86. `list_projects` - List projects accessible by the current user
690
- 87. `update_project` - Update project settings such as description, visibility, default branch, and feature access levels
691
- 88. `list_project_members` - List members of a GitLab project
692
- 89. `list_group_members` - List members of a GitLab group with optional name or username search
693
- 90. `list_labels` - List labels for a project
694
- 91. `get_label` - Get a single label from a project
695
- 92. `create_label` - Create a new label in a project
696
- 93. `update_label` - Update an existing label in a project
697
- 94. `delete_label` - Delete a label from a project
698
- 95. `list_group_projects` - List projects in a group
699
- 96. `list_wiki_pages` - List wiki pages in a project
700
- 97. `get_wiki_page` - Get details of a specific wiki page
701
- 98. `create_wiki_page` - Create a wiki page in a project
702
- 99. `update_wiki_page` - Update a wiki page in a project
703
- 100. `delete_wiki_page` - Delete a wiki page from a project
704
- 101. `list_group_wiki_pages` - List wiki pages in a group
705
- 102. `get_group_wiki_page` - Get details of a specific group wiki page
706
- 103. `create_group_wiki_page` - Create a wiki page in a group
707
- 104. `update_group_wiki_page` - Update a wiki page in a group
708
- 105. `delete_group_wiki_page` - Delete a wiki page from a group
709
- 106. `get_repository_tree` - List files and directories in a repository
710
- 107. `list_pipelines` - List pipelines with filtering options
711
- 108. `get_pipeline` - Get details of a specific pipeline
712
- 109. `get_pipeline_variables` - Get variables configured for a pipeline
713
- 110. `get_pipeline_test_report` - Get pipeline test report
714
- 111. `get_pipeline_test_report_summary` - Get pipeline test report summary
715
- 112. `delete_pipeline` - Delete a pipeline. Requires the project Owner role, cannot be undone, and does not automatically delete child pipelines.
716
- 113. `update_pipeline_metadata` - Update pipeline metadata
717
- 114. `list_deployments` - List deployments with filtering options
718
- 115. `get_deployment` - Get deployment details, including approval_summary, approvals, and pending_approval_count when GitLab provides them
719
- 116. `create_deployment` - Create a deployment
720
- 117. `update_deployment` - Update a deployment status
721
- 118. `delete_deployment` - Delete a deployment
722
- 119. `list_deployment_merge_requests` - List merge requests shipped with a deployment
723
- 120. `approve_deployment` - Approve or reject a protected-environment deployment
724
- 121. `list_environments` - List environments in a project
725
- 122. `get_environment` - Get details of a specific environment
726
- 123. `update_environment` - Update an environment
727
- 124. `delete_environment` - Delete a stopped environment
728
- 125. `stop_environment` - Stop an environment
729
- 126. `stop_stale_environments` - Stop eligible stale environments; protected environments are excluded and environments are stopped, not deleted
730
- 127. `delete_review_app_environments` - Schedule deletion of stopped review-app environments one week later; dry_run defaults to true and actual scheduling requires dry_run=false
731
- 128. `list_pipeline_triggers` - List project pipeline trigger tokens
732
- 129. `get_pipeline_trigger` - Get a project pipeline trigger
733
- 130. `create_pipeline_trigger` - Create a project pipeline trigger
734
- 131. `update_pipeline_trigger` - Update a project pipeline trigger
735
- 132. `delete_pipeline_trigger` - Delete a project pipeline trigger
736
- 133. `trigger_pipeline` - Trigger a pipeline with a pipeline trigger token
737
- 134. `list_pipeline_jobs` - List all jobs in a specific pipeline
738
- 135. `list_pipeline_trigger_jobs` - List trigger jobs (bridges) in a pipeline
739
- 136. `get_pipeline_job` - Get details of a GitLab pipeline job number
740
- 137. `get_pipeline_job_output` - Get the output/trace of a pipeline job with optional pagination
741
- 138. `validate_ci_lint` - Validate provided GitLab CI/CD YAML content for a project
742
- 139. `validate_project_ci_lint` - Validate an existing .gitlab-ci.yml configuration for a project
743
- 140. `list_ci_catalog_resources` - List GitLab CI/CD Catalog resources/components visible to the user
744
- 141. `get_ci_catalog_resource` - Get details for a GitLab CI/CD Catalog resource, including versions and components
745
- 142. `create_pipeline` - Create a new pipeline for a branch or tag
746
- 143. `retry_pipeline` - Retry a failed or canceled pipeline
747
- 144. `cancel_pipeline` - Cancel a running pipeline
748
- 145. `list_pipeline_schedules` - List pipeline schedules in a project, optionally filtered to active or inactive
749
- 146. `get_pipeline_schedule` - Get details of a specific pipeline schedule, including its variables and last pipeline
750
- 147. `list_pipeline_schedule_pipelines` - List the pipelines that a pipeline schedule has triggered
751
- 148. `create_pipeline_schedule` - Create a new pipeline schedule for a branch or tag
752
- 149. `update_pipeline_schedule` - Update an existing pipeline schedule
753
- 150. `delete_pipeline_schedule` - Delete a pipeline schedule
754
- 151. `play_pipeline_schedule` - Run a pipeline schedule immediately
755
- 152. `take_ownership_pipeline_schedule` - Take ownership of a pipeline schedule
756
- 153. `get_pipeline_schedule_variable` - Get a single variable of a pipeline schedule
757
- 154. `create_pipeline_schedule_variable` - Create a variable for a pipeline schedule
758
- 155. `update_pipeline_schedule_variable` - Update a variable of a pipeline schedule
759
- 156. `delete_pipeline_schedule_variable` - Delete a variable from a pipeline schedule
760
- 157. `play_pipeline_job` - Run a manual pipeline job
761
- 158. `play_pipeline_jobs` - Play multiple manual pipeline jobs sequentially
762
- 159. `retry_pipeline_job` - Retry a failed or canceled pipeline job
763
- 160. `cancel_pipeline_job` - Cancel a running pipeline job
764
- 161. `erase_pipeline_job` - Erase a pipeline job log and artifacts
765
- 162. `wait_for_pipeline` - Wait for a pipeline to reach a terminal status
766
- 163. `wait_for_job` - Wait for a job to reach a terminal status
767
- 164. `list_job_artifacts` - List artifact files in a job's archive
768
- 165. `download_job_artifacts` - Download job artifact archive (zip) and save to a local path
769
- 166. `get_job_artifact_file` - Get content of a single file from a job's artifacts
770
- 167. `list_merge_requests` - List merge requests (without project_id: user's MRs; with project_id: project MRs)
771
- 168. `list_group_merge_requests` - List merge requests across all projects of a group and its subgroups
772
- 169. `list_milestones` - List milestones with filtering options
773
- 170. `get_milestone` - Get details of a specific milestone
774
- 171. `create_milestone` - Create a new milestone
775
- 172. `edit_milestone` - Edit an existing milestone
776
- 173. `delete_milestone` - Delete a milestone
777
- 174. `get_milestone_issue` - Get issues associated with a specific milestone
778
- 175. `get_milestone_merge_requests` - Get merge requests associated with a specific milestone
779
- 176. `promote_milestone` - Promote a milestone to the next stage
780
- 177. `get_milestone_burndown_events` - Get burndown events for a specific milestone
781
- 178. `list_group_milestones` - List group milestones with filtering options
782
- 179. `get_group_milestone` - Get details of a specific group milestone
783
- 180. `create_group_milestone` - Create a new group milestone
784
- 181. `edit_group_milestone` - Edit an existing group milestone
785
- 182. `delete_group_milestone` - Delete a group milestone
786
- 183. `get_group_milestone_issue` - Get issues associated with a specific group milestone
787
- 184. `get_group_milestone_merge_requests` - Get merge requests associated with a specific group milestone
788
- 185. `get_group_milestone_burndown_events` - Get burndown events for a specific group milestone
789
- 186. `get_users` - Get GitLab user details by usernames
790
- 187. `get_user` - Get user details by ID
791
- 188. `whoami` - Get current authenticated user details
792
- 189. `list_commits` - List repository commits with filtering options
793
- 190. `get_commit` - Get details of a specific commit
794
- 191. `get_commit_diff` - Get changes/diffs of a specific commit
795
- 192. `get_file_blame` - Get git blame for a file at a given ref. Each entry maps a contiguous range of source lines to the commit that last changed them (id, author, authored_date, message). Use range_start/range_end to limit blame to specific lines.
796
- 193. `list_commit_statuses` - List statuses for a commit
797
- 194. `create_commit_status` - Create or update the status of a commit
798
- 195. `list_group_iterations` - List group iterations with filtering options
799
- 196. `upload_markdown` - Upload a file for use in markdown content
800
- 197. `download_attachment` - Download an uploaded file from a project (images returned as base64; use local_path to save to disk)
801
- 198. `health_check` - Verify server status and authentication. Always reports the MCP server version (mcp_server_version). When authenticated, also reports the GitLab instance version from GET /api/v4/version (version, revision, enterprise). Version lookup failures do not fail the health check — those fields are omitted.
802
- 199. `list_events` - List events for the authenticated user (before/after: YYYY-MM-DD)
803
- 200. `get_project_events` - List events for a project (before/after: YYYY-MM-DD)
804
- 201. `list_releases` - List all releases for a project
805
- 202. `get_release` - Get a release by tag name
806
- 203. `create_release` - Create a new release
807
- 204. `update_release` - Update an existing release
808
- 205. `delete_release` - Delete a release (does not delete the tag)
809
- 206. `create_release_evidence` - Create release evidence (Premium/Ultimate)
810
- 207. `download_release_asset` - Download a release asset file by direct asset path
811
- 208. `list_tags` - List repository tags for a project
812
- 209. `get_tag` - Get a repository tag by name
813
- 210. `create_tag` - Create a new repository tag
814
- 211. `delete_tag` - Delete a repository tag
815
- 212. `get_tag_signature` - Get the X.509 signature of a signed tag (404 if unsigned)
816
- 213. `get_work_item` - Get a work item with full details including status, hierarchy, type, and widgets
817
- 214. `list_work_items` - List work items with filters (type, state, search, assignees, labels)
818
- 215. `create_work_item` - Create a work item (issue, task, incident, epic, etc.) with full field support
819
- 216. `update_work_item` - Update a work item (title, description, labels, assignees, state, parent, custom fields, etc.)
820
- 217. `convert_work_item_type` - Convert a work item to a different type
821
- 218. `list_work_item_statuses` - List available statuses for a work item type (Premium/Ultimate)
822
- 219. `list_custom_field_definitions` - List custom field definitions for a work item type
823
- 220. `move_work_item` - Move a work item to a different project
824
- 221. `list_work_item_notes` - List notes and discussions on a work item
825
- 222. `create_work_item_note` - Add a note to a work item (supports Markdown, internal notes, threads)
826
- 223. `list_work_item_emoji_reactions` - List all emoji reactions on a work item
827
- 224. `list_work_item_note_emoji_reactions` - List all emoji reactions on a work item note (comment, thread, or thread reply)
828
- 225. `create_work_item_emoji_reaction` - Add an emoji reaction to a work item (e.g. thumbsup, rocket, eyes)
829
- 226. `delete_work_item_emoji_reaction` - Remove an emoji reaction from a work item
830
- 227. `create_work_item_note_emoji_reaction` - Add an emoji reaction to a work item note (comment, thread, or thread reply)
831
- 228. `delete_work_item_note_emoji_reaction` - Remove an emoji reaction from a work item note (comment, thread, or thread reply)
832
- 229. `get_timeline_events` - List timeline events for an incident
833
- 230. `create_timeline_event` - Create a timeline event on an incident
834
- 231. `list_webhooks` - List webhooks for a project or group
835
- 232. `create_webhook` - Create a webhook on a project or group
836
- 233. `update_webhook` - Update an existing project or group webhook
837
- 234. `delete_webhook` - Delete a project or group webhook
838
- 235. `list_webhook_events` - List recent webhook events (past 7 days)
839
- 236. `get_webhook_event` - Get full details of a specific webhook event
840
- 237. `search_code` - Search for code across all projects (requires advanced search or Zoekt)
841
- 238. `search_project_code` - Search for code within a specific project (requires advanced search or Zoekt)
842
- 239. `search_group_code` - Search for code within a specific group (requires advanced search or Zoekt)
843
- 240. `list_project_variables` - List CI/CD variables for a project
844
- 241. `get_project_variable` - Get a single CI/CD variable from a project
845
- 242. `create_project_variable` - Create a CI/CD variable for a project
846
- 243. `update_project_variable` - Update an existing CI/CD variable in a project
847
- 244. `delete_project_variable` - Delete a CI/CD variable from a project
848
- 245. `list_group_variables` - List CI/CD variables for a group
849
- 246. `get_group_variable` - Get a single CI/CD variable from a group
850
- 247. `create_group_variable` - Create a CI/CD variable for a group
851
- 248. `update_group_variable` - Update an existing CI/CD variable in a group
852
- 249. `delete_group_variable` - Delete a CI/CD variable from a group
853
- 250. `get_dependency_proxy_settings` - Get dependency proxy settings for a group
854
- 251. `update_dependency_proxy_settings` - Update dependency proxy settings for a group (enable/disable, credentials for authenticated Docker Hub pulls)
855
- 252. `list_dependency_proxy_blobs` - List cached dependency proxy blobs for a group
856
- 253. `purge_dependency_proxy_cache` - Schedule purge of all cached dependency proxy blobs for a group
857
- 254. `list_project_vulnerabilities` - List vulnerabilities for a project with optional state, severity, and report type filters (GraphQL-backed, cursor pagination)
858
- 255. `get_vulnerability` - Get full details of a specific vulnerability
859
- 256. `dismiss_vulnerability` - Dismiss a vulnerability with a reason (acceptable_risk, false_positive, used_in_tests, mitigating_control, not_applicable) and optional comment
860
- 257. `confirm_vulnerability` - Confirm a vulnerability as a real finding requiring remediation
861
- 258. `orbit_query` - Execute a GitLab Orbit graph query over the indexed SDLC knowledge graph
862
- 259. `orbit_get_schema` - Fetch the current GitLab Orbit graph schema (node and edge types)
863
- 260. `orbit_get_status` - Check GitLab Orbit indexing status for the enabled scope
864
- 261. `orbit_list_tools` - List the MCP tool definitions exposed by GitLab Orbit
865
- 262. `list_snippets` - List snippets — project snippets when project_id is given, otherwise personal snippets
866
- 263. `get_snippet` - Get a snippet's metadata. Set include_content=true to also fetch the raw file content.
867
- 264. `create_snippet` - Create a snippet — project-scoped when project_id is given, otherwise a personal snippet. Requires title plus either file_name + content (single file) or files[] (multi-file); the two shapes cannot be mixed.
868
- 265. `update_snippet` - Update an existing snippet (provide at least one field to change). For multi-file edits — renames, deletions, additions — pass files[] with action (create/update/delete/move) and previous_path. The file_name + content shortcut still works for single-file content replacement.
869
- 266. `delete_snippet` - Delete a snippet
870
- 267. `discover_tools` - Discover and activate additional tool categories for this session. Available categories: merge_requests, issues, repositories, branches, projects, labels, ci, groups, pipelines, milestones, wiki, releases, tags, snippets, users, workitems, webhooks, search, variables, dependency_proxy, vulnerabilities, orbit. Already-active categories are listed in the response.
646
+ 39. `get_merge_request_discussion` - Get a single discussion item for a merge request
647
+ 40. `delete_merge_request_discussion_note` - Delete a discussion note on a merge request
648
+ 41. `update_merge_request_discussion_note` - Update a discussion note on a merge request
649
+ 42. `create_merge_request_discussion_note` - Add a new discussion note to an existing merge request thread
650
+ 43. `create_merge_request_note` - Add a new note to a merge request
651
+ 44. `delete_merge_request_note` - Delete an existing merge request note
652
+ 45. `get_merge_request_note` - Get a specific note for a merge request
653
+ 46. `get_merge_request_notes` - List notes for a merge request
654
+ 47. `update_merge_request_note` - Modify an existing merge request note
655
+ 48. `get_draft_note` - Get a single draft note from a merge request
656
+ 49. `list_draft_notes` - List draft notes for a merge request
657
+ 50. `create_draft_note` - Create a draft note for a merge request
658
+ 51. `update_draft_note` - Update an existing draft note
659
+ 52. `delete_draft_note` - Delete a draft note
660
+ 53. `publish_draft_note` - Publish a single draft note
661
+ 54. `bulk_publish_draft_notes` - Publish all draft notes for a merge request. Optionally sets reviewer_state and posts a summary note (GitLab 19.2+). Can set reviewer_state even with no drafts.
662
+ 55. `list_merge_request_emoji_reactions` - List all emoji reactions on a merge request
663
+ 56. `list_merge_request_note_emoji_reactions` - List all emoji reactions on a merge request note. Pass discussion_id for discussion thread replies.
664
+ 57. `create_merge_request_emoji_reaction` - Add an emoji reaction to a merge request (e.g. thumbsup, rocket, eyes)
665
+ 58. `delete_merge_request_emoji_reaction` - Remove an emoji reaction from a merge request
666
+ 59. `create_merge_request_note_emoji_reaction` - Add an emoji reaction to a merge request note. Pass discussion_id for discussion thread replies.
667
+ 60. `delete_merge_request_note_emoji_reaction` - Remove an emoji reaction from a merge request note. Pass discussion_id for discussion thread replies.
668
+ 61. `update_issue_note` - Modify an existing issue thread note
669
+ 62. `create_issue_note` - Add a note to an issue, optionally replying to a discussion thread
670
+ 63. `list_issue_emoji_reactions` - List all emoji reactions on an issue
671
+ 64. `list_issue_note_emoji_reactions` - List all emoji reactions on an issue note. Pass discussion_id for discussion thread replies.
672
+ 65. `create_issue_emoji_reaction` - Add an emoji reaction to an issue (e.g. thumbsup, rocket, eyes)
673
+ 66. `delete_issue_emoji_reaction` - Remove an emoji reaction from an issue
674
+ 67. `create_issue_note_emoji_reaction` - Add an emoji reaction to an issue note. Pass discussion_id for discussion thread replies.
675
+ 68. `delete_issue_note_emoji_reaction` - Remove an emoji reaction from an issue note. Pass discussion_id for discussion thread replies.
676
+ 69. `list_issues` - List issues (default: created by current user; use scope='all' for all)
677
+ 70. `my_issues` - List issues assigned to the authenticated user
678
+ 71. `get_issue` - Get details of a specific issue. Returns a slim milestone by default; set full_response=true for the complete milestone object
679
+ 72. `update_issue` - Update an issue. Returns a slim confirmation by default; set full_response=true for the complete updated issue object
680
+ 73. `update_issue_description_patch` - Apply a patch (search/replace or unified diff) to an issue description. Reduces token usage by allowing small changes without sending the full description. Supports dry_run to preview changes and create_note to summarize updates.
681
+ 74. `delete_issue` - Delete an issue
682
+ 75. `list_todos` - List GitLab to-do items for the current user
683
+ 76. `mark_todo_done` - Mark a GitLab to-do item as done
684
+ 77. `mark_all_todos_done` - Mark all pending GitLab to-do items as done for the current user
685
+ 78. `list_issue_links` - List all issue links for a specific issue
686
+ 79. `list_issue_discussions` - List discussions for an issue
687
+ 80. `get_issue_link` - Get a specific issue link
688
+ 81. `create_issue_link` - Create an issue link between two issues
689
+ 82. `delete_issue_link` - Delete an issue link
690
+ 83. `list_namespaces` - List all namespaces (users and groups) available to the current user. Filter by kind='group' for groups only.
691
+ 84. `get_namespace` - Get details of a namespace (user or group) by ID or path. Groups are namespaces with kind='group'.
692
+ 85. `verify_namespace` - Verify if a namespace path exists. Use parent_id to scope the check to a specific parent namespace — required for nested namespaces where the same path may exist under different parents.
693
+ 86. `get_project` - Get details of a specific project
694
+ 87. `list_projects` - List projects accessible by the current user
695
+ 88. `update_project` - Update project settings such as description, visibility, default branch, and feature access levels
696
+ 89. `list_project_members` - List members of a GitLab project
697
+ 90. `list_group_members` - List members of a GitLab group with optional name or username search
698
+ 91. `list_labels` - List labels for a project
699
+ 92. `get_label` - Get a single label from a project
700
+ 93. `create_label` - Create a new label in a project
701
+ 94. `update_label` - Update an existing label in a project
702
+ 95. `delete_label` - Delete a label from a project
703
+ 96. `list_group_projects` - List projects in a group
704
+ 97. `list_wiki_pages` - List wiki pages in a project
705
+ 98. `get_wiki_page` - Get details of a specific wiki page
706
+ 99. `create_wiki_page` - Create a wiki page in a project
707
+ 100. `update_wiki_page` - Update a wiki page in a project
708
+ 101. `delete_wiki_page` - Delete a wiki page from a project
709
+ 102. `list_group_wiki_pages` - List wiki pages in a group
710
+ 103. `get_group_wiki_page` - Get details of a specific group wiki page
711
+ 104. `create_group_wiki_page` - Create a wiki page in a group
712
+ 105. `update_group_wiki_page` - Update a wiki page in a group
713
+ 106. `delete_group_wiki_page` - Delete a wiki page from a group
714
+ 107. `get_repository_tree` - List files and directories in a repository
715
+ 108. `list_pipelines` - List pipelines with filtering options
716
+ 109. `get_pipeline` - Get details of a specific pipeline
717
+ 110. `get_pipeline_variables` - Get variables configured for a pipeline
718
+ 111. `get_pipeline_test_report` - Get pipeline test report
719
+ 112. `get_pipeline_test_report_summary` - Get pipeline test report summary
720
+ 113. `delete_pipeline` - Delete a pipeline. Requires the project Owner role, cannot be undone, and does not automatically delete child pipelines.
721
+ 114. `update_pipeline_metadata` - Update pipeline metadata
722
+ 115. `list_deployments` - List deployments with filtering options
723
+ 116. `get_deployment` - Get deployment details, including approval_summary, approvals, and pending_approval_count when GitLab provides them
724
+ 117. `create_deployment` - Create a deployment
725
+ 118. `update_deployment` - Update a deployment status
726
+ 119. `delete_deployment` - Delete a deployment
727
+ 120. `list_deployment_merge_requests` - List merge requests shipped with a deployment
728
+ 121. `approve_deployment` - Approve or reject a protected-environment deployment
729
+ 122. `list_environments` - List environments in a project
730
+ 123. `get_environment` - Get details of a specific environment
731
+ 124. `update_environment` - Update an environment
732
+ 125. `delete_environment` - Delete a stopped environment
733
+ 126. `stop_environment` - Stop an environment
734
+ 127. `stop_stale_environments` - Stop eligible stale environments; protected environments are excluded and environments are stopped, not deleted
735
+ 128. `delete_review_app_environments` - Schedule deletion of stopped review-app environments one week later; dry_run defaults to true and actual scheduling requires dry_run=false
736
+ 129. `list_pipeline_triggers` - List project pipeline trigger tokens
737
+ 130. `get_pipeline_trigger` - Get a project pipeline trigger
738
+ 131. `create_pipeline_trigger` - Create a project pipeline trigger
739
+ 132. `update_pipeline_trigger` - Update a project pipeline trigger
740
+ 133. `delete_pipeline_trigger` - Delete a project pipeline trigger
741
+ 134. `trigger_pipeline` - Trigger a pipeline with a pipeline trigger token
742
+ 135. `list_pipeline_jobs` - List all jobs in a specific pipeline
743
+ 136. `list_pipeline_trigger_jobs` - List trigger jobs (bridges) in a pipeline
744
+ 137. `get_pipeline_job` - Get details of a GitLab pipeline job number
745
+ 138. `get_pipeline_job_output` - Get the output/trace of a pipeline job with optional pagination
746
+ 139. `validate_ci_lint` - Validate provided GitLab CI/CD YAML content for a project
747
+ 140. `validate_project_ci_lint` - Validate an existing .gitlab-ci.yml configuration for a project
748
+ 141. `list_ci_catalog_resources` - List GitLab CI/CD Catalog resources/components visible to the user
749
+ 142. `get_ci_catalog_resource` - Get details for a GitLab CI/CD Catalog resource, including versions and components
750
+ 143. `create_pipeline` - Create a new pipeline for a branch or tag
751
+ 144. `retry_pipeline` - Retry a failed or canceled pipeline
752
+ 145. `cancel_pipeline` - Cancel a running pipeline
753
+ 146. `list_pipeline_schedules` - List pipeline schedules in a project, optionally filtered to active or inactive
754
+ 147. `get_pipeline_schedule` - Get details of a specific pipeline schedule, including its variables and last pipeline
755
+ 148. `list_pipeline_schedule_pipelines` - List the pipelines that a pipeline schedule has triggered
756
+ 149. `create_pipeline_schedule` - Create a new pipeline schedule for a branch or tag
757
+ 150. `update_pipeline_schedule` - Update an existing pipeline schedule
758
+ 151. `delete_pipeline_schedule` - Delete a pipeline schedule
759
+ 152. `play_pipeline_schedule` - Run a pipeline schedule immediately
760
+ 153. `take_ownership_pipeline_schedule` - Take ownership of a pipeline schedule
761
+ 154. `get_pipeline_schedule_variable` - Get a single variable of a pipeline schedule
762
+ 155. `create_pipeline_schedule_variable` - Create a variable for a pipeline schedule
763
+ 156. `update_pipeline_schedule_variable` - Update a variable of a pipeline schedule
764
+ 157. `delete_pipeline_schedule_variable` - Delete a variable from a pipeline schedule
765
+ 158. `play_pipeline_job` - Run a manual pipeline job
766
+ 159. `play_pipeline_jobs` - Play multiple manual pipeline jobs sequentially
767
+ 160. `retry_pipeline_job` - Retry a failed or canceled pipeline job
768
+ 161. `cancel_pipeline_job` - Cancel a running pipeline job
769
+ 162. `erase_pipeline_job` - Erase a pipeline job log and artifacts
770
+ 163. `wait_for_pipeline` - Wait for a pipeline to reach a terminal status
771
+ 164. `wait_for_job` - Wait for a job to reach a terminal status
772
+ 165. `list_job_artifacts` - List artifact files in a job's archive
773
+ 166. `download_job_artifacts` - Download job artifact archive (zip) and save to a local path
774
+ 167. `get_job_artifact_file` - Get content of a single file from a job's artifacts
775
+ 168. `list_merge_requests` - List merge requests (without project_id: user's MRs; with project_id: project MRs)
776
+ 169. `list_group_merge_requests` - List merge requests across all projects of a group and its subgroups
777
+ 170. `list_milestones` - List milestones with filtering options
778
+ 171. `get_milestone` - Get details of a specific milestone
779
+ 172. `create_milestone` - Create a new milestone
780
+ 173. `edit_milestone` - Edit an existing milestone
781
+ 174. `delete_milestone` - Delete a milestone
782
+ 175. `get_milestone_issue` - Get issues associated with a specific milestone
783
+ 176. `get_milestone_merge_requests` - Get merge requests associated with a specific milestone
784
+ 177. `promote_milestone` - Promote a milestone to the next stage
785
+ 178. `get_milestone_burndown_events` - Get burndown events for a specific milestone
786
+ 179. `list_group_milestones` - List group milestones with filtering options
787
+ 180. `get_group_milestone` - Get details of a specific group milestone
788
+ 181. `create_group_milestone` - Create a new group milestone
789
+ 182. `edit_group_milestone` - Edit an existing group milestone
790
+ 183. `delete_group_milestone` - Delete a group milestone
791
+ 184. `get_group_milestone_issue` - Get issues associated with a specific group milestone
792
+ 185. `get_group_milestone_merge_requests` - Get merge requests associated with a specific group milestone
793
+ 186. `get_group_milestone_burndown_events` - Get burndown events for a specific group milestone
794
+ 187. `get_users` - Get GitLab user details by usernames
795
+ 188. `get_user` - Get user details by ID
796
+ 189. `whoami` - Get current authenticated user details
797
+ 190. `list_commits` - List repository commits with filtering options
798
+ 191. `get_commit` - Get details of a specific commit
799
+ 192. `get_commit_diff` - Get changes/diffs of a specific commit
800
+ 193. `get_file_blame` - Get git blame for a file at a given ref. Each entry maps a contiguous range of source lines to the commit that last changed them (id, author, authored_date, message). Use range_start/range_end to limit blame to specific lines.
801
+ 194. `list_commit_statuses` - List statuses for a commit
802
+ 195. `create_commit_status` - Create or update the status of a commit
803
+ 196. `list_group_iterations` - List group iterations with filtering options
804
+ 197. `upload_markdown` - Upload a file for use in markdown content
805
+ 198. `download_attachment` - Download an uploaded file from a project (images returned as base64; use local_path to save to disk)
806
+ 199. `health_check` - Verify server status and authentication. Always reports the MCP server version (mcp_server_version). When authenticated, also reports the GitLab instance version from GET /api/v4/version (version, revision, enterprise). Version lookup failures do not fail the health check — those fields are omitted.
807
+ 200. `list_events` - List events for the authenticated user (before/after: YYYY-MM-DD)
808
+ 201. `get_project_events` - List events for a project (before/after: YYYY-MM-DD)
809
+ 202. `list_releases` - List all releases for a project
810
+ 203. `get_release` - Get a release by tag name
811
+ 204. `create_release` - Create a new release
812
+ 205. `update_release` - Update an existing release
813
+ 206. `delete_release` - Delete a release (does not delete the tag)
814
+ 207. `create_release_evidence` - Create release evidence (Premium/Ultimate)
815
+ 208. `download_release_asset` - Download a release asset file by direct asset path
816
+ 209. `list_tags` - List repository tags for a project
817
+ 210. `get_tag` - Get a repository tag by name
818
+ 211. `create_tag` - Create a new repository tag
819
+ 212. `delete_tag` - Delete a repository tag
820
+ 213. `get_tag_signature` - Get the X.509 signature of a signed tag (404 if unsigned)
821
+ 214. `get_work_item` - Get a work item with full details including status, hierarchy, type, and widgets
822
+ 215. `list_work_items` - List work items with filters (type, state, search, assignees, labels)
823
+ 216. `create_work_item` - Create a work item (issue, task, incident, epic, etc.) with full field support
824
+ 217. `update_work_item` - Update a work item (title, description, labels, assignees, state, parent, custom fields, etc.)
825
+ 218. `convert_work_item_type` - Convert a work item to a different type
826
+ 219. `list_work_item_statuses` - List available statuses for a work item type (Premium/Ultimate)
827
+ 220. `list_custom_field_definitions` - List custom field definitions for a work item type
828
+ 221. `move_work_item` - Move a work item to a different project
829
+ 222. `list_work_item_notes` - List notes and discussions on a work item
830
+ 223. `create_work_item_note` - Add a note to a work item (supports Markdown, internal notes, threads)
831
+ 224. `list_work_item_emoji_reactions` - List all emoji reactions on a work item
832
+ 225. `list_work_item_note_emoji_reactions` - List all emoji reactions on a work item note (comment, thread, or thread reply)
833
+ 226. `create_work_item_emoji_reaction` - Add an emoji reaction to a work item (e.g. thumbsup, rocket, eyes)
834
+ 227. `delete_work_item_emoji_reaction` - Remove an emoji reaction from a work item
835
+ 228. `create_work_item_note_emoji_reaction` - Add an emoji reaction to a work item note (comment, thread, or thread reply)
836
+ 229. `delete_work_item_note_emoji_reaction` - Remove an emoji reaction from a work item note (comment, thread, or thread reply)
837
+ 230. `get_timeline_events` - List timeline events for an incident
838
+ 231. `create_timeline_event` - Create a timeline event on an incident
839
+ 232. `list_webhooks` - List webhooks for a project or group
840
+ 233. `create_webhook` - Create a webhook on a project or group
841
+ 234. `update_webhook` - Update an existing project or group webhook
842
+ 235. `delete_webhook` - Delete a project or group webhook
843
+ 236. `list_webhook_events` - List recent webhook events (past 7 days)
844
+ 237. `get_webhook_event` - Get full details of a specific webhook event
845
+ 238. `search_code` - Search for code across all projects (requires advanced search or Zoekt)
846
+ 239. `search_project_code` - Search for code within a specific project (requires advanced search or Zoekt)
847
+ 240. `search_group_code` - Search for code within a specific group (requires advanced search or Zoekt)
848
+ 241. `list_project_variables` - List CI/CD variables for a project
849
+ 242. `get_project_variable` - Get a single CI/CD variable from a project
850
+ 243. `create_project_variable` - Create a CI/CD variable for a project
851
+ 244. `update_project_variable` - Update an existing CI/CD variable in a project
852
+ 245. `delete_project_variable` - Delete a CI/CD variable from a project
853
+ 246. `list_group_variables` - List CI/CD variables for a group
854
+ 247. `get_group_variable` - Get a single CI/CD variable from a group
855
+ 248. `create_group_variable` - Create a CI/CD variable for a group
856
+ 249. `update_group_variable` - Update an existing CI/CD variable in a group
857
+ 250. `delete_group_variable` - Delete a CI/CD variable from a group
858
+ 251. `get_dependency_proxy_settings` - Get dependency proxy settings for a group
859
+ 252. `update_dependency_proxy_settings` - Update dependency proxy settings for a group (enable/disable, credentials for authenticated Docker Hub pulls)
860
+ 253. `list_dependency_proxy_blobs` - List cached dependency proxy blobs for a group
861
+ 254. `purge_dependency_proxy_cache` - Schedule purge of all cached dependency proxy blobs for a group
862
+ 255. `list_project_vulnerabilities` - List vulnerabilities for a project with optional state, severity, and report type filters (GraphQL-backed, cursor pagination)
863
+ 256. `get_vulnerability` - Get full details of a specific vulnerability
864
+ 257. `dismiss_vulnerability` - Dismiss a vulnerability with a reason (acceptable_risk, false_positive, used_in_tests, mitigating_control, not_applicable) and optional comment
865
+ 258. `confirm_vulnerability` - Confirm a vulnerability as a real finding requiring remediation
866
+ 259. `orbit_query` - Execute a GitLab Orbit graph query over the indexed SDLC knowledge graph
867
+ 260. `orbit_get_schema` - Fetch the current GitLab Orbit graph schema (node and edge types)
868
+ 261. `orbit_get_status` - Check GitLab Orbit indexing status for the enabled scope
869
+ 262. `orbit_list_tools` - List the MCP tool definitions exposed by GitLab Orbit
870
+ 263. `list_snippets` - List snippets — project snippets when project_id is given, otherwise personal snippets
871
+ 264. `get_snippet` - Get a snippet's metadata. Set include_content=true to also fetch the raw file content.
872
+ 265. `create_snippet` - Create a snippet — project-scoped when project_id is given, otherwise a personal snippet. Requires title plus either file_name + content (single file) or files[] (multi-file); the two shapes cannot be mixed.
873
+ 266. `update_snippet` - Update an existing snippet (provide at least one field to change). For multi-file edits — renames, deletions, additions — pass files[] with action (create/update/delete/move) and previous_path. The file_name + content shortcut still works for single-file content replacement.
874
+ 267. `delete_snippet` - Delete a snippet
875
+ 268. `discover_tools` - Discover and activate additional tool categories for this session. Available categories: merge_requests, issues, repositories, branches, projects, labels, ci, groups, pipelines, milestones, wiki, releases, tags, snippets, users, workitems, webhooks, search, variables, dependency_proxy, vulnerabilities, orbit. Already-active categories are listed in the response.
871
876
 
872
877
  <!-- TOOLS-END -->
873
878