@zereight/mcp-gitlab 2.1.69 → 2.2.0

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 (155) hide show
  1. package/README.ko.md +10 -4
  2. package/README.md +238 -233
  3. package/README.pt-BR.md +4 -4
  4. package/README.zh-CN.md +6 -4
  5. package/build/config.js +12 -4
  6. package/build/deprecated-env.js +47 -0
  7. package/build/index.js +456 -237
  8. package/build/oauth-device-flow.js +80 -0
  9. package/build/oauth.js +135 -18
  10. package/build/schemas.js +1 -1
  11. package/build/server/remote-http-stack.js +39 -0
  12. package/build/tools/discover-activation.js +38 -0
  13. package/build/tools/exposed-tools.js +35 -0
  14. package/build/tools/listed-tools.js +76 -0
  15. package/build/tools/registry.js +226 -57
  16. package/build/tools/tool-profile.js +66 -0
  17. package/build/utils/compact-tool-allowlist.js +14 -0
  18. package/build/utils/logger.js +34 -12
  19. package/build/utils/url.js +15 -0
  20. package/package.json +3 -3
  21. package/build/scripts/check-skill-sync.js +0 -143
  22. package/build/scripts/generate-server-card.js +0 -39
  23. package/build/scripts/generate-tool-coverage.js +0 -58
  24. package/build/scripts/generate-tool-docs.js +0 -430
  25. package/build/scripts/tool-coverage/coverage.js +0 -341
  26. package/build/scripts/tool-coverage/coverage.test.js +0 -142
  27. package/build/test/callback-proxy-tests.js +0 -321
  28. package/build/test/cli/args.test.js +0 -175
  29. package/build/test/cli/boolean-flags.test.js +0 -106
  30. package/build/test/cli/compact-mcp-result.test.js +0 -93
  31. package/build/test/cli/exposure.test.js +0 -104
  32. package/build/test/cli/load-config-snapshot.js +0 -5
  33. package/build/test/cli/output.test.js +0 -74
  34. package/build/test/cli/replay-command.test.js +0 -37
  35. package/build/test/cli/router.test.js +0 -183
  36. package/build/test/client-pool-test.js +0 -109
  37. package/build/test/clients/client.js +0 -34
  38. package/build/test/clients/custom-header-client.js +0 -122
  39. package/build/test/clients/sse-client.js +0 -95
  40. package/build/test/clients/stdio-client.js +0 -113
  41. package/build/test/clients/streamable-http-client.js +0 -95
  42. package/build/test/config-allowed-groups.test.js +0 -97
  43. package/build/test/create-commit-actions.test.js +0 -102
  44. package/build/test/draft-note-schema.test.js +0 -44
  45. package/build/test/dynamic-api-url-allowlist.test.js +0 -121
  46. package/build/test/dynamic-api-url-test.js +0 -304
  47. package/build/test/dynamic-routing-tests.js +0 -495
  48. package/build/test/get-merge-request-discussion-schema.test.js +0 -30
  49. package/build/test/gitlab-artifact-entry-schema.test.js +0 -44
  50. package/build/test/gitlab-diff-schema.test.js +0 -36
  51. package/build/test/gitlab-pipeline-schedule-schema.test.js +0 -32
  52. package/build/test/gitlab-tag-schema.test.js +0 -51
  53. package/build/test/group-milestone-schema.test.js +0 -45
  54. package/build/test/mcp-oauth-tests.js +0 -905
  55. package/build/test/mcp-server-name.test.js +0 -87
  56. package/build/test/merge-merge-request-schema.test.js +0 -75
  57. package/build/test/multi-server-test.js +0 -190
  58. package/build/test/no-proxy-integration-test.js +0 -183
  59. package/build/test/no-proxy-test.js +0 -149
  60. package/build/test/nullable-gitlab-response-fields.test.js +0 -37
  61. package/build/test/nullish-tool-arguments-schema.test.js +0 -118
  62. package/build/test/oauth-device-flow-tests.js +0 -450
  63. package/build/test/oauth-startup.test.js +0 -204
  64. package/build/test/oauth-tests.js +0 -428
  65. package/build/test/path-segment-encoding.test.js +0 -98
  66. package/build/test/remote-auth-simple-test.js +0 -277
  67. package/build/test/remote-auth-tests.js +0 -314
  68. package/build/test/response-masking.test.js +0 -445
  69. package/build/test/schema-tests.js +0 -1679
  70. package/build/test/server/metrics.test.js +0 -47
  71. package/build/test/server/request-helpers.test.js +0 -48
  72. package/build/test/server/version.test.js +0 -13
  73. package/build/test/sse-auth-guard.test.js +0 -96
  74. package/build/test/sse-session-limits.test.js +0 -273
  75. package/build/test/stateless/callback-proxy.test.js +0 -510
  76. package/build/test/stateless/client-id.test.js +0 -177
  77. package/build/test/stateless/codec.test.js +0 -328
  78. package/build/test/stateless/config-ttl.test.js +0 -149
  79. package/build/test/stateless/consumed-proxy-code-cache.test.js +0 -150
  80. package/build/test/stateless/session-id-integration.test.js +0 -675
  81. package/build/test/stateless/session-id.test.js +0 -157
  82. package/build/test/streamable-http-concurrent-session.test.js +0 -171
  83. package/build/test/streamable-http-dns-rebinding.test.js +0 -185
  84. package/build/test/streamable-http-sse-stream.test.js +0 -350
  85. package/build/test/streamable-http-static-token-auth.test.js +0 -157
  86. package/build/test/streamable-http-unauthenticated-discovery.test.js +0 -207
  87. package/build/test/test-all-transport-server.js +0 -255
  88. package/build/test/test-auth-retry.js +0 -195
  89. package/build/test/test-blank-filters.js +0 -156
  90. package/build/test/test-ci-catalog.js +0 -177
  91. package/build/test/test-ci-lint.js +0 -191
  92. package/build/test/test-ci-variables.js +0 -309
  93. package/build/test/test-create-repository.js +0 -120
  94. package/build/test/test-dependency-proxy.js +0 -195
  95. package/build/test/test-deployment-tools.js +0 -463
  96. package/build/test/test-download-attachment.js +0 -190
  97. package/build/test/test-dynamic-project-scope.js +0 -524
  98. package/build/test/test-empty-toolsets.js +0 -535
  99. package/build/test/test-get-file-blame.js +0 -145
  100. package/build/test/test-get-file-contents.js +0 -128
  101. package/build/test/test-geteffectiveprojectid.js +0 -812
  102. package/build/test/test-health-check.js +0 -115
  103. package/build/test/test-issue-description-patch.js +0 -256
  104. package/build/test/test-job-artifacts.js +0 -275
  105. package/build/test/test-json-schema.js +0 -166
  106. package/build/test/test-list-group-members.js +0 -150
  107. package/build/test/test-list-group-merge-requests.js +0 -165
  108. package/build/test/test-list-issues.js +0 -170
  109. package/build/test/test-list-merge-requests.js +0 -201
  110. package/build/test/test-list-milestones.js +0 -145
  111. package/build/test/test-list-project-members.js +0 -132
  112. package/build/test/test-merge-request-approval-state-tools.js +0 -213
  113. package/build/test/test-merge-request-approvals.js +0 -187
  114. package/build/test/test-merge-request-pipelines.js +0 -106
  115. package/build/test/test-mr-diffs-filter.js +0 -132
  116. package/build/test/test-mr-file-diffs.js +0 -251
  117. package/build/test/test-oauth-proxy-rate-limit.js +0 -133
  118. package/build/test/test-orbit.js +0 -155
  119. package/build/test/test-permission-mode.js +0 -424
  120. package/build/test/test-pipeline-schedules.js +0 -482
  121. package/build/test/test-protected-branches.js +0 -174
  122. package/build/test/test-remote-downloads.js +0 -510
  123. package/build/test/test-search-code.js +0 -275
  124. package/build/test/test-snippets.js +0 -735
  125. package/build/test/test-tags.js +0 -220
  126. package/build/test/test-todos.js +0 -195
  127. package/build/test/test-token-optimizations.js +0 -691
  128. package/build/test/test-toolset-filtering.js +0 -499
  129. package/build/test/test-update-issue-slim.js +0 -141
  130. package/build/test/test-update-project.js +0 -112
  131. package/build/test/test-upload-markdown.js +0 -206
  132. package/build/test/test-vulnerabilities.js +0 -399
  133. package/build/test/test-webhooks.js +0 -218
  134. package/build/test/tool-description-quality.test.js +0 -50
  135. package/build/test/utils/bulk-publish-options.test.js +0 -32
  136. package/build/test/utils/download-token.test.js +0 -35
  137. package/build/test/utils/forwarded-public-base-url.test.js +0 -46
  138. package/build/test/utils/gitlab-instance-version.test.js +0 -32
  139. package/build/test/utils/gitlab-version-gate.test.js +0 -74
  140. package/build/test/utils/graphql-query.test.js +0 -168
  141. package/build/test/utils/helpers-path.test.js +0 -104
  142. package/build/test/utils/jmespath-tool-result.test.js +0 -91
  143. package/build/test/utils/masking.test.js +0 -384
  144. package/build/test/utils/merge-request-position.test.js +0 -57
  145. package/build/test/utils/mock-gitlab-server.js +0 -614
  146. package/build/test/utils/proxy-client-ip.test.js +0 -28
  147. package/build/test/utils/redact-sensitive.test.js +0 -32
  148. package/build/test/utils/safe-redirect-fetch.test.js +0 -463
  149. package/build/test/utils/server-launcher.js +0 -231
  150. package/build/test/utils/tool-args.test.js +0 -210
  151. package/build/test/utils/url.test.js +0 -128
  152. package/build/test/utils/version-check.test.js +0 -239
  153. package/build/test/utils/wiki-title.test.js +0 -21
  154. package/build/test-note.js +0 -54
  155. package/build/test-resolve-issue-note.js +0 -127
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.68`. 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.70`. 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
 
@@ -140,6 +140,8 @@ Some MCP clients (like GitHub Copilot CLI) have issues with environment variable
140
140
  - `--api-url` - GitLab API URL (replaces `GITLAB_API_URL`)
141
141
  - `--read-only=true` - Enable read-only mode (replaces `GITLAB_READ_ONLY_MODE`, deprecated — prefer `--permission-mode=readonly`)
142
142
  - `--permission-mode` - Permission level: `readonly`, `modify` (no delete or teardown tools), or `full` (replaces `GITLAB_PERMISSION_MODE`, default `full`)
143
+ - `--toolsets=all` - Enable named toolsets (replaces `GITLAB_TOOLSETS`; unset uses the lean `core` default)
144
+ - `--tools=list_issues` - Add individual tools (replaces `GITLAB_TOOLS`)
143
145
  - `--use-wiki=true` - Enable wiki API (replaces `USE_GITLAB_WIKI`, legacy — prefer `GITLAB_TOOLSETS=wiki`)
144
146
  - `--use-milestone=true` - Enable milestone API (replaces `USE_MILESTONE`, legacy — prefer `GITLAB_TOOLSETS=milestones`)
145
147
  - `--use-pipeline=true` - Enable pipeline API (replaces `USE_PIPELINE`, legacy — prefer `GITLAB_TOOLSETS=pipelines`)
@@ -150,12 +152,14 @@ Some MCP clients (like GitHub Copilot CLI) have issues with environment variable
150
152
  - `--masking-workspace-dir` - Directory used to resolve masking files (replaces `GITLAB_MASKING_WORKSPACE_DIR`)
151
153
  - `--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
154
  - `--compact-result-chars` - Character threshold for compacting (replaces `GITLAB_MCP_COMPACT_RESULT_CHARS`; default `4000`)
155
+ - `--compact-tools` - Comma-separated tool names to compact when oversized, without turning global compact on (replaces `GITLAB_MCP_COMPACT_TOOLS`)
156
+ - `--tool-profile` - `full` (default) or `slim`. `slim` drops draft notes, emoji reactions, labels, CI catalog tools, and `create_group` from the initial list. Ignored when `GITLAB_TOOLSETS` is set (replaces `GITLAB_TOOL_PROFILE`)
153
157
 
154
158
  CLI arguments take precedence over environment variables.
155
159
 
156
160
  `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).
157
161
 
158
- The same binary is also a `gh`-style GitLab CLI (`tool <name>` or curated forms such as `mr list`). 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).
162
+ 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
163
 
160
164
  > **Fine-grained tool filtering:** use `GITLAB_PERMISSION_MODE=modify` to allow create/update while
161
165
  > blocking every delete tool and the destructive teardown tools (`cancel_pipeline`,
@@ -643,235 +647,236 @@ Register the skill directory in your AI client to get optimal tool usage guidanc
643
647
  36. `create_merge_request_thread` - Create a new thread on a merge request
644
648
  37. `resolve_merge_request_thread` - Resolve a thread on a merge request
645
649
  38. `mr_discussions` - List discussion items for a merge request
646
- 39. `delete_merge_request_discussion_note` - Delete a discussion note on a merge request
647
- 40. `update_merge_request_discussion_note` - Update a discussion note on a merge request
648
- 41. `create_merge_request_discussion_note` - Add a new discussion note to an existing merge request thread
649
- 42. `create_merge_request_note` - Add a new note to a merge request
650
- 43. `delete_merge_request_note` - Delete an existing merge request note
651
- 44. `get_merge_request_note` - Get a specific note for a merge request
652
- 45. `get_merge_request_notes` - List notes for a merge request
653
- 46. `update_merge_request_note` - Modify an existing merge request note
654
- 47. `get_draft_note` - Get a single draft note from a merge request
655
- 48. `list_draft_notes` - List draft notes for a merge request
656
- 49. `create_draft_note` - Create a draft note for a merge request
657
- 50. `update_draft_note` - Update an existing draft note
658
- 51. `delete_draft_note` - Delete a draft note
659
- 52. `publish_draft_note` - Publish a single draft note
660
- 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.
661
- 54. `list_merge_request_emoji_reactions` - List all emoji reactions on a merge request
662
- 55. `list_merge_request_note_emoji_reactions` - List all emoji reactions on a merge request note. Pass discussion_id for discussion thread replies.
663
- 56. `create_merge_request_emoji_reaction` - Add an emoji reaction to a merge request (e.g. thumbsup, rocket, eyes)
664
- 57. `delete_merge_request_emoji_reaction` - Remove an emoji reaction from a merge request
665
- 58. `create_merge_request_note_emoji_reaction` - Add an emoji reaction to a merge request note. Pass discussion_id for discussion thread replies.
666
- 59. `delete_merge_request_note_emoji_reaction` - Remove an emoji reaction from a merge request note. Pass discussion_id for discussion thread replies.
667
- 60. `update_issue_note` - Modify an existing issue thread note
668
- 61. `create_issue_note` - Add a note to an issue, optionally replying to a discussion thread
669
- 62. `list_issue_emoji_reactions` - List all emoji reactions on an issue
670
- 63. `list_issue_note_emoji_reactions` - List all emoji reactions on an issue note. Pass discussion_id for discussion thread replies.
671
- 64. `create_issue_emoji_reaction` - Add an emoji reaction to an issue (e.g. thumbsup, rocket, eyes)
672
- 65. `delete_issue_emoji_reaction` - Remove an emoji reaction from an issue
673
- 66. `create_issue_note_emoji_reaction` - Add an emoji reaction to an issue note. Pass discussion_id for discussion thread replies.
674
- 67. `delete_issue_note_emoji_reaction` - Remove an emoji reaction from an issue note. Pass discussion_id for discussion thread replies.
675
- 68. `list_issues` - List issues (default: created by current user; use scope='all' for all)
676
- 69. `my_issues` - List issues assigned to the authenticated user
677
- 70. `get_issue` - Get details of a specific issue. Returns a slim milestone by default; set full_response=true for the complete milestone object
678
- 71. `update_issue` - Update an issue. Returns a slim confirmation by default; set full_response=true for the complete updated issue object
679
- 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.
680
- 73. `delete_issue` - Delete an issue
681
- 74. `list_todos` - List GitLab to-do items for the current user
682
- 75. `mark_todo_done` - Mark a GitLab to-do item as done
683
- 76. `mark_all_todos_done` - Mark all pending GitLab to-do items as done for the current user
684
- 77. `list_issue_links` - List all issue links for a specific issue
685
- 78. `list_issue_discussions` - List discussions for an issue
686
- 79. `get_issue_link` - Get a specific issue link
687
- 80. `create_issue_link` - Create an issue link between two issues
688
- 81. `delete_issue_link` - Delete an issue link
689
- 82. `list_namespaces` - List all namespaces (users and groups) available to the current user. Filter by kind='group' for groups only.
690
- 83. `get_namespace` - Get details of a namespace (user or group) by ID or path. Groups are namespaces with kind='group'.
691
- 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.
692
- 85. `get_project` - Get details of a specific project
693
- 86. `list_projects` - List projects accessible by the current user
694
- 87. `update_project` - Update project settings such as description, visibility, default branch, and feature access levels
695
- 88. `list_project_members` - List members of a GitLab project
696
- 89. `list_group_members` - List members of a GitLab group with optional name or username search
697
- 90. `list_labels` - List labels for a project
698
- 91. `get_label` - Get a single label from a project
699
- 92. `create_label` - Create a new label in a project
700
- 93. `update_label` - Update an existing label in a project
701
- 94. `delete_label` - Delete a label from a project
702
- 95. `list_group_projects` - List projects in a group
703
- 96. `list_wiki_pages` - List wiki pages in a project
704
- 97. `get_wiki_page` - Get details of a specific wiki page
705
- 98. `create_wiki_page` - Create a wiki page in a project
706
- 99. `update_wiki_page` - Update a wiki page in a project
707
- 100. `delete_wiki_page` - Delete a wiki page from a project
708
- 101. `list_group_wiki_pages` - List wiki pages in a group
709
- 102. `get_group_wiki_page` - Get details of a specific group wiki page
710
- 103. `create_group_wiki_page` - Create a wiki page in a group
711
- 104. `update_group_wiki_page` - Update a wiki page in a group
712
- 105. `delete_group_wiki_page` - Delete a wiki page from a group
713
- 106. `get_repository_tree` - List files and directories in a repository
714
- 107. `list_pipelines` - List pipelines with filtering options
715
- 108. `get_pipeline` - Get details of a specific pipeline
716
- 109. `get_pipeline_variables` - Get variables configured for a pipeline
717
- 110. `get_pipeline_test_report` - Get pipeline test report
718
- 111. `get_pipeline_test_report_summary` - Get pipeline test report summary
719
- 112. `delete_pipeline` - Delete a pipeline. Requires the project Owner role, cannot be undone, and does not automatically delete child pipelines.
720
- 113. `update_pipeline_metadata` - Update pipeline metadata
721
- 114. `list_deployments` - List deployments with filtering options
722
- 115. `get_deployment` - Get deployment details, including approval_summary, approvals, and pending_approval_count when GitLab provides them
723
- 116. `create_deployment` - Create a deployment
724
- 117. `update_deployment` - Update a deployment status
725
- 118. `delete_deployment` - Delete a deployment
726
- 119. `list_deployment_merge_requests` - List merge requests shipped with a deployment
727
- 120. `approve_deployment` - Approve or reject a protected-environment deployment
728
- 121. `list_environments` - List environments in a project
729
- 122. `get_environment` - Get details of a specific environment
730
- 123. `update_environment` - Update an environment
731
- 124. `delete_environment` - Delete a stopped environment
732
- 125. `stop_environment` - Stop an environment
733
- 126. `stop_stale_environments` - Stop eligible stale environments; protected environments are excluded and environments are stopped, not deleted
734
- 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
735
- 128. `list_pipeline_triggers` - List project pipeline trigger tokens
736
- 129. `get_pipeline_trigger` - Get a project pipeline trigger
737
- 130. `create_pipeline_trigger` - Create a project pipeline trigger
738
- 131. `update_pipeline_trigger` - Update a project pipeline trigger
739
- 132. `delete_pipeline_trigger` - Delete a project pipeline trigger
740
- 133. `trigger_pipeline` - Trigger a pipeline with a pipeline trigger token
741
- 134. `list_pipeline_jobs` - List all jobs in a specific pipeline
742
- 135. `list_pipeline_trigger_jobs` - List trigger jobs (bridges) in a pipeline
743
- 136. `get_pipeline_job` - Get details of a GitLab pipeline job number
744
- 137. `get_pipeline_job_output` - Get the output/trace of a pipeline job with optional pagination
745
- 138. `validate_ci_lint` - Validate provided GitLab CI/CD YAML content for a project
746
- 139. `validate_project_ci_lint` - Validate an existing .gitlab-ci.yml configuration for a project
747
- 140. `list_ci_catalog_resources` - List GitLab CI/CD Catalog resources/components visible to the user
748
- 141. `get_ci_catalog_resource` - Get details for a GitLab CI/CD Catalog resource, including versions and components
749
- 142. `create_pipeline` - Create a new pipeline for a branch or tag
750
- 143. `retry_pipeline` - Retry a failed or canceled pipeline
751
- 144. `cancel_pipeline` - Cancel a running pipeline
752
- 145. `list_pipeline_schedules` - List pipeline schedules in a project, optionally filtered to active or inactive
753
- 146. `get_pipeline_schedule` - Get details of a specific pipeline schedule, including its variables and last pipeline
754
- 147. `list_pipeline_schedule_pipelines` - List the pipelines that a pipeline schedule has triggered
755
- 148. `create_pipeline_schedule` - Create a new pipeline schedule for a branch or tag
756
- 149. `update_pipeline_schedule` - Update an existing pipeline schedule
757
- 150. `delete_pipeline_schedule` - Delete a pipeline schedule
758
- 151. `play_pipeline_schedule` - Run a pipeline schedule immediately
759
- 152. `take_ownership_pipeline_schedule` - Take ownership of a pipeline schedule
760
- 153. `get_pipeline_schedule_variable` - Get a single variable of a pipeline schedule
761
- 154. `create_pipeline_schedule_variable` - Create a variable for a pipeline schedule
762
- 155. `update_pipeline_schedule_variable` - Update a variable of a pipeline schedule
763
- 156. `delete_pipeline_schedule_variable` - Delete a variable from a pipeline schedule
764
- 157. `play_pipeline_job` - Run a manual pipeline job
765
- 158. `play_pipeline_jobs` - Play multiple manual pipeline jobs sequentially
766
- 159. `retry_pipeline_job` - Retry a failed or canceled pipeline job
767
- 160. `cancel_pipeline_job` - Cancel a running pipeline job
768
- 161. `erase_pipeline_job` - Erase a pipeline job log and artifacts
769
- 162. `wait_for_pipeline` - Wait for a pipeline to reach a terminal status
770
- 163. `wait_for_job` - Wait for a job to reach a terminal status
771
- 164. `list_job_artifacts` - List artifact files in a job's archive
772
- 165. `download_job_artifacts` - Download job artifact archive (zip) and save to a local path
773
- 166. `get_job_artifact_file` - Get content of a single file from a job's artifacts
774
- 167. `list_merge_requests` - List merge requests (without project_id: user's MRs; with project_id: project MRs)
775
- 168. `list_group_merge_requests` - List merge requests across all projects of a group and its subgroups
776
- 169. `list_milestones` - List milestones with filtering options
777
- 170. `get_milestone` - Get details of a specific milestone
778
- 171. `create_milestone` - Create a new milestone
779
- 172. `edit_milestone` - Edit an existing milestone
780
- 173. `delete_milestone` - Delete a milestone
781
- 174. `get_milestone_issue` - Get issues associated with a specific milestone
782
- 175. `get_milestone_merge_requests` - Get merge requests associated with a specific milestone
783
- 176. `promote_milestone` - Promote a milestone to the next stage
784
- 177. `get_milestone_burndown_events` - Get burndown events for a specific milestone
785
- 178. `list_group_milestones` - List group milestones with filtering options
786
- 179. `get_group_milestone` - Get details of a specific group milestone
787
- 180. `create_group_milestone` - Create a new group milestone
788
- 181. `edit_group_milestone` - Edit an existing group milestone
789
- 182. `delete_group_milestone` - Delete a group milestone
790
- 183. `get_group_milestone_issue` - Get issues associated with a specific group milestone
791
- 184. `get_group_milestone_merge_requests` - Get merge requests associated with a specific group milestone
792
- 185. `get_group_milestone_burndown_events` - Get burndown events for a specific group milestone
793
- 186. `get_users` - Get GitLab user details by usernames
794
- 187. `get_user` - Get user details by ID
795
- 188. `whoami` - Get current authenticated user details
796
- 189. `list_commits` - List repository commits with filtering options
797
- 190. `get_commit` - Get details of a specific commit
798
- 191. `get_commit_diff` - Get changes/diffs of a specific commit
799
- 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.
800
- 193. `list_commit_statuses` - List statuses for a commit
801
- 194. `create_commit_status` - Create or update the status of a commit
802
- 195. `list_group_iterations` - List group iterations with filtering options
803
- 196. `upload_markdown` - Upload a file for use in markdown content
804
- 197. `download_attachment` - Download an uploaded file from a project (images returned as base64; use local_path to save to disk)
805
- 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.
806
- 199. `list_events` - List events for the authenticated user (before/after: YYYY-MM-DD)
807
- 200. `get_project_events` - List events for a project (before/after: YYYY-MM-DD)
808
- 201. `list_releases` - List all releases for a project
809
- 202. `get_release` - Get a release by tag name
810
- 203. `create_release` - Create a new release
811
- 204. `update_release` - Update an existing release
812
- 205. `delete_release` - Delete a release (does not delete the tag)
813
- 206. `create_release_evidence` - Create release evidence (Premium/Ultimate)
814
- 207. `download_release_asset` - Download a release asset file by direct asset path
815
- 208. `list_tags` - List repository tags for a project
816
- 209. `get_tag` - Get a repository tag by name
817
- 210. `create_tag` - Create a new repository tag
818
- 211. `delete_tag` - Delete a repository tag
819
- 212. `get_tag_signature` - Get the X.509 signature of a signed tag (404 if unsigned)
820
- 213. `get_work_item` - Get a work item with full details including status, hierarchy, type, and widgets
821
- 214. `list_work_items` - List work items with filters (type, state, search, assignees, labels)
822
- 215. `create_work_item` - Create a work item (issue, task, incident, epic, etc.) with full field support
823
- 216. `update_work_item` - Update a work item (title, description, labels, assignees, state, parent, custom fields, etc.)
824
- 217. `convert_work_item_type` - Convert a work item to a different type
825
- 218. `list_work_item_statuses` - List available statuses for a work item type (Premium/Ultimate)
826
- 219. `list_custom_field_definitions` - List custom field definitions for a work item type
827
- 220. `move_work_item` - Move a work item to a different project
828
- 221. `list_work_item_notes` - List notes and discussions on a work item
829
- 222. `create_work_item_note` - Add a note to a work item (supports Markdown, internal notes, threads)
830
- 223. `list_work_item_emoji_reactions` - List all emoji reactions on a work item
831
- 224. `list_work_item_note_emoji_reactions` - List all emoji reactions on a work item note (comment, thread, or thread reply)
832
- 225. `create_work_item_emoji_reaction` - Add an emoji reaction to a work item (e.g. thumbsup, rocket, eyes)
833
- 226. `delete_work_item_emoji_reaction` - Remove an emoji reaction from a work item
834
- 227. `create_work_item_note_emoji_reaction` - Add an emoji reaction to a work item note (comment, thread, or thread reply)
835
- 228. `delete_work_item_note_emoji_reaction` - Remove an emoji reaction from a work item note (comment, thread, or thread reply)
836
- 229. `get_timeline_events` - List timeline events for an incident
837
- 230. `create_timeline_event` - Create a timeline event on an incident
838
- 231. `list_webhooks` - List webhooks for a project or group
839
- 232. `create_webhook` - Create a webhook on a project or group
840
- 233. `update_webhook` - Update an existing project or group webhook
841
- 234. `delete_webhook` - Delete a project or group webhook
842
- 235. `list_webhook_events` - List recent webhook events (past 7 days)
843
- 236. `get_webhook_event` - Get full details of a specific webhook event
844
- 237. `search_code` - Search for code across all projects (requires advanced search or Zoekt)
845
- 238. `search_project_code` - Search for code within a specific project (requires advanced search or Zoekt)
846
- 239. `search_group_code` - Search for code within a specific group (requires advanced search or Zoekt)
847
- 240. `list_project_variables` - List CI/CD variables for a project
848
- 241. `get_project_variable` - Get a single CI/CD variable from a project
849
- 242. `create_project_variable` - Create a CI/CD variable for a project
850
- 243. `update_project_variable` - Update an existing CI/CD variable in a project
851
- 244. `delete_project_variable` - Delete a CI/CD variable from a project
852
- 245. `list_group_variables` - List CI/CD variables for a group
853
- 246. `get_group_variable` - Get a single CI/CD variable from a group
854
- 247. `create_group_variable` - Create a CI/CD variable for a group
855
- 248. `update_group_variable` - Update an existing CI/CD variable in a group
856
- 249. `delete_group_variable` - Delete a CI/CD variable from a group
857
- 250. `get_dependency_proxy_settings` - Get dependency proxy settings for a group
858
- 251. `update_dependency_proxy_settings` - Update dependency proxy settings for a group (enable/disable, credentials for authenticated Docker Hub pulls)
859
- 252. `list_dependency_proxy_blobs` - List cached dependency proxy blobs for a group
860
- 253. `purge_dependency_proxy_cache` - Schedule purge of all cached dependency proxy blobs for a group
861
- 254. `list_project_vulnerabilities` - List vulnerabilities for a project with optional state, severity, and report type filters (GraphQL-backed, cursor pagination)
862
- 255. `get_vulnerability` - Get full details of a specific vulnerability
863
- 256. `dismiss_vulnerability` - Dismiss a vulnerability with a reason (acceptable_risk, false_positive, used_in_tests, mitigating_control, not_applicable) and optional comment
864
- 257. `confirm_vulnerability` - Confirm a vulnerability as a real finding requiring remediation
865
- 258. `orbit_query` - Execute a GitLab Orbit graph query over the indexed SDLC knowledge graph
866
- 259. `orbit_get_schema` - Fetch the current GitLab Orbit graph schema (node and edge types)
867
- 260. `orbit_get_status` - Check GitLab Orbit indexing status for the enabled scope
868
- 261. `orbit_list_tools` - List the MCP tool definitions exposed by GitLab Orbit
869
- 262. `list_snippets` - List snippets — project snippets when project_id is given, otherwise personal snippets
870
- 263. `get_snippet` - Get a snippet's metadata. Set include_content=true to also fetch the raw file content.
871
- 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.
872
- 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.
873
- 266. `delete_snippet` - Delete a snippet
874
- 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.
650
+ 39. `get_merge_request_discussion` - Get a single discussion item for a merge request
651
+ 40. `delete_merge_request_discussion_note` - Delete a discussion note on a merge request
652
+ 41. `update_merge_request_discussion_note` - Update a discussion note on a merge request
653
+ 42. `create_merge_request_discussion_note` - Add a new discussion note to an existing merge request thread
654
+ 43. `create_merge_request_note` - Add a new note to a merge request
655
+ 44. `delete_merge_request_note` - Delete an existing merge request note
656
+ 45. `get_merge_request_note` - Get a specific note for a merge request
657
+ 46. `get_merge_request_notes` - List notes for a merge request
658
+ 47. `update_merge_request_note` - Modify an existing merge request note
659
+ 48. `get_draft_note` - Get a single draft note from a merge request
660
+ 49. `list_draft_notes` - List draft notes for a merge request
661
+ 50. `create_draft_note` - Create a draft note for a merge request
662
+ 51. `update_draft_note` - Update an existing draft note
663
+ 52. `delete_draft_note` - Delete a draft note
664
+ 53. `publish_draft_note` - Publish a single draft note
665
+ 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.
666
+ 55. `list_merge_request_emoji_reactions` - List all emoji reactions on a merge request
667
+ 56. `list_merge_request_note_emoji_reactions` - List all emoji reactions on a merge request note. Pass discussion_id for discussion thread replies.
668
+ 57. `create_merge_request_emoji_reaction` - Add an emoji reaction to a merge request (e.g. thumbsup, rocket, eyes)
669
+ 58. `delete_merge_request_emoji_reaction` - Remove an emoji reaction from a merge request
670
+ 59. `create_merge_request_note_emoji_reaction` - Add an emoji reaction to a merge request note. Pass discussion_id for discussion thread replies.
671
+ 60. `delete_merge_request_note_emoji_reaction` - Remove an emoji reaction from a merge request note. Pass discussion_id for discussion thread replies.
672
+ 61. `update_issue_note` - Modify an existing issue thread note
673
+ 62. `create_issue_note` - Add a note to an issue, optionally replying to a discussion thread
674
+ 63. `list_issue_emoji_reactions` - List all emoji reactions on an issue
675
+ 64. `list_issue_note_emoji_reactions` - List all emoji reactions on an issue note. Pass discussion_id for discussion thread replies.
676
+ 65. `create_issue_emoji_reaction` - Add an emoji reaction to an issue (e.g. thumbsup, rocket, eyes)
677
+ 66. `delete_issue_emoji_reaction` - Remove an emoji reaction from an issue
678
+ 67. `create_issue_note_emoji_reaction` - Add an emoji reaction to an issue note. Pass discussion_id for discussion thread replies.
679
+ 68. `delete_issue_note_emoji_reaction` - Remove an emoji reaction from an issue note. Pass discussion_id for discussion thread replies.
680
+ 69. `list_issues` - List issues (default: created by current user; use scope='all' for all)
681
+ 70. `my_issues` - List issues assigned to the authenticated user
682
+ 71. `get_issue` - Get details of a specific issue. Returns the issue with a slim nested milestone by default; set full_response=true for the complete milestone object
683
+ 72. `update_issue` - Update an issue. Returns a slim confirmation by default; set full_response=true for the complete updated issue object
684
+ 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.
685
+ 74. `delete_issue` - Delete an issue
686
+ 75. `list_todos` - List GitLab to-do items for the current user
687
+ 76. `mark_todo_done` - Mark a GitLab to-do item as done
688
+ 77. `mark_all_todos_done` - Mark all pending GitLab to-do items as done for the current user
689
+ 78. `list_issue_links` - List all issue links for a specific issue
690
+ 79. `list_issue_discussions` - List discussions for an issue
691
+ 80. `get_issue_link` - Get a specific issue link
692
+ 81. `create_issue_link` - Create an issue link between two issues
693
+ 82. `delete_issue_link` - Delete an issue link
694
+ 83. `list_namespaces` - List all namespaces (users and groups) available to the current user. Filter by kind='group' for groups only.
695
+ 84. `get_namespace` - Get details of a namespace (user or group) by ID or path. Groups are namespaces with kind='group'.
696
+ 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.
697
+ 86. `get_project` - Get details of a specific project
698
+ 87. `list_projects` - List projects accessible by the current user
699
+ 88. `update_project` - Update project settings such as description, visibility, default branch, and feature access levels
700
+ 89. `list_project_members` - List members of a GitLab project
701
+ 90. `list_group_members` - List members of a GitLab group with optional name or username search
702
+ 91. `list_labels` - List labels for a project
703
+ 92. `get_label` - Get a single label from a project
704
+ 93. `create_label` - Create a new label in a project
705
+ 94. `update_label` - Update an existing label in a project
706
+ 95. `delete_label` - Delete a label from a project
707
+ 96. `list_group_projects` - List projects in a group
708
+ 97. `list_wiki_pages` - List wiki pages in a project
709
+ 98. `get_wiki_page` - Get details of a specific wiki page
710
+ 99. `create_wiki_page` - Create a wiki page in a project
711
+ 100. `update_wiki_page` - Update a wiki page in a project
712
+ 101. `delete_wiki_page` - Delete a wiki page from a project
713
+ 102. `list_group_wiki_pages` - List wiki pages in a group
714
+ 103. `get_group_wiki_page` - Get details of a specific group wiki page
715
+ 104. `create_group_wiki_page` - Create a wiki page in a group
716
+ 105. `update_group_wiki_page` - Update a wiki page in a group
717
+ 106. `delete_group_wiki_page` - Delete a wiki page from a group
718
+ 107. `get_repository_tree` - List files and directories in a repository
719
+ 108. `list_pipelines` - List pipelines with filtering options
720
+ 109. `get_pipeline` - Get details of a specific pipeline
721
+ 110. `get_pipeline_variables` - Get variables configured for a pipeline
722
+ 111. `get_pipeline_test_report` - Get pipeline test report
723
+ 112. `get_pipeline_test_report_summary` - Get pipeline test report summary
724
+ 113. `delete_pipeline` - Delete a pipeline. Requires the project Owner role, cannot be undone, and does not automatically delete child pipelines.
725
+ 114. `update_pipeline_metadata` - Update pipeline metadata
726
+ 115. `list_deployments` - List deployments with filtering options
727
+ 116. `get_deployment` - Get deployment details, including approval_summary, approvals, and pending_approval_count when GitLab provides them
728
+ 117. `create_deployment` - Create a deployment
729
+ 118. `update_deployment` - Update a deployment status
730
+ 119. `delete_deployment` - Delete a deployment
731
+ 120. `list_deployment_merge_requests` - List merge requests shipped with a deployment
732
+ 121. `approve_deployment` - Approve or reject a protected-environment deployment
733
+ 122. `list_environments` - List environments in a project
734
+ 123. `get_environment` - Get details of a specific environment
735
+ 124. `update_environment` - Update an environment
736
+ 125. `delete_environment` - Delete a stopped environment
737
+ 126. `stop_environment` - Stop an environment
738
+ 127. `stop_stale_environments` - Stop eligible stale environments; protected environments are excluded and environments are stopped, not deleted
739
+ 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
740
+ 129. `list_pipeline_triggers` - List project pipeline trigger tokens
741
+ 130. `get_pipeline_trigger` - Get a project pipeline trigger
742
+ 131. `create_pipeline_trigger` - Create a project pipeline trigger
743
+ 132. `update_pipeline_trigger` - Update a project pipeline trigger
744
+ 133. `delete_pipeline_trigger` - Delete a project pipeline trigger
745
+ 134. `trigger_pipeline` - Trigger a pipeline with a pipeline trigger token
746
+ 135. `list_pipeline_jobs` - List all jobs in a specific pipeline
747
+ 136. `list_pipeline_trigger_jobs` - List trigger jobs (bridges) in a pipeline
748
+ 137. `get_pipeline_job` - Get details of a GitLab pipeline job number
749
+ 138. `get_pipeline_job_output` - Get the output/trace of a pipeline job with optional pagination
750
+ 139. `validate_ci_lint` - Validate provided GitLab CI/CD YAML content for a project
751
+ 140. `validate_project_ci_lint` - Validate an existing .gitlab-ci.yml configuration for a project
752
+ 141. `list_ci_catalog_resources` - List GitLab CI/CD Catalog resources/components visible to the user
753
+ 142. `get_ci_catalog_resource` - Get details for a GitLab CI/CD Catalog resource, including versions and components
754
+ 143. `create_pipeline` - Create a new pipeline for a branch or tag
755
+ 144. `retry_pipeline` - Retry a failed or canceled pipeline
756
+ 145. `cancel_pipeline` - Cancel a running pipeline
757
+ 146. `list_pipeline_schedules` - List pipeline schedules in a project, optionally filtered to active or inactive
758
+ 147. `get_pipeline_schedule` - Get details of a specific pipeline schedule, including its variables and last pipeline
759
+ 148. `list_pipeline_schedule_pipelines` - List the pipelines that a pipeline schedule has triggered
760
+ 149. `create_pipeline_schedule` - Create a new pipeline schedule for a branch or tag
761
+ 150. `update_pipeline_schedule` - Update an existing pipeline schedule
762
+ 151. `delete_pipeline_schedule` - Delete a pipeline schedule
763
+ 152. `play_pipeline_schedule` - Run a pipeline schedule immediately
764
+ 153. `take_ownership_pipeline_schedule` - Take ownership of a pipeline schedule
765
+ 154. `get_pipeline_schedule_variable` - Get a single variable of a pipeline schedule
766
+ 155. `create_pipeline_schedule_variable` - Create a variable for a pipeline schedule
767
+ 156. `update_pipeline_schedule_variable` - Update a variable of a pipeline schedule
768
+ 157. `delete_pipeline_schedule_variable` - Delete a variable from a pipeline schedule
769
+ 158. `play_pipeline_job` - Run a manual pipeline job
770
+ 159. `play_pipeline_jobs` - Play multiple manual pipeline jobs sequentially
771
+ 160. `retry_pipeline_job` - Retry a failed or canceled pipeline job
772
+ 161. `cancel_pipeline_job` - Cancel a running pipeline job
773
+ 162. `erase_pipeline_job` - Erase a pipeline job log and artifacts
774
+ 163. `wait_for_pipeline` - Wait for a pipeline to reach a terminal status
775
+ 164. `wait_for_job` - Wait for a job to reach a terminal status
776
+ 165. `list_job_artifacts` - List artifact files in a job's archive
777
+ 166. `download_job_artifacts` - Download job artifact archive (zip) and save to a local path
778
+ 167. `get_job_artifact_file` - Get content of a single file from a job's artifacts
779
+ 168. `list_merge_requests` - List merge requests (without project_id: user's MRs; with project_id: project MRs)
780
+ 169. `list_group_merge_requests` - List merge requests across all projects of a group and its subgroups
781
+ 170. `list_milestones` - List milestones with filtering options
782
+ 171. `get_milestone` - Get details of a specific milestone
783
+ 172. `create_milestone` - Create a new milestone
784
+ 173. `edit_milestone` - Edit an existing milestone
785
+ 174. `delete_milestone` - Delete a milestone
786
+ 175. `get_milestone_issue` - Get issues associated with a specific milestone
787
+ 176. `get_milestone_merge_requests` - Get merge requests associated with a specific milestone
788
+ 177. `promote_milestone` - Promote a milestone to the next stage
789
+ 178. `get_milestone_burndown_events` - Get burndown events for a specific milestone
790
+ 179. `list_group_milestones` - List group milestones with filtering options
791
+ 180. `get_group_milestone` - Get details of a specific group milestone
792
+ 181. `create_group_milestone` - Create a new group milestone
793
+ 182. `edit_group_milestone` - Edit an existing group milestone
794
+ 183. `delete_group_milestone` - Delete a group milestone
795
+ 184. `get_group_milestone_issue` - Get issues associated with a specific group milestone
796
+ 185. `get_group_milestone_merge_requests` - Get merge requests associated with a specific group milestone
797
+ 186. `get_group_milestone_burndown_events` - Get burndown events for a specific group milestone
798
+ 187. `get_users` - Get GitLab user details by usernames
799
+ 188. `get_user` - Get user details by ID
800
+ 189. `whoami` - Get current authenticated user details
801
+ 190. `list_commits` - List repository commits with filtering options
802
+ 191. `get_commit` - Get details of a specific commit
803
+ 192. `get_commit_diff` - Get changes/diffs of a specific commit
804
+ 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.
805
+ 194. `list_commit_statuses` - List statuses for a commit
806
+ 195. `create_commit_status` - Create or update the status of a commit
807
+ 196. `list_group_iterations` - List group iterations with filtering options
808
+ 197. `upload_markdown` - Upload a file for use in markdown content
809
+ 198. `download_attachment` - Download an uploaded file from a project (images returned as base64; use local_path to save to disk)
810
+ 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.
811
+ 200. `list_events` - List events for the authenticated user (before/after: YYYY-MM-DD)
812
+ 201. `get_project_events` - List events for a project (before/after: YYYY-MM-DD)
813
+ 202. `list_releases` - List all releases for a project
814
+ 203. `get_release` - Get a release by tag name
815
+ 204. `create_release` - Create a new release
816
+ 205. `update_release` - Update an existing release
817
+ 206. `delete_release` - Delete a release (does not delete the tag)
818
+ 207. `create_release_evidence` - Create release evidence (Premium/Ultimate)
819
+ 208. `download_release_asset` - Download a release asset file by direct asset path
820
+ 209. `list_tags` - List repository tags for a project
821
+ 210. `get_tag` - Get a repository tag by name
822
+ 211. `create_tag` - Create a new repository tag
823
+ 212. `delete_tag` - Delete a repository tag
824
+ 213. `get_tag_signature` - Get the X.509 signature of a signed tag (404 if unsigned)
825
+ 214. `get_work_item` - Get a work item with full details including status, hierarchy, type, and widgets
826
+ 215. `list_work_items` - List work items with filters (type, state, search, assignees, labels)
827
+ 216. `create_work_item` - Create a work item (issue, task, incident, epic, etc.) with full field support
828
+ 217. `update_work_item` - Update a work item (title, description, labels, assignees, state, parent, custom fields, etc.)
829
+ 218. `convert_work_item_type` - Convert a work item to a different type
830
+ 219. `list_work_item_statuses` - List available statuses for a work item type (Premium/Ultimate)
831
+ 220. `list_custom_field_definitions` - List custom field definitions for a work item type
832
+ 221. `move_work_item` - Move a work item to a different project
833
+ 222. `list_work_item_notes` - List notes and discussions on a work item
834
+ 223. `create_work_item_note` - Add a note to a work item (supports Markdown, internal notes, threads)
835
+ 224. `list_work_item_emoji_reactions` - List all emoji reactions on a work item
836
+ 225. `list_work_item_note_emoji_reactions` - List all emoji reactions on a work item note (comment, thread, or thread reply)
837
+ 226. `create_work_item_emoji_reaction` - Add an emoji reaction to a work item (e.g. thumbsup, rocket, eyes)
838
+ 227. `delete_work_item_emoji_reaction` - Remove an emoji reaction from a work item
839
+ 228. `create_work_item_note_emoji_reaction` - Add an emoji reaction to a work item note (comment, thread, or thread reply)
840
+ 229. `delete_work_item_note_emoji_reaction` - Remove an emoji reaction from a work item note (comment, thread, or thread reply)
841
+ 230. `get_timeline_events` - List timeline events for an incident
842
+ 231. `create_timeline_event` - Create a timeline event on an incident
843
+ 232. `list_webhooks` - List webhooks for a project or group
844
+ 233. `create_webhook` - Create a webhook on a project or group
845
+ 234. `update_webhook` - Update an existing project or group webhook
846
+ 235. `delete_webhook` - Delete a project or group webhook
847
+ 236. `list_webhook_events` - List recent webhook events (past 7 days)
848
+ 237. `get_webhook_event` - Get full details of a specific webhook event
849
+ 238. `search_code` - Search for code across all projects (requires advanced search or Zoekt)
850
+ 239. `search_project_code` - Search for code within a specific project (requires advanced search or Zoekt)
851
+ 240. `search_group_code` - Search for code within a specific group (requires advanced search or Zoekt)
852
+ 241. `list_project_variables` - List CI/CD variables for a project
853
+ 242. `get_project_variable` - Get a single CI/CD variable from a project
854
+ 243. `create_project_variable` - Create a CI/CD variable for a project
855
+ 244. `update_project_variable` - Update an existing CI/CD variable in a project
856
+ 245. `delete_project_variable` - Delete a CI/CD variable from a project
857
+ 246. `list_group_variables` - List CI/CD variables for a group
858
+ 247. `get_group_variable` - Get a single CI/CD variable from a group
859
+ 248. `create_group_variable` - Create a CI/CD variable for a group
860
+ 249. `update_group_variable` - Update an existing CI/CD variable in a group
861
+ 250. `delete_group_variable` - Delete a CI/CD variable from a group
862
+ 251. `get_dependency_proxy_settings` - Get dependency proxy settings for a group
863
+ 252. `update_dependency_proxy_settings` - Update dependency proxy settings for a group (enable/disable, credentials for authenticated Docker Hub pulls)
864
+ 253. `list_dependency_proxy_blobs` - List cached dependency proxy blobs for a group
865
+ 254. `purge_dependency_proxy_cache` - Schedule purge of all cached dependency proxy blobs for a group
866
+ 255. `list_project_vulnerabilities` - List vulnerabilities for a project with optional state, severity, and report type filters (GraphQL-backed, cursor pagination)
867
+ 256. `get_vulnerability` - Get full details of a specific vulnerability
868
+ 257. `dismiss_vulnerability` - Dismiss a vulnerability with a reason (acceptable_risk, false_positive, used_in_tests, mitigating_control, not_applicable) and optional comment
869
+ 258. `confirm_vulnerability` - Confirm a vulnerability as a real finding requiring remediation
870
+ 259. `orbit_query` - Execute a GitLab Orbit graph query over the indexed SDLC knowledge graph
871
+ 260. `orbit_get_schema` - Fetch the current GitLab Orbit graph schema (node and edge types)
872
+ 261. `orbit_get_status` - Check GitLab Orbit indexing status for the enabled scope
873
+ 262. `orbit_list_tools` - List the MCP tool definitions exposed by GitLab Orbit
874
+ 263. `list_snippets` - List snippets — project snippets when project_id is given, otherwise personal snippets
875
+ 264. `get_snippet` - Get a snippet's metadata. Set include_content=true to also fetch the raw file content.
876
+ 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.
877
+ 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.
878
+ 267. `delete_snippet` - Delete a snippet
879
+ 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.
875
880
 
876
881
  <!-- TOOLS-END -->
877
882