Skip to content

Commit d20bd04

Browse files
Merge branch 'main' into feat/draftNoteApiSupport
2 parents 5f08153 + 838148f commit d20bd04

File tree

4 files changed

+1923
-920
lines changed

4 files changed

+1923
-920
lines changed

README.md

Lines changed: 80 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ When using with the Claude App, you need to set up your API key and URLs directl
2525
"env": {
2626
"GITLAB_PERSONAL_ACCESS_TOKEN": "your_gitlab_token",
2727
"GITLAB_API_URL": "your_gitlab_api_url",
28+
"GITLAB_PROJECT_ID": "your_project_id", // Optional: default project
29+
"GITLAB_ALLOWED_PROJECT_IDS": "", // Optional: comma-separated list of allowed project IDs
2830
"GITLAB_READ_ONLY_MODE": "false",
2931
"USE_GITLAB_WIKI": "false", // use wiki api?
3032
"USE_MILESTONE": "false", // use milestone api?
@@ -168,6 +170,9 @@ $ sh scripts/image_push.sh docker_user_name
168170
- `GITLAB_PERSONAL_ACCESS_TOKEN`: Your GitLab personal access token.
169171
- `GITLAB_API_URL`: Your GitLab API URL. (Default: `https://gitlab.com/api/v4`)
170172
- `GITLAB_PROJECT_ID`: Default project ID. If set, Overwrite this value when making an API request.
173+
- `GITLAB_ALLOWED_PROJECT_IDS`: Optional comma-separated list of allowed project IDs. When set with a single value, acts as a default project (like the old "lock" mode). When set with multiple values, restricts access to only those projects. Examples:
174+
- Single value `123`: MCP server can only access project 123 and uses it as default
175+
- Multiple values `123,456,789`: MCP server can access projects 123, 456, and 789 but requires explicit project ID in requests
171176
- `GITLAB_READ_ONLY_MODE`: When set to 'true', restricts the server to only expose read-only operations. Useful for enhanced security or when write access is not needed. Also useful for using with Cursor and it's 40 tool limit.
172177
- `USE_GITLAB_WIKI`: When set to 'true', enables the wiki-related tools (list_wiki_pages, get_wiki_page, create_wiki_page, update_wiki_page, delete_wiki_page). By default, wiki features are disabled.
173178
- `USE_MILESTONE`: When set to 'true', enables the milestone-related tools (list_milestones, get_milestone, create_milestone, edit_milestone, delete_milestone, get_milestone_issue, get_milestone_merge_requests, promote_milestone, get_milestone_burndown_events). By default, milestone features are disabled.
@@ -181,77 +186,79 @@ $ sh scripts/image_push.sh docker_user_name
181186
## Tools 🛠️
182187

183188
+<!-- TOOLS-START -->
184-
185-
1. `create_or_update_file` - Create or update a single file in a GitLab project
186-
2. `search_repositories` - Search for GitLab projects
187-
3. `create_repository` - Create a new GitLab project
188-
4. `get_file_contents` - Get the contents of a file or directory from a GitLab project
189-
5. `push_files` - Push multiple files to a GitLab project in a single commit
190-
6. `create_issue` - Create a new issue in a GitLab project
191-
7. `create_merge_request` - Create a new merge request in a GitLab project
192-
8. `fork_repository` - Fork a GitLab project to your account or specified namespace
193-
9. `create_branch` - Create a new branch in a GitLab project
194-
10. `get_merge_request` - Get details of a merge request (Either mergeRequestIid or branchName must be provided)
195-
11. `get_merge_request_diffs` - Get the changes/diffs of a merge request (Either mergeRequestIid or branchName must be provided)
196-
12. `list_merge_request_diffs` - List merge request diffs with pagination support (Either mergeRequestIid or branchName must be provided)
197-
13. `get_branch_diffs` - Get the changes/diffs between two branches or commits in a GitLab project
198-
14. `update_merge_request` - Update a merge request (Either mergeRequestIid or branchName must be provided)
199-
15. `create_note` - Create a new note (comment) to an issue or merge request
200-
16. `create_merge_request_thread` - Create a new thread on a merge request
201-
17. `mr_discussions` - List discussion items for a merge request
202-
18. `update_merge_request_note` - Modify an existing merge request thread note
203-
19. `create_merge_request_note` - Add a new note to an existing merge request thread
204-
20. `update_issue_note` - Modify an existing issue thread note
205-
21. `create_issue_note` - Add a new note to an existing issue thread
206-
22. `list_draft_notes` - List draft notes for a merge request
207-
23. `create_draft_note` - Create a draft note for a merge request
208-
24. `update_draft_note` - Update an existing draft note
209-
25. `delete_draft_note` - Delete a draft note
210-
26. `publish_draft_note` - Publish a single draft note
211-
27. `bulk_publish_draft_notes` - Publish all draft notes for a merge request
212-
28. `list_issues` - List issues in a GitLab project with filtering options
213-
23. `get_issue` - Get details of a specific issue in a GitLab project
214-
24. `update_issue` - Update an issue in a GitLab project
215-
25. `delete_issue` - Delete an issue from a GitLab project
216-
26. `list_issue_links` - List all issue links for a specific issue
217-
27. `list_issue_discussions` - List discussions for an issue in a GitLab project
218-
28. `get_issue_link` - Get a specific issue link
219-
29. `create_issue_link` - Create an issue link between two issues
220-
30. `delete_issue_link` - Delete an issue link
221-
31. `list_namespaces` - List all namespaces available to the current user
222-
32. `get_namespace` - Get details of a namespace by ID or path
223-
33. `verify_namespace` - Verify if a namespace path exists
224-
34. `get_project` - Get details of a specific project
225-
35. `list_projects` - List projects accessible by the current user
226-
36. `list_labels` - List labels for a project
227-
37. `get_label` - Get a single label from a project
228-
38. `create_label` - Create a new label in a project
229-
39. `update_label` - Update an existing label in a project
230-
40. `delete_label` - Delete a label from a project
231-
41. `list_group_projects` - List projects in a GitLab group with filtering options
232-
42. `list_wiki_pages` - List wiki pages in a GitLab project
233-
43. `get_wiki_page` - Get details of a specific wiki page
234-
44. `create_wiki_page` - Create a new wiki page in a GitLab project
235-
45. `update_wiki_page` - Update an existing wiki page in a GitLab project
236-
46. `delete_wiki_page` - Delete a wiki page from a GitLab project
237-
47. `get_repository_tree` - Get the repository tree for a GitLab project (list files and directories)
238-
48. `list_pipelines` - List pipelines in a GitLab project with filtering options
239-
49. `get_pipeline` - Get details of a specific pipeline in a GitLab project
240-
50. `list_pipeline_jobs` - List all jobs in a specific pipeline
241-
51. `get_pipeline_job` - Get details of a GitLab pipeline job number
242-
52. `get_pipeline_job_output` - Get the output/trace of a GitLab pipeline job number
243-
53. `create_pipeline` - Create a new pipeline for a branch or tag
244-
54. `retry_pipeline` - Retry a failed or canceled pipeline
245-
55. `cancel_pipeline` - Cancel a running pipeline
246-
56. `list_merge_requests` - List merge requests in a GitLab project with filtering options
247-
57. `list_milestones` - List milestones in a GitLab project with filtering options
248-
58. `get_milestone` - Get details of a specific milestone
249-
59. `create_milestone` - Create a new milestone in a GitLab project
250-
60. `edit_milestone` - Edit an existing milestone in a GitLab project
251-
61. `delete_milestone` - Delete a milestone from a GitLab project
252-
62. `get_milestone_issue` - Get issues associated with a specific milestone
253-
63. `get_milestone_merge_requests` - Get merge requests associated with a specific milestone
254-
64. `promote_milestone` - Promote a milestone to the next stage
255-
65. `get_milestone_burndown_events` - Get burndown events for a specific milestone
256-
66. `get_users` - Get GitLab user details by usernames
189+
`verify_namespace` - Verify if a namespace path exists
190+
`update_wiki_page` - Update an existing wiki page in a GitLab project
191+
`update_merge_request` - Update a merge request (Either mergeRequestIid or branchName must be provided)
192+
`update_merge_request_note` - Modify an existing merge request thread note
193+
`update_label` - Update an existing label in a project
194+
`update_issue` - Update an issue in a GitLab project
195+
`update_issue_note` - Modify an existing issue thread note
196+
`update_draft_note` - Update an existing draft note
197+
`search_repositories` - Search for GitLab projects
198+
`retry_pipeline` - Retry a failed or canceled pipeline
199+
`push_files` - Push multiple files to a GitLab project in a single commit
200+
`publish_draft_note` - Publish a single draft note
201+
`promote_milestone` - Promote a milestone to the next stage
202+
`my_issues` - List issues assigned to the authenticated user
203+
`mr_discussions` - List discussion items for a merge request
204+
`list_wiki_pages` - List wiki pages in a GitLab project
205+
`list_projects` - List projects accessible by the current user
206+
`list_project_members` - List members of a GitLab project
207+
`list_pipelines` - List pipelines in a GitLab project with filtering options
208+
`list_pipeline_trigger_jobs` - List all trigger jobs (bridges) in a specific pipeline that trigger downstream pipelines
209+
`list_pipeline_jobs` - List all jobs in a specific pipeline
210+
`list_namespaces` - List all namespaces available to the current user
211+
`list_milestones` - List milestones in a GitLab project with filtering options
212+
`list_merge_requests` - List merge requests in a GitLab project with filtering options
213+
`list_merge_request_diffs` - List merge request diffs with pagination support (Either mergeRequestIid or branchName must be provided)
214+
`list_labels` - List labels for a project
215+
`list_issues` - List issues in a GitLab project with filtering options
216+
`list_issue_links` - List all issue links for a specific issue
217+
`list_issue_discussions` - List discussions for an issue in a GitLab project
218+
`list_group_projects` - List projects in a GitLab group with filtering options
219+
`list_draft_notes` - List draft notes for a merge request
220+
`get_wiki_page` - Get details of a specific wiki page
221+
`get_users` - Get GitLab user details by usernames
222+
`get_repository_tree` - Get the repository tree for a GitLab project (list files and directories)
223+
`get_project` - Get details of a specific project
224+
`get_pipeline` - Get details of a specific pipeline in a GitLab project
225+
`get_pipeline_job` - Get details of a GitLab pipeline job number
226+
`get_pipeline_job_output` - Get the output/trace of a GitLab pipeline job number
227+
`get_namespace` - Get details of a namespace by ID or path
228+
`get_milestone` - Get details of a specific milestone
229+
`get_milestone_merge_requests` - Get merge requests associated with a specific milestone
230+
`get_milestone_issue` - Get issues associated with a specific milestone
231+
`get_milestone_burndown_events` - Get burndown events for a specific milestone
232+
`get_merge_request` - Get details of a merge request (Either mergeRequestIid or branchName must be provided)
233+
`get_merge_request_diffs` - Get the changes/diffs of a merge request (Either mergeRequestIid or branchName must be provided)
234+
`get_label` - Get a single label from a project
235+
`get_issue` - Get details of a specific issue in a GitLab project
236+
`get_issue_link` - Get a specific issue link
237+
`get_file_contents` - Get the contents of a file or directory from a GitLab project
238+
`get_branch_diffs` - Get the changes/diffs between two branches or commits in a GitLab project
239+
`fork_repository` - Fork a GitLab project to your account or specified namespace
240+
`edit_milestone` - Edit an existing milestone in a GitLab project
241+
`delete_wiki_page` - Delete a wiki page from a GitLab project
242+
`delete_milestone` - Delete a milestone from a GitLab project
243+
`delete_label` - Delete a label from a project
244+
`delete_issue` - Delete an issue from a GitLab project
245+
`delete_issue_link` - Delete an issue link
246+
`delete_draft_note` - Delete a draft note
247+
`create_wiki_page` - Create a new wiki page in a GitLab project
248+
`create_repository` - Create a new GitLab project
249+
`create_pipeline` - Create a new pipeline for a branch or tag
250+
`create_or_update_file` - Create or update a single file in a GitLab project
251+
`create_note` - Create a new note (comment) to an issue or merge request
252+
`create_milestone` - Create a new milestone in a GitLab project
253+
`create_merge_request` - Create a new merge request in a GitLab project
254+
`create_merge_request_thread` - Create a new thread on a merge request
255+
`create_merge_request_note` - Add a new note to an existing merge request thread
256+
`create_label` - Create a new label in a project
257+
`create_issue` - Create a new issue in a GitLab project
258+
`create_issue_note` - Add a new note to an existing issue thread
259+
`create_issue_link` - Create an issue link between two issues
260+
`create_draft_note` - Create a draft note for a merge request
261+
`create_branch` - Create a new branch in a GitLab project
262+
`cancel_pipeline` - Cancel a running pipeline
263+
`bulk_publish_draft_notes` - Publish all draft notes for a merge request
257264
<!-- TOOLS-END -->

0 commit comments

Comments
 (0)