@opentabs-dev/opentabs-plugin-gitlab 0.0.74

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 (104) hide show
  1. package/dist/adapter.iife.js +15367 -0
  2. package/dist/adapter.iife.js.map +7 -0
  3. package/dist/gitlab-api.d.ts +13 -0
  4. package/dist/gitlab-api.d.ts.map +1 -0
  5. package/dist/gitlab-api.js +114 -0
  6. package/dist/gitlab-api.js.map +1 -0
  7. package/dist/index.d.ts +14 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +70 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/tools/create-issue.d.ts +27 -0
  12. package/dist/tools/create-issue.d.ts.map +1 -0
  13. package/dist/tools/create-issue.js +43 -0
  14. package/dist/tools/create-issue.js.map +1 -0
  15. package/dist/tools/create-merge-request.d.ts +32 -0
  16. package/dist/tools/create-merge-request.d.ts.map +1 -0
  17. package/dist/tools/create-merge-request.js +52 -0
  18. package/dist/tools/create-merge-request.js.map +1 -0
  19. package/dist/tools/create-note.d.ts +20 -0
  20. package/dist/tools/create-note.d.ts.map +1 -0
  21. package/dist/tools/create-note.js +26 -0
  22. package/dist/tools/create-note.js.map +1 -0
  23. package/dist/tools/get-file-content.d.ts +10 -0
  24. package/dist/tools/get-file-content.d.ts.map +1 -0
  25. package/dist/tools/get-file-content.js +33 -0
  26. package/dist/tools/get-file-content.js.map +1 -0
  27. package/dist/tools/get-issue.d.ts +22 -0
  28. package/dist/tools/get-issue.d.ts.map +1 -0
  29. package/dist/tools/get-issue.js +24 -0
  30. package/dist/tools/get-issue.js.map +1 -0
  31. package/dist/tools/get-job-log.d.ts +8 -0
  32. package/dist/tools/get-job-log.d.ts.map +1 -0
  33. package/dist/tools/get-job-log.js +23 -0
  34. package/dist/tools/get-job-log.js.map +1 -0
  35. package/dist/tools/get-merge-request-diff.d.ts +15 -0
  36. package/dist/tools/get-merge-request-diff.d.ts.map +1 -0
  37. package/dist/tools/get-merge-request-diff.js +41 -0
  38. package/dist/tools/get-merge-request-diff.js.map +1 -0
  39. package/dist/tools/get-merge-request.d.ts +24 -0
  40. package/dist/tools/get-merge-request.d.ts.map +1 -0
  41. package/dist/tools/get-merge-request.js +24 -0
  42. package/dist/tools/get-merge-request.js.map +1 -0
  43. package/dist/tools/get-project.d.ts +21 -0
  44. package/dist/tools/get-project.d.ts.map +1 -0
  45. package/dist/tools/get-project.js +23 -0
  46. package/dist/tools/get-project.js.map +1 -0
  47. package/dist/tools/get-user-profile.d.ts +17 -0
  48. package/dist/tools/get-user-profile.d.ts.map +1 -0
  49. package/dist/tools/get-user-profile.js +29 -0
  50. package/dist/tools/get-user-profile.js.map +1 -0
  51. package/dist/tools/list-branches.d.ts +16 -0
  52. package/dist/tools/list-branches.d.ts.map +1 -0
  53. package/dist/tools/list-branches.js +32 -0
  54. package/dist/tools/list-branches.js.map +1 -0
  55. package/dist/tools/list-commits.d.ts +22 -0
  56. package/dist/tools/list-commits.d.ts.map +1 -0
  57. package/dist/tools/list-commits.js +41 -0
  58. package/dist/tools/list-commits.js.map +1 -0
  59. package/dist/tools/list-issues.d.ts +40 -0
  60. package/dist/tools/list-issues.d.ts.map +1 -0
  61. package/dist/tools/list-issues.js +49 -0
  62. package/dist/tools/list-issues.js.map +1 -0
  63. package/dist/tools/list-merge-requests.d.ts +46 -0
  64. package/dist/tools/list-merge-requests.d.ts.map +1 -0
  65. package/dist/tools/list-merge-requests.js +56 -0
  66. package/dist/tools/list-merge-requests.js.map +1 -0
  67. package/dist/tools/list-notes.d.ts +29 -0
  68. package/dist/tools/list-notes.d.ts.map +1 -0
  69. package/dist/tools/list-notes.js +35 -0
  70. package/dist/tools/list-notes.js.map +1 -0
  71. package/dist/tools/list-pipeline-jobs.d.ts +20 -0
  72. package/dist/tools/list-pipeline-jobs.d.ts.map +1 -0
  73. package/dist/tools/list-pipeline-jobs.js +30 -0
  74. package/dist/tools/list-pipeline-jobs.js.map +1 -0
  75. package/dist/tools/list-pipelines.d.ts +42 -0
  76. package/dist/tools/list-pipelines.d.ts.map +1 -0
  77. package/dist/tools/list-pipelines.js +47 -0
  78. package/dist/tools/list-pipelines.js.map +1 -0
  79. package/dist/tools/list-projects.d.ts +42 -0
  80. package/dist/tools/list-projects.d.ts.map +1 -0
  81. package/dist/tools/list-projects.js +47 -0
  82. package/dist/tools/list-projects.js.map +1 -0
  83. package/dist/tools/merge-merge-request.d.ts +28 -0
  84. package/dist/tools/merge-merge-request.d.ts.map +1 -0
  85. package/dist/tools/merge-merge-request.js +37 -0
  86. package/dist/tools/merge-merge-request.js.map +1 -0
  87. package/dist/tools/schemas.d.ts +326 -0
  88. package/dist/tools/schemas.d.ts.map +1 -0
  89. package/dist/tools/schemas.js +213 -0
  90. package/dist/tools/schemas.js.map +1 -0
  91. package/dist/tools/search-projects.d.ts +35 -0
  92. package/dist/tools/search-projects.d.ts.map +1 -0
  93. package/dist/tools/search-projects.js +37 -0
  94. package/dist/tools/search-projects.js.map +1 -0
  95. package/dist/tools/update-issue.d.ts +32 -0
  96. package/dist/tools/update-issue.d.ts.map +1 -0
  97. package/dist/tools/update-issue.js +46 -0
  98. package/dist/tools/update-issue.js.map +1 -0
  99. package/dist/tools/update-merge-request.d.ts +35 -0
  100. package/dist/tools/update-merge-request.d.ts.map +1 -0
  101. package/dist/tools/update-merge-request.js +49 -0
  102. package/dist/tools/update-merge-request.js.map +1 -0
  103. package/dist/tools.json +2661 -0
  104. package/package.json +55 -0
@@ -0,0 +1,2661 @@
1
+ {
2
+ "sdkVersion": "0.0.74",
3
+ "iconSvg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"109.7 109.2 160.6 160.6\"> <path fill=\"#e24329\" d=\"M265.26416,174.37243l-.2134-.55822-21.19899-55.30908c-.4236-1.08359-1.18542-1.99642-2.17699-2.62689-.98837-.63373-2.14749-.93253-3.32305-.87014-1.1689.06239-2.29195.48925-3.20809,1.21821-.90957.73554-1.56629,1.73047-1.87493,2.85346l-14.31327,43.80662h-57.90965l-14.31327-43.80662c-.30864-1.12299-.96536-2.11791-1.87493-2.85346-.91614-.72895-2.03911-1.15582-3.20809-1.21821-1.17548-.06239-2.33468.23641-3.32297.87014-.99166.63047-1.75348,1.5433-2.17707,2.62689l-21.19891,55.31237-.21348.55493c-6.28158,16.38521-.92929,34.90803,13.05891,45.48782.02621.01641.04922.03611.07552.05582l.18719.14119,32.29094,24.17392,15.97151,12.09024,9.71951,7.34871c2.34117,1.77316,5.57877,1.77316,7.92002,0l9.71943-7.34871,15.96822-12.09024,32.48142-24.31511c.02958-.02299.05588-.04269.08538-.06568,13.97834-10.57977,19.32735-29.09604,13.04905-45.47796Z\"/> <path fill=\"#fc6d26\" d=\"M265.26416,174.37243l-.2134-.55822c-10.5174,2.16062-20.20405,6.6099-28.49844,12.81593-.1346.0985-25.20497,19.05805-46.55171,35.19699,15.84998,11.98517,29.6477,22.40405,29.6477,22.40405l32.48142-24.31511c.02958-.02299.05588-.04269.08538-.06568,13.97834-10.57977,19.32735-29.09604,13.04905-45.47796Z\"/> <path fill=\"#fca326\" d=\"M160.34962,244.23117l15.97151,12.09024,9.71951,7.34871c2.34117,1.77316,5.57877,1.77316,7.92002,0l9.71943-7.34871,15.96822-12.09024s-13.79772-10.41888-29.6477-22.40405c-15.85327,11.98517-29.65099,22.40405-29.65099,22.40405Z\"/> <path fill=\"#fc6d26\" d=\"M143.44561,186.63014c-8.29111-6.20274-17.97446-10.65531-28.49507-12.81264l-.21348.55493c-6.28158,16.38521-.92929,34.90803,13.05891,45.48782.02621.01641.04922.03611.07552.05582l.18719.14119,32.29094,24.17392s13.79772-10.41888,29.65099-22.40405c-21.34673-16.13894-46.42031-35.09848-46.55499-35.19699Z\"/> </svg>",
4
+ "iconInactiveSvg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"109.7 109.2 160.6 160.6\"> <path fill=\"#999999\" d=\"M265.26416,174.37243l-.2134-.55822-21.19899-55.30908c-.4236-1.08359-1.18542-1.99642-2.17699-2.62689-.98837-.63373-2.14749-.93253-3.32305-.87014-1.1689.06239-2.29195.48925-3.20809,1.21821-.90957.73554-1.56629,1.73047-1.87493,2.85346l-14.31327,43.80662h-57.90965l-14.31327-43.80662c-.30864-1.12299-.96536-2.11791-1.87493-2.85346-.91614-.72895-2.03911-1.15582-3.20809-1.21821-1.17548-.06239-2.33468.23641-3.32297.87014-.99166.63047-1.75348,1.5433-2.17707,2.62689l-21.19891,55.31237-.21348.55493c-6.28158,16.38521-.92929,34.90803,13.05891,45.48782.02621.01641.04922.03611.07552.05582l.18719.14119,32.29094,24.17392,15.97151,12.09024,9.71951,7.34871c2.34117,1.77316,5.57877,1.77316,7.92002,0l9.71943-7.34871,15.96822-12.09024,32.48142-24.31511c.02958-.02299.05588-.04269.08538-.06568,13.97834-10.57977,19.32735-29.09604,13.04905-45.47796Z\"/> <path fill=\"#999999\" d=\"M265.26416,174.37243l-.2134-.55822c-10.5174,2.16062-20.20405,6.6099-28.49844,12.81593-.1346.0985-25.20497,19.05805-46.55171,35.19699,15.84998,11.98517,29.6477,22.40405,29.6477,22.40405l32.48142-24.31511c.02958-.02299.05588-.04269.08538-.06568,13.97834-10.57977,19.32735-29.09604,13.04905-45.47796Z\"/> <path fill=\"#adadad\" d=\"M160.34962,244.23117l15.97151,12.09024,9.71951,7.34871c2.34117,1.77316,5.57877,1.77316,7.92002,0l9.71943-7.34871,15.96822-12.09024s-13.79772-10.41888-29.6477-22.40405c-15.85327,11.98517-29.65099,22.40405-29.65099,22.40405Z\"/> <path fill=\"#999999\" d=\"M143.44561,186.63014c-8.29111-6.20274-17.97446-10.65531-28.49507-12.81264l-.21348.55493c-6.28158,16.38521-.92929,34.90803,13.05891,45.48782.02621.01641.04922.03611.07552.05582l.18719.14119,32.29094,24.17392s13.79772-10.41888,29.65099-22.40405c-21.34673-16.13894-46.42031-35.09848-46.55499-35.19699Z\"/> </svg>",
5
+ "iconDarkSvg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"109.7 109.2 160.6 160.6\"> <path fill=\"#e24329\" d=\"M265.26416,174.37243l-.2134-.55822-21.19899-55.30908c-.4236-1.08359-1.18542-1.99642-2.17699-2.62689-.98837-.63373-2.14749-.93253-3.32305-.87014-1.1689.06239-2.29195.48925-3.20809,1.21821-.90957.73554-1.56629,1.73047-1.87493,2.85346l-14.31327,43.80662h-57.90965l-14.31327-43.80662c-.30864-1.12299-.96536-2.11791-1.87493-2.85346-.91614-.72895-2.03911-1.15582-3.20809-1.21821-1.17548-.06239-2.33468.23641-3.32297.87014-.99166.63047-1.75348,1.5433-2.17707,2.62689l-21.19891,55.31237-.21348.55493c-6.28158,16.38521-.92929,34.90803,13.05891,45.48782.02621.01641.04922.03611.07552.05582l.18719.14119,32.29094,24.17392,15.97151,12.09024,9.71951,7.34871c2.34117,1.77316,5.57877,1.77316,7.92002,0l9.71943-7.34871,15.96822-12.09024,32.48142-24.31511c.02958-.02299.05588-.04269.08538-.06568,13.97834-10.57977,19.32735-29.09604,13.04905-45.47796Z\"/> <path fill=\"#fc6d26\" d=\"M265.26416,174.37243l-.2134-.55822c-10.5174,2.16062-20.20405,6.6099-28.49844,12.81593-.1346.0985-25.20497,19.05805-46.55171,35.19699,15.84998,11.98517,29.6477,22.40405,29.6477,22.40405l32.48142-24.31511c.02958-.02299.05588-.04269.08538-.06568,13.97834-10.57977,19.32735-29.09604,13.04905-45.47796Z\"/> <path fill=\"#fca326\" d=\"M160.34962,244.23117l15.97151,12.09024,9.71951,7.34871c2.34117,1.77316,5.57877,1.77316,7.92002,0l9.71943-7.34871,15.96822-12.09024s-13.79772-10.41888-29.6477-22.40405c-15.85327,11.98517-29.65099,22.40405-29.65099,22.40405Z\"/> <path fill=\"#fc6d26\" d=\"M143.44561,186.63014c-8.29111-6.20274-17.97446-10.65531-28.49507-12.81264l-.21348.55493c-6.28158,16.38521-.92929,34.90803,13.05891,45.48782.02621.01641.04922.03611.07552.05582l.18719.14119,32.29094,24.17392s13.79772-10.41888,29.65099-22.40405c-21.34673-16.13894-46.42031-35.09848-46.55499-35.19699Z\"/> </svg>",
6
+ "iconDarkInactiveSvg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"109.7 109.2 160.6 160.6\"> <path fill=\"#999999\" d=\"M265.26416,174.37243l-.2134-.55822-21.19899-55.30908c-.4236-1.08359-1.18542-1.99642-2.17699-2.62689-.98837-.63373-2.14749-.93253-3.32305-.87014-1.1689.06239-2.29195.48925-3.20809,1.21821-.90957.73554-1.56629,1.73047-1.87493,2.85346l-14.31327,43.80662h-57.90965l-14.31327-43.80662c-.30864-1.12299-.96536-2.11791-1.87493-2.85346-.91614-.72895-2.03911-1.15582-3.20809-1.21821-1.17548-.06239-2.33468.23641-3.32297.87014-.99166.63047-1.75348,1.5433-2.17707,2.62689l-21.19891,55.31237-.21348.55493c-6.28158,16.38521-.92929,34.90803,13.05891,45.48782.02621.01641.04922.03611.07552.05582l.18719.14119,32.29094,24.17392,15.97151,12.09024,9.71951,7.34871c2.34117,1.77316,5.57877,1.77316,7.92002,0l9.71943-7.34871,15.96822-12.09024,32.48142-24.31511c.02958-.02299.05588-.04269.08538-.06568,13.97834-10.57977,19.32735-29.09604,13.04905-45.47796Z\"/> <path fill=\"#999999\" d=\"M265.26416,174.37243l-.2134-.55822c-10.5174,2.16062-20.20405,6.6099-28.49844,12.81593-.1346.0985-25.20497,19.05805-46.55171,35.19699,15.84998,11.98517,29.6477,22.40405,29.6477,22.40405l32.48142-24.31511c.02958-.02299.05588-.04269.08538-.06568,13.97834-10.57977,19.32735-29.09604,13.04905-45.47796Z\"/> <path fill=\"#adadad\" d=\"M160.34962,244.23117l15.97151,12.09024,9.71951,7.34871c2.34117,1.77316,5.57877,1.77316,7.92002,0l9.71943-7.34871,15.96822-12.09024s-13.79772-10.41888-29.6477-22.40405c-15.85327,11.98517-29.65099,22.40405-29.65099,22.40405Z\"/> <path fill=\"#999999\" d=\"M143.44561,186.63014c-8.29111-6.20274-17.97446-10.65531-28.49507-12.81264l-.21348.55493c-6.28158,16.38521-.92929,34.90803,13.05891,45.48782.02621.01641.04922.03611.07552.05582l.18719.14119,32.29094,24.17392s13.79772-10.41888,29.65099-22.40405c-21.34673-16.13894-46.42031-35.09848-46.55499-35.19699Z\"/> </svg>",
7
+ "tools": [
8
+ {
9
+ "name": "list_projects",
10
+ "displayName": "List Projects",
11
+ "description": "List projects accessible to the authenticated user. Can filter by membership, visibility, search query, and more.",
12
+ "summary": "List accessible projects",
13
+ "icon": "folder-git-2",
14
+ "group": "Projects",
15
+ "input_schema": {
16
+ "type": "object",
17
+ "properties": {
18
+ "membership": {
19
+ "description": "Limit to projects the user is a member of (default: false)",
20
+ "type": "boolean"
21
+ },
22
+ "owned": {
23
+ "description": "Limit to projects owned by the user (default: false)",
24
+ "type": "boolean"
25
+ },
26
+ "search": {
27
+ "description": "Search by project name",
28
+ "type": "string"
29
+ },
30
+ "visibility": {
31
+ "description": "Filter by visibility level",
32
+ "type": "string",
33
+ "enum": [
34
+ "public",
35
+ "internal",
36
+ "private"
37
+ ]
38
+ },
39
+ "order_by": {
40
+ "description": "Sort field (default: created_at)",
41
+ "type": "string",
42
+ "enum": [
43
+ "id",
44
+ "name",
45
+ "path",
46
+ "created_at",
47
+ "updated_at",
48
+ "last_activity_at"
49
+ ]
50
+ },
51
+ "sort": {
52
+ "description": "Sort direction (default: desc)",
53
+ "type": "string",
54
+ "enum": [
55
+ "asc",
56
+ "desc"
57
+ ]
58
+ },
59
+ "per_page": {
60
+ "description": "Results per page (default 20, max 100)",
61
+ "type": "integer",
62
+ "minimum": 1,
63
+ "maximum": 100
64
+ },
65
+ "page": {
66
+ "description": "Page number (default 1)",
67
+ "type": "integer",
68
+ "minimum": 1,
69
+ "maximum": 9007199254740991
70
+ }
71
+ },
72
+ "additionalProperties": false
73
+ },
74
+ "output_schema": {
75
+ "type": "object",
76
+ "properties": {
77
+ "projects": {
78
+ "type": "array",
79
+ "items": {
80
+ "type": "object",
81
+ "properties": {
82
+ "id": {
83
+ "type": "number",
84
+ "description": "Project ID"
85
+ },
86
+ "name": {
87
+ "type": "string",
88
+ "description": "Project name"
89
+ },
90
+ "path_with_namespace": {
91
+ "type": "string",
92
+ "description": "Full path including namespace (e.g., \"group/project\")"
93
+ },
94
+ "description": {
95
+ "type": "string",
96
+ "description": "Project description"
97
+ },
98
+ "visibility": {
99
+ "type": "string",
100
+ "description": "Visibility level: private, internal, or public"
101
+ },
102
+ "web_url": {
103
+ "type": "string",
104
+ "description": "URL to the project on GitLab"
105
+ },
106
+ "default_branch": {
107
+ "type": "string",
108
+ "description": "Default branch name"
109
+ },
110
+ "star_count": {
111
+ "type": "number",
112
+ "description": "Number of stars"
113
+ },
114
+ "forks_count": {
115
+ "type": "number",
116
+ "description": "Number of forks"
117
+ },
118
+ "open_issues_count": {
119
+ "type": "number",
120
+ "description": "Number of open issues"
121
+ },
122
+ "archived": {
123
+ "type": "boolean",
124
+ "description": "Whether the project is archived"
125
+ },
126
+ "created_at": {
127
+ "type": "string",
128
+ "description": "Created ISO 8601 timestamp"
129
+ },
130
+ "last_activity_at": {
131
+ "type": "string",
132
+ "description": "Last activity ISO 8601 timestamp"
133
+ }
134
+ },
135
+ "required": [
136
+ "id",
137
+ "name",
138
+ "path_with_namespace",
139
+ "description",
140
+ "visibility",
141
+ "web_url",
142
+ "default_branch",
143
+ "star_count",
144
+ "forks_count",
145
+ "open_issues_count",
146
+ "archived",
147
+ "created_at",
148
+ "last_activity_at"
149
+ ],
150
+ "additionalProperties": false
151
+ },
152
+ "description": "List of projects"
153
+ }
154
+ },
155
+ "required": [
156
+ "projects"
157
+ ],
158
+ "additionalProperties": false
159
+ }
160
+ },
161
+ {
162
+ "name": "get_project",
163
+ "displayName": "Get Project",
164
+ "description": "Get detailed information about a specific project by its path (e.g., \"group/project\").",
165
+ "summary": "Get project details",
166
+ "icon": "folder-git-2",
167
+ "group": "Projects",
168
+ "input_schema": {
169
+ "type": "object",
170
+ "properties": {
171
+ "project": {
172
+ "type": "string",
173
+ "minLength": 1,
174
+ "description": "Project path (e.g., \"group/project\") or numeric project ID"
175
+ }
176
+ },
177
+ "required": [
178
+ "project"
179
+ ],
180
+ "additionalProperties": false
181
+ },
182
+ "output_schema": {
183
+ "type": "object",
184
+ "properties": {
185
+ "project": {
186
+ "type": "object",
187
+ "properties": {
188
+ "id": {
189
+ "type": "number",
190
+ "description": "Project ID"
191
+ },
192
+ "name": {
193
+ "type": "string",
194
+ "description": "Project name"
195
+ },
196
+ "path_with_namespace": {
197
+ "type": "string",
198
+ "description": "Full path including namespace (e.g., \"group/project\")"
199
+ },
200
+ "description": {
201
+ "type": "string",
202
+ "description": "Project description"
203
+ },
204
+ "visibility": {
205
+ "type": "string",
206
+ "description": "Visibility level: private, internal, or public"
207
+ },
208
+ "web_url": {
209
+ "type": "string",
210
+ "description": "URL to the project on GitLab"
211
+ },
212
+ "default_branch": {
213
+ "type": "string",
214
+ "description": "Default branch name"
215
+ },
216
+ "star_count": {
217
+ "type": "number",
218
+ "description": "Number of stars"
219
+ },
220
+ "forks_count": {
221
+ "type": "number",
222
+ "description": "Number of forks"
223
+ },
224
+ "open_issues_count": {
225
+ "type": "number",
226
+ "description": "Number of open issues"
227
+ },
228
+ "archived": {
229
+ "type": "boolean",
230
+ "description": "Whether the project is archived"
231
+ },
232
+ "created_at": {
233
+ "type": "string",
234
+ "description": "Created ISO 8601 timestamp"
235
+ },
236
+ "last_activity_at": {
237
+ "type": "string",
238
+ "description": "Last activity ISO 8601 timestamp"
239
+ }
240
+ },
241
+ "required": [
242
+ "id",
243
+ "name",
244
+ "path_with_namespace",
245
+ "description",
246
+ "visibility",
247
+ "web_url",
248
+ "default_branch",
249
+ "star_count",
250
+ "forks_count",
251
+ "open_issues_count",
252
+ "archived",
253
+ "created_at",
254
+ "last_activity_at"
255
+ ],
256
+ "additionalProperties": false,
257
+ "description": "The project"
258
+ }
259
+ },
260
+ "required": [
261
+ "project"
262
+ ],
263
+ "additionalProperties": false
264
+ }
265
+ },
266
+ {
267
+ "name": "search_projects",
268
+ "displayName": "Search Projects",
269
+ "description": "Search for projects by name across GitLab.",
270
+ "summary": "Search for projects",
271
+ "icon": "search",
272
+ "group": "Search",
273
+ "input_schema": {
274
+ "type": "object",
275
+ "properties": {
276
+ "search": {
277
+ "type": "string",
278
+ "minLength": 1,
279
+ "description": "Search query"
280
+ },
281
+ "order_by": {
282
+ "description": "Sort field (default: created_at)",
283
+ "type": "string",
284
+ "enum": [
285
+ "id",
286
+ "name",
287
+ "path",
288
+ "created_at",
289
+ "updated_at",
290
+ "last_activity_at"
291
+ ]
292
+ },
293
+ "sort": {
294
+ "description": "Sort direction (default: desc)",
295
+ "type": "string",
296
+ "enum": [
297
+ "asc",
298
+ "desc"
299
+ ]
300
+ },
301
+ "per_page": {
302
+ "description": "Results per page (default 20, max 100)",
303
+ "type": "integer",
304
+ "minimum": 1,
305
+ "maximum": 100
306
+ },
307
+ "page": {
308
+ "description": "Page number (default 1)",
309
+ "type": "integer",
310
+ "minimum": 1,
311
+ "maximum": 9007199254740991
312
+ }
313
+ },
314
+ "required": [
315
+ "search"
316
+ ],
317
+ "additionalProperties": false
318
+ },
319
+ "output_schema": {
320
+ "type": "object",
321
+ "properties": {
322
+ "projects": {
323
+ "type": "array",
324
+ "items": {
325
+ "type": "object",
326
+ "properties": {
327
+ "id": {
328
+ "type": "number",
329
+ "description": "Project ID"
330
+ },
331
+ "name": {
332
+ "type": "string",
333
+ "description": "Project name"
334
+ },
335
+ "path_with_namespace": {
336
+ "type": "string",
337
+ "description": "Full path including namespace (e.g., \"group/project\")"
338
+ },
339
+ "description": {
340
+ "type": "string",
341
+ "description": "Project description"
342
+ },
343
+ "visibility": {
344
+ "type": "string",
345
+ "description": "Visibility level: private, internal, or public"
346
+ },
347
+ "web_url": {
348
+ "type": "string",
349
+ "description": "URL to the project on GitLab"
350
+ },
351
+ "default_branch": {
352
+ "type": "string",
353
+ "description": "Default branch name"
354
+ },
355
+ "star_count": {
356
+ "type": "number",
357
+ "description": "Number of stars"
358
+ },
359
+ "forks_count": {
360
+ "type": "number",
361
+ "description": "Number of forks"
362
+ },
363
+ "open_issues_count": {
364
+ "type": "number",
365
+ "description": "Number of open issues"
366
+ },
367
+ "archived": {
368
+ "type": "boolean",
369
+ "description": "Whether the project is archived"
370
+ },
371
+ "created_at": {
372
+ "type": "string",
373
+ "description": "Created ISO 8601 timestamp"
374
+ },
375
+ "last_activity_at": {
376
+ "type": "string",
377
+ "description": "Last activity ISO 8601 timestamp"
378
+ }
379
+ },
380
+ "required": [
381
+ "id",
382
+ "name",
383
+ "path_with_namespace",
384
+ "description",
385
+ "visibility",
386
+ "web_url",
387
+ "default_branch",
388
+ "star_count",
389
+ "forks_count",
390
+ "open_issues_count",
391
+ "archived",
392
+ "created_at",
393
+ "last_activity_at"
394
+ ],
395
+ "additionalProperties": false
396
+ },
397
+ "description": "List of matching projects"
398
+ }
399
+ },
400
+ "required": [
401
+ "projects"
402
+ ],
403
+ "additionalProperties": false
404
+ }
405
+ },
406
+ {
407
+ "name": "list_issues",
408
+ "displayName": "List Issues",
409
+ "description": "List issues for a project. By default returns opened issues sorted by creation date. Can filter by state, labels, assignee, milestone, and more.",
410
+ "summary": "List issues for a project",
411
+ "icon": "circle-dot",
412
+ "group": "Issues",
413
+ "input_schema": {
414
+ "type": "object",
415
+ "properties": {
416
+ "project": {
417
+ "type": "string",
418
+ "minLength": 1,
419
+ "description": "Project path (e.g., \"group/project\") or numeric project ID"
420
+ },
421
+ "state": {
422
+ "description": "Issue state filter (default: opened)",
423
+ "type": "string",
424
+ "enum": [
425
+ "opened",
426
+ "closed",
427
+ "all"
428
+ ]
429
+ },
430
+ "labels": {
431
+ "description": "Comma-separated list of label names to filter by",
432
+ "type": "string"
433
+ },
434
+ "assignee_username": {
435
+ "description": "Filter by assignee username",
436
+ "type": "string"
437
+ },
438
+ "milestone": {
439
+ "description": "Milestone title to filter by, or \"None\" / \"Any\"",
440
+ "type": "string"
441
+ },
442
+ "search": {
443
+ "description": "Search in title and description",
444
+ "type": "string"
445
+ },
446
+ "order_by": {
447
+ "description": "Sort field (default: created_at)",
448
+ "type": "string",
449
+ "enum": [
450
+ "created_at",
451
+ "updated_at"
452
+ ]
453
+ },
454
+ "sort": {
455
+ "description": "Sort direction (default: desc)",
456
+ "type": "string",
457
+ "enum": [
458
+ "asc",
459
+ "desc"
460
+ ]
461
+ },
462
+ "per_page": {
463
+ "description": "Results per page (default 20, max 100)",
464
+ "type": "integer",
465
+ "minimum": 1,
466
+ "maximum": 100
467
+ },
468
+ "page": {
469
+ "description": "Page number (default 1)",
470
+ "type": "integer",
471
+ "minimum": 1,
472
+ "maximum": 9007199254740991
473
+ }
474
+ },
475
+ "required": [
476
+ "project"
477
+ ],
478
+ "additionalProperties": false
479
+ },
480
+ "output_schema": {
481
+ "type": "object",
482
+ "properties": {
483
+ "issues": {
484
+ "type": "array",
485
+ "items": {
486
+ "type": "object",
487
+ "properties": {
488
+ "iid": {
489
+ "type": "number",
490
+ "description": "Issue IID (project-scoped ID)"
491
+ },
492
+ "title": {
493
+ "type": "string",
494
+ "description": "Issue title"
495
+ },
496
+ "state": {
497
+ "type": "string",
498
+ "description": "Issue state: opened or closed"
499
+ },
500
+ "description": {
501
+ "type": "string",
502
+ "description": "Issue description in Markdown"
503
+ },
504
+ "web_url": {
505
+ "type": "string",
506
+ "description": "URL to the issue on GitLab"
507
+ },
508
+ "author_username": {
509
+ "type": "string",
510
+ "description": "Username of the author"
511
+ },
512
+ "labels": {
513
+ "type": "array",
514
+ "items": {
515
+ "type": "string"
516
+ },
517
+ "description": "Label names"
518
+ },
519
+ "assignees": {
520
+ "type": "array",
521
+ "items": {
522
+ "type": "string"
523
+ },
524
+ "description": "Assignee usernames"
525
+ },
526
+ "milestone_title": {
527
+ "type": "string",
528
+ "description": "Milestone title or empty string"
529
+ },
530
+ "confidential": {
531
+ "type": "boolean",
532
+ "description": "Whether the issue is confidential"
533
+ },
534
+ "created_at": {
535
+ "type": "string",
536
+ "description": "Created ISO 8601 timestamp"
537
+ },
538
+ "updated_at": {
539
+ "type": "string",
540
+ "description": "Updated ISO 8601 timestamp"
541
+ },
542
+ "closed_at": {
543
+ "type": "string",
544
+ "description": "Closed ISO 8601 timestamp or empty string"
545
+ }
546
+ },
547
+ "required": [
548
+ "iid",
549
+ "title",
550
+ "state",
551
+ "description",
552
+ "web_url",
553
+ "author_username",
554
+ "labels",
555
+ "assignees",
556
+ "milestone_title",
557
+ "confidential",
558
+ "created_at",
559
+ "updated_at",
560
+ "closed_at"
561
+ ],
562
+ "additionalProperties": false
563
+ },
564
+ "description": "List of issues"
565
+ }
566
+ },
567
+ "required": [
568
+ "issues"
569
+ ],
570
+ "additionalProperties": false
571
+ }
572
+ },
573
+ {
574
+ "name": "get_issue",
575
+ "displayName": "Get Issue",
576
+ "description": "Get detailed information about a specific issue.",
577
+ "summary": "Get issue details",
578
+ "icon": "circle-dot",
579
+ "group": "Issues",
580
+ "input_schema": {
581
+ "type": "object",
582
+ "properties": {
583
+ "project": {
584
+ "type": "string",
585
+ "minLength": 1,
586
+ "description": "Project path (e.g., \"group/project\") or numeric project ID"
587
+ },
588
+ "issue_iid": {
589
+ "type": "integer",
590
+ "minimum": 1,
591
+ "maximum": 9007199254740991,
592
+ "description": "Issue IID (project-scoped ID)"
593
+ }
594
+ },
595
+ "required": [
596
+ "project",
597
+ "issue_iid"
598
+ ],
599
+ "additionalProperties": false
600
+ },
601
+ "output_schema": {
602
+ "type": "object",
603
+ "properties": {
604
+ "issue": {
605
+ "type": "object",
606
+ "properties": {
607
+ "iid": {
608
+ "type": "number",
609
+ "description": "Issue IID (project-scoped ID)"
610
+ },
611
+ "title": {
612
+ "type": "string",
613
+ "description": "Issue title"
614
+ },
615
+ "state": {
616
+ "type": "string",
617
+ "description": "Issue state: opened or closed"
618
+ },
619
+ "description": {
620
+ "type": "string",
621
+ "description": "Issue description in Markdown"
622
+ },
623
+ "web_url": {
624
+ "type": "string",
625
+ "description": "URL to the issue on GitLab"
626
+ },
627
+ "author_username": {
628
+ "type": "string",
629
+ "description": "Username of the author"
630
+ },
631
+ "labels": {
632
+ "type": "array",
633
+ "items": {
634
+ "type": "string"
635
+ },
636
+ "description": "Label names"
637
+ },
638
+ "assignees": {
639
+ "type": "array",
640
+ "items": {
641
+ "type": "string"
642
+ },
643
+ "description": "Assignee usernames"
644
+ },
645
+ "milestone_title": {
646
+ "type": "string",
647
+ "description": "Milestone title or empty string"
648
+ },
649
+ "confidential": {
650
+ "type": "boolean",
651
+ "description": "Whether the issue is confidential"
652
+ },
653
+ "created_at": {
654
+ "type": "string",
655
+ "description": "Created ISO 8601 timestamp"
656
+ },
657
+ "updated_at": {
658
+ "type": "string",
659
+ "description": "Updated ISO 8601 timestamp"
660
+ },
661
+ "closed_at": {
662
+ "type": "string",
663
+ "description": "Closed ISO 8601 timestamp or empty string"
664
+ }
665
+ },
666
+ "required": [
667
+ "iid",
668
+ "title",
669
+ "state",
670
+ "description",
671
+ "web_url",
672
+ "author_username",
673
+ "labels",
674
+ "assignees",
675
+ "milestone_title",
676
+ "confidential",
677
+ "created_at",
678
+ "updated_at",
679
+ "closed_at"
680
+ ],
681
+ "additionalProperties": false,
682
+ "description": "The issue"
683
+ }
684
+ },
685
+ "required": [
686
+ "issue"
687
+ ],
688
+ "additionalProperties": false
689
+ }
690
+ },
691
+ {
692
+ "name": "create_issue",
693
+ "displayName": "Create Issue",
694
+ "description": "Create a new issue in a project.",
695
+ "summary": "Create a new issue",
696
+ "icon": "plus-circle",
697
+ "group": "Issues",
698
+ "input_schema": {
699
+ "type": "object",
700
+ "properties": {
701
+ "project": {
702
+ "type": "string",
703
+ "minLength": 1,
704
+ "description": "Project path (e.g., \"group/project\") or numeric project ID"
705
+ },
706
+ "title": {
707
+ "type": "string",
708
+ "minLength": 1,
709
+ "description": "Issue title"
710
+ },
711
+ "description": {
712
+ "description": "Issue description in Markdown",
713
+ "type": "string"
714
+ },
715
+ "labels": {
716
+ "description": "Comma-separated list of label names",
717
+ "type": "string"
718
+ },
719
+ "assignee_ids": {
720
+ "description": "User IDs to assign",
721
+ "type": "array",
722
+ "items": {
723
+ "type": "number"
724
+ }
725
+ },
726
+ "milestone_id": {
727
+ "description": "Milestone ID",
728
+ "type": "number"
729
+ },
730
+ "confidential": {
731
+ "description": "Whether the issue is confidential",
732
+ "type": "boolean"
733
+ }
734
+ },
735
+ "required": [
736
+ "project",
737
+ "title"
738
+ ],
739
+ "additionalProperties": false
740
+ },
741
+ "output_schema": {
742
+ "type": "object",
743
+ "properties": {
744
+ "issue": {
745
+ "type": "object",
746
+ "properties": {
747
+ "iid": {
748
+ "type": "number",
749
+ "description": "Issue IID (project-scoped ID)"
750
+ },
751
+ "title": {
752
+ "type": "string",
753
+ "description": "Issue title"
754
+ },
755
+ "state": {
756
+ "type": "string",
757
+ "description": "Issue state: opened or closed"
758
+ },
759
+ "description": {
760
+ "type": "string",
761
+ "description": "Issue description in Markdown"
762
+ },
763
+ "web_url": {
764
+ "type": "string",
765
+ "description": "URL to the issue on GitLab"
766
+ },
767
+ "author_username": {
768
+ "type": "string",
769
+ "description": "Username of the author"
770
+ },
771
+ "labels": {
772
+ "type": "array",
773
+ "items": {
774
+ "type": "string"
775
+ },
776
+ "description": "Label names"
777
+ },
778
+ "assignees": {
779
+ "type": "array",
780
+ "items": {
781
+ "type": "string"
782
+ },
783
+ "description": "Assignee usernames"
784
+ },
785
+ "milestone_title": {
786
+ "type": "string",
787
+ "description": "Milestone title or empty string"
788
+ },
789
+ "confidential": {
790
+ "type": "boolean",
791
+ "description": "Whether the issue is confidential"
792
+ },
793
+ "created_at": {
794
+ "type": "string",
795
+ "description": "Created ISO 8601 timestamp"
796
+ },
797
+ "updated_at": {
798
+ "type": "string",
799
+ "description": "Updated ISO 8601 timestamp"
800
+ },
801
+ "closed_at": {
802
+ "type": "string",
803
+ "description": "Closed ISO 8601 timestamp or empty string"
804
+ }
805
+ },
806
+ "required": [
807
+ "iid",
808
+ "title",
809
+ "state",
810
+ "description",
811
+ "web_url",
812
+ "author_username",
813
+ "labels",
814
+ "assignees",
815
+ "milestone_title",
816
+ "confidential",
817
+ "created_at",
818
+ "updated_at",
819
+ "closed_at"
820
+ ],
821
+ "additionalProperties": false,
822
+ "description": "The created issue"
823
+ }
824
+ },
825
+ "required": [
826
+ "issue"
827
+ ],
828
+ "additionalProperties": false
829
+ }
830
+ },
831
+ {
832
+ "name": "update_issue",
833
+ "displayName": "Update Issue",
834
+ "description": "Update an existing issue. Only specified fields are changed.",
835
+ "summary": "Update an issue",
836
+ "icon": "pencil",
837
+ "group": "Issues",
838
+ "input_schema": {
839
+ "type": "object",
840
+ "properties": {
841
+ "project": {
842
+ "type": "string",
843
+ "minLength": 1,
844
+ "description": "Project path (e.g., \"group/project\") or numeric project ID"
845
+ },
846
+ "issue_iid": {
847
+ "type": "integer",
848
+ "minimum": 1,
849
+ "maximum": 9007199254740991,
850
+ "description": "Issue IID (project-scoped ID)"
851
+ },
852
+ "title": {
853
+ "description": "New title",
854
+ "type": "string"
855
+ },
856
+ "description": {
857
+ "description": "New description in Markdown",
858
+ "type": "string"
859
+ },
860
+ "state_event": {
861
+ "description": "Transition the issue state",
862
+ "type": "string",
863
+ "enum": [
864
+ "close",
865
+ "reopen"
866
+ ]
867
+ },
868
+ "labels": {
869
+ "description": "Comma-separated list of label names (replaces existing)",
870
+ "type": "string"
871
+ },
872
+ "assignee_ids": {
873
+ "description": "User IDs to assign (replaces existing)",
874
+ "type": "array",
875
+ "items": {
876
+ "type": "number"
877
+ }
878
+ },
879
+ "milestone_id": {
880
+ "description": "Milestone ID",
881
+ "type": "number"
882
+ },
883
+ "confidential": {
884
+ "description": "Whether the issue is confidential",
885
+ "type": "boolean"
886
+ }
887
+ },
888
+ "required": [
889
+ "project",
890
+ "issue_iid"
891
+ ],
892
+ "additionalProperties": false
893
+ },
894
+ "output_schema": {
895
+ "type": "object",
896
+ "properties": {
897
+ "issue": {
898
+ "type": "object",
899
+ "properties": {
900
+ "iid": {
901
+ "type": "number",
902
+ "description": "Issue IID (project-scoped ID)"
903
+ },
904
+ "title": {
905
+ "type": "string",
906
+ "description": "Issue title"
907
+ },
908
+ "state": {
909
+ "type": "string",
910
+ "description": "Issue state: opened or closed"
911
+ },
912
+ "description": {
913
+ "type": "string",
914
+ "description": "Issue description in Markdown"
915
+ },
916
+ "web_url": {
917
+ "type": "string",
918
+ "description": "URL to the issue on GitLab"
919
+ },
920
+ "author_username": {
921
+ "type": "string",
922
+ "description": "Username of the author"
923
+ },
924
+ "labels": {
925
+ "type": "array",
926
+ "items": {
927
+ "type": "string"
928
+ },
929
+ "description": "Label names"
930
+ },
931
+ "assignees": {
932
+ "type": "array",
933
+ "items": {
934
+ "type": "string"
935
+ },
936
+ "description": "Assignee usernames"
937
+ },
938
+ "milestone_title": {
939
+ "type": "string",
940
+ "description": "Milestone title or empty string"
941
+ },
942
+ "confidential": {
943
+ "type": "boolean",
944
+ "description": "Whether the issue is confidential"
945
+ },
946
+ "created_at": {
947
+ "type": "string",
948
+ "description": "Created ISO 8601 timestamp"
949
+ },
950
+ "updated_at": {
951
+ "type": "string",
952
+ "description": "Updated ISO 8601 timestamp"
953
+ },
954
+ "closed_at": {
955
+ "type": "string",
956
+ "description": "Closed ISO 8601 timestamp or empty string"
957
+ }
958
+ },
959
+ "required": [
960
+ "iid",
961
+ "title",
962
+ "state",
963
+ "description",
964
+ "web_url",
965
+ "author_username",
966
+ "labels",
967
+ "assignees",
968
+ "milestone_title",
969
+ "confidential",
970
+ "created_at",
971
+ "updated_at",
972
+ "closed_at"
973
+ ],
974
+ "additionalProperties": false,
975
+ "description": "The updated issue"
976
+ }
977
+ },
978
+ "required": [
979
+ "issue"
980
+ ],
981
+ "additionalProperties": false
982
+ }
983
+ },
984
+ {
985
+ "name": "list_merge_requests",
986
+ "displayName": "List Merge Requests",
987
+ "description": "List merge requests for a project. By default returns opened MRs sorted by creation date. Can filter by state, labels, author, assignee, and more.",
988
+ "summary": "List merge requests for a project",
989
+ "icon": "git-pull-request",
990
+ "group": "Merge Requests",
991
+ "input_schema": {
992
+ "type": "object",
993
+ "properties": {
994
+ "project": {
995
+ "type": "string",
996
+ "minLength": 1,
997
+ "description": "Project path (e.g., \"group/project\") or numeric project ID"
998
+ },
999
+ "state": {
1000
+ "description": "MR state filter (default: opened)",
1001
+ "type": "string",
1002
+ "enum": [
1003
+ "opened",
1004
+ "closed",
1005
+ "merged",
1006
+ "locked",
1007
+ "all"
1008
+ ]
1009
+ },
1010
+ "labels": {
1011
+ "description": "Comma-separated list of label names to filter by",
1012
+ "type": "string"
1013
+ },
1014
+ "author_username": {
1015
+ "description": "Filter by author username",
1016
+ "type": "string"
1017
+ },
1018
+ "assignee_id": {
1019
+ "description": "Filter by assignee user ID",
1020
+ "type": "number"
1021
+ },
1022
+ "source_branch": {
1023
+ "description": "Filter by source branch",
1024
+ "type": "string"
1025
+ },
1026
+ "target_branch": {
1027
+ "description": "Filter by target branch",
1028
+ "type": "string"
1029
+ },
1030
+ "search": {
1031
+ "description": "Search in title and description",
1032
+ "type": "string"
1033
+ },
1034
+ "order_by": {
1035
+ "description": "Sort field (default: created_at)",
1036
+ "type": "string",
1037
+ "enum": [
1038
+ "created_at",
1039
+ "updated_at"
1040
+ ]
1041
+ },
1042
+ "sort": {
1043
+ "description": "Sort direction (default: desc)",
1044
+ "type": "string",
1045
+ "enum": [
1046
+ "asc",
1047
+ "desc"
1048
+ ]
1049
+ },
1050
+ "per_page": {
1051
+ "description": "Results per page (default 20, max 100)",
1052
+ "type": "integer",
1053
+ "minimum": 1,
1054
+ "maximum": 100
1055
+ },
1056
+ "page": {
1057
+ "description": "Page number (default 1)",
1058
+ "type": "integer",
1059
+ "minimum": 1,
1060
+ "maximum": 9007199254740991
1061
+ }
1062
+ },
1063
+ "required": [
1064
+ "project"
1065
+ ],
1066
+ "additionalProperties": false
1067
+ },
1068
+ "output_schema": {
1069
+ "type": "object",
1070
+ "properties": {
1071
+ "merge_requests": {
1072
+ "type": "array",
1073
+ "items": {
1074
+ "type": "object",
1075
+ "properties": {
1076
+ "iid": {
1077
+ "type": "number",
1078
+ "description": "Merge request IID (project-scoped ID)"
1079
+ },
1080
+ "title": {
1081
+ "type": "string",
1082
+ "description": "Merge request title"
1083
+ },
1084
+ "state": {
1085
+ "type": "string",
1086
+ "description": "MR state: opened, closed, merged, or locked"
1087
+ },
1088
+ "description": {
1089
+ "type": "string",
1090
+ "description": "Merge request description in Markdown"
1091
+ },
1092
+ "web_url": {
1093
+ "type": "string",
1094
+ "description": "URL to the MR on GitLab"
1095
+ },
1096
+ "author_username": {
1097
+ "type": "string",
1098
+ "description": "Username of the author"
1099
+ },
1100
+ "source_branch": {
1101
+ "type": "string",
1102
+ "description": "Source branch name"
1103
+ },
1104
+ "target_branch": {
1105
+ "type": "string",
1106
+ "description": "Target branch name"
1107
+ },
1108
+ "labels": {
1109
+ "type": "array",
1110
+ "items": {
1111
+ "type": "string"
1112
+ },
1113
+ "description": "Label names"
1114
+ },
1115
+ "draft": {
1116
+ "type": "boolean",
1117
+ "description": "Whether this is a draft MR"
1118
+ },
1119
+ "merged_by_username": {
1120
+ "type": "string",
1121
+ "description": "Username who merged, or empty string"
1122
+ },
1123
+ "merge_status": {
1124
+ "type": "string",
1125
+ "description": "Merge status (e.g., can_be_merged, cannot_be_merged)"
1126
+ },
1127
+ "has_conflicts": {
1128
+ "type": "boolean",
1129
+ "description": "Whether the MR has merge conflicts"
1130
+ },
1131
+ "created_at": {
1132
+ "type": "string",
1133
+ "description": "Created ISO 8601 timestamp"
1134
+ },
1135
+ "updated_at": {
1136
+ "type": "string",
1137
+ "description": "Updated ISO 8601 timestamp"
1138
+ }
1139
+ },
1140
+ "required": [
1141
+ "iid",
1142
+ "title",
1143
+ "state",
1144
+ "description",
1145
+ "web_url",
1146
+ "author_username",
1147
+ "source_branch",
1148
+ "target_branch",
1149
+ "labels",
1150
+ "draft",
1151
+ "merged_by_username",
1152
+ "merge_status",
1153
+ "has_conflicts",
1154
+ "created_at",
1155
+ "updated_at"
1156
+ ],
1157
+ "additionalProperties": false
1158
+ },
1159
+ "description": "List of merge requests"
1160
+ }
1161
+ },
1162
+ "required": [
1163
+ "merge_requests"
1164
+ ],
1165
+ "additionalProperties": false
1166
+ }
1167
+ },
1168
+ {
1169
+ "name": "get_merge_request",
1170
+ "displayName": "Get Merge Request",
1171
+ "description": "Get detailed information about a specific merge request.",
1172
+ "summary": "Get merge request details",
1173
+ "icon": "git-pull-request",
1174
+ "group": "Merge Requests",
1175
+ "input_schema": {
1176
+ "type": "object",
1177
+ "properties": {
1178
+ "project": {
1179
+ "type": "string",
1180
+ "minLength": 1,
1181
+ "description": "Project path (e.g., \"group/project\") or numeric project ID"
1182
+ },
1183
+ "merge_request_iid": {
1184
+ "type": "integer",
1185
+ "minimum": 1,
1186
+ "maximum": 9007199254740991,
1187
+ "description": "Merge request IID (project-scoped ID)"
1188
+ }
1189
+ },
1190
+ "required": [
1191
+ "project",
1192
+ "merge_request_iid"
1193
+ ],
1194
+ "additionalProperties": false
1195
+ },
1196
+ "output_schema": {
1197
+ "type": "object",
1198
+ "properties": {
1199
+ "merge_request": {
1200
+ "type": "object",
1201
+ "properties": {
1202
+ "iid": {
1203
+ "type": "number",
1204
+ "description": "Merge request IID (project-scoped ID)"
1205
+ },
1206
+ "title": {
1207
+ "type": "string",
1208
+ "description": "Merge request title"
1209
+ },
1210
+ "state": {
1211
+ "type": "string",
1212
+ "description": "MR state: opened, closed, merged, or locked"
1213
+ },
1214
+ "description": {
1215
+ "type": "string",
1216
+ "description": "Merge request description in Markdown"
1217
+ },
1218
+ "web_url": {
1219
+ "type": "string",
1220
+ "description": "URL to the MR on GitLab"
1221
+ },
1222
+ "author_username": {
1223
+ "type": "string",
1224
+ "description": "Username of the author"
1225
+ },
1226
+ "source_branch": {
1227
+ "type": "string",
1228
+ "description": "Source branch name"
1229
+ },
1230
+ "target_branch": {
1231
+ "type": "string",
1232
+ "description": "Target branch name"
1233
+ },
1234
+ "labels": {
1235
+ "type": "array",
1236
+ "items": {
1237
+ "type": "string"
1238
+ },
1239
+ "description": "Label names"
1240
+ },
1241
+ "draft": {
1242
+ "type": "boolean",
1243
+ "description": "Whether this is a draft MR"
1244
+ },
1245
+ "merged_by_username": {
1246
+ "type": "string",
1247
+ "description": "Username who merged, or empty string"
1248
+ },
1249
+ "merge_status": {
1250
+ "type": "string",
1251
+ "description": "Merge status (e.g., can_be_merged, cannot_be_merged)"
1252
+ },
1253
+ "has_conflicts": {
1254
+ "type": "boolean",
1255
+ "description": "Whether the MR has merge conflicts"
1256
+ },
1257
+ "created_at": {
1258
+ "type": "string",
1259
+ "description": "Created ISO 8601 timestamp"
1260
+ },
1261
+ "updated_at": {
1262
+ "type": "string",
1263
+ "description": "Updated ISO 8601 timestamp"
1264
+ }
1265
+ },
1266
+ "required": [
1267
+ "iid",
1268
+ "title",
1269
+ "state",
1270
+ "description",
1271
+ "web_url",
1272
+ "author_username",
1273
+ "source_branch",
1274
+ "target_branch",
1275
+ "labels",
1276
+ "draft",
1277
+ "merged_by_username",
1278
+ "merge_status",
1279
+ "has_conflicts",
1280
+ "created_at",
1281
+ "updated_at"
1282
+ ],
1283
+ "additionalProperties": false,
1284
+ "description": "The merge request"
1285
+ }
1286
+ },
1287
+ "required": [
1288
+ "merge_request"
1289
+ ],
1290
+ "additionalProperties": false
1291
+ }
1292
+ },
1293
+ {
1294
+ "name": "create_merge_request",
1295
+ "displayName": "Create Merge Request",
1296
+ "description": "Create a new merge request in a project.",
1297
+ "summary": "Create a new merge request",
1298
+ "icon": "git-pull-request-arrow",
1299
+ "group": "Merge Requests",
1300
+ "input_schema": {
1301
+ "type": "object",
1302
+ "properties": {
1303
+ "project": {
1304
+ "type": "string",
1305
+ "minLength": 1,
1306
+ "description": "Project path (e.g., \"group/project\") or numeric project ID"
1307
+ },
1308
+ "title": {
1309
+ "type": "string",
1310
+ "minLength": 1,
1311
+ "description": "Merge request title"
1312
+ },
1313
+ "source_branch": {
1314
+ "type": "string",
1315
+ "minLength": 1,
1316
+ "description": "Source branch name"
1317
+ },
1318
+ "target_branch": {
1319
+ "type": "string",
1320
+ "minLength": 1,
1321
+ "description": "Target branch name"
1322
+ },
1323
+ "description": {
1324
+ "description": "MR description in Markdown",
1325
+ "type": "string"
1326
+ },
1327
+ "labels": {
1328
+ "description": "Comma-separated list of label names",
1329
+ "type": "string"
1330
+ },
1331
+ "assignee_id": {
1332
+ "description": "User ID to assign",
1333
+ "type": "number"
1334
+ },
1335
+ "milestone_id": {
1336
+ "description": "Milestone ID",
1337
+ "type": "number"
1338
+ },
1339
+ "remove_source_branch": {
1340
+ "description": "Delete source branch after merge",
1341
+ "type": "boolean"
1342
+ },
1343
+ "squash": {
1344
+ "description": "Squash commits when merging",
1345
+ "type": "boolean"
1346
+ }
1347
+ },
1348
+ "required": [
1349
+ "project",
1350
+ "title",
1351
+ "source_branch",
1352
+ "target_branch"
1353
+ ],
1354
+ "additionalProperties": false
1355
+ },
1356
+ "output_schema": {
1357
+ "type": "object",
1358
+ "properties": {
1359
+ "merge_request": {
1360
+ "type": "object",
1361
+ "properties": {
1362
+ "iid": {
1363
+ "type": "number",
1364
+ "description": "Merge request IID (project-scoped ID)"
1365
+ },
1366
+ "title": {
1367
+ "type": "string",
1368
+ "description": "Merge request title"
1369
+ },
1370
+ "state": {
1371
+ "type": "string",
1372
+ "description": "MR state: opened, closed, merged, or locked"
1373
+ },
1374
+ "description": {
1375
+ "type": "string",
1376
+ "description": "Merge request description in Markdown"
1377
+ },
1378
+ "web_url": {
1379
+ "type": "string",
1380
+ "description": "URL to the MR on GitLab"
1381
+ },
1382
+ "author_username": {
1383
+ "type": "string",
1384
+ "description": "Username of the author"
1385
+ },
1386
+ "source_branch": {
1387
+ "type": "string",
1388
+ "description": "Source branch name"
1389
+ },
1390
+ "target_branch": {
1391
+ "type": "string",
1392
+ "description": "Target branch name"
1393
+ },
1394
+ "labels": {
1395
+ "type": "array",
1396
+ "items": {
1397
+ "type": "string"
1398
+ },
1399
+ "description": "Label names"
1400
+ },
1401
+ "draft": {
1402
+ "type": "boolean",
1403
+ "description": "Whether this is a draft MR"
1404
+ },
1405
+ "merged_by_username": {
1406
+ "type": "string",
1407
+ "description": "Username who merged, or empty string"
1408
+ },
1409
+ "merge_status": {
1410
+ "type": "string",
1411
+ "description": "Merge status (e.g., can_be_merged, cannot_be_merged)"
1412
+ },
1413
+ "has_conflicts": {
1414
+ "type": "boolean",
1415
+ "description": "Whether the MR has merge conflicts"
1416
+ },
1417
+ "created_at": {
1418
+ "type": "string",
1419
+ "description": "Created ISO 8601 timestamp"
1420
+ },
1421
+ "updated_at": {
1422
+ "type": "string",
1423
+ "description": "Updated ISO 8601 timestamp"
1424
+ }
1425
+ },
1426
+ "required": [
1427
+ "iid",
1428
+ "title",
1429
+ "state",
1430
+ "description",
1431
+ "web_url",
1432
+ "author_username",
1433
+ "source_branch",
1434
+ "target_branch",
1435
+ "labels",
1436
+ "draft",
1437
+ "merged_by_username",
1438
+ "merge_status",
1439
+ "has_conflicts",
1440
+ "created_at",
1441
+ "updated_at"
1442
+ ],
1443
+ "additionalProperties": false,
1444
+ "description": "The created merge request"
1445
+ }
1446
+ },
1447
+ "required": [
1448
+ "merge_request"
1449
+ ],
1450
+ "additionalProperties": false
1451
+ }
1452
+ },
1453
+ {
1454
+ "name": "update_merge_request",
1455
+ "displayName": "Update Merge Request",
1456
+ "description": "Update an existing merge request. Only specified fields are changed.",
1457
+ "summary": "Update a merge request",
1458
+ "icon": "pencil",
1459
+ "group": "Merge Requests",
1460
+ "input_schema": {
1461
+ "type": "object",
1462
+ "properties": {
1463
+ "project": {
1464
+ "type": "string",
1465
+ "minLength": 1,
1466
+ "description": "Project path (e.g., \"group/project\") or numeric project ID"
1467
+ },
1468
+ "merge_request_iid": {
1469
+ "type": "integer",
1470
+ "minimum": 1,
1471
+ "maximum": 9007199254740991,
1472
+ "description": "Merge request IID (project-scoped ID)"
1473
+ },
1474
+ "title": {
1475
+ "description": "New title",
1476
+ "type": "string"
1477
+ },
1478
+ "description": {
1479
+ "description": "New description in Markdown",
1480
+ "type": "string"
1481
+ },
1482
+ "state_event": {
1483
+ "description": "Transition the MR state",
1484
+ "type": "string",
1485
+ "enum": [
1486
+ "close",
1487
+ "reopen"
1488
+ ]
1489
+ },
1490
+ "labels": {
1491
+ "description": "Comma-separated list of label names (replaces existing)",
1492
+ "type": "string"
1493
+ },
1494
+ "assignee_id": {
1495
+ "description": "User ID to assign",
1496
+ "type": "number"
1497
+ },
1498
+ "target_branch": {
1499
+ "description": "New target branch",
1500
+ "type": "string"
1501
+ },
1502
+ "remove_source_branch": {
1503
+ "description": "Delete source branch after merge",
1504
+ "type": "boolean"
1505
+ },
1506
+ "squash": {
1507
+ "description": "Squash commits when merging",
1508
+ "type": "boolean"
1509
+ }
1510
+ },
1511
+ "required": [
1512
+ "project",
1513
+ "merge_request_iid"
1514
+ ],
1515
+ "additionalProperties": false
1516
+ },
1517
+ "output_schema": {
1518
+ "type": "object",
1519
+ "properties": {
1520
+ "merge_request": {
1521
+ "type": "object",
1522
+ "properties": {
1523
+ "iid": {
1524
+ "type": "number",
1525
+ "description": "Merge request IID (project-scoped ID)"
1526
+ },
1527
+ "title": {
1528
+ "type": "string",
1529
+ "description": "Merge request title"
1530
+ },
1531
+ "state": {
1532
+ "type": "string",
1533
+ "description": "MR state: opened, closed, merged, or locked"
1534
+ },
1535
+ "description": {
1536
+ "type": "string",
1537
+ "description": "Merge request description in Markdown"
1538
+ },
1539
+ "web_url": {
1540
+ "type": "string",
1541
+ "description": "URL to the MR on GitLab"
1542
+ },
1543
+ "author_username": {
1544
+ "type": "string",
1545
+ "description": "Username of the author"
1546
+ },
1547
+ "source_branch": {
1548
+ "type": "string",
1549
+ "description": "Source branch name"
1550
+ },
1551
+ "target_branch": {
1552
+ "type": "string",
1553
+ "description": "Target branch name"
1554
+ },
1555
+ "labels": {
1556
+ "type": "array",
1557
+ "items": {
1558
+ "type": "string"
1559
+ },
1560
+ "description": "Label names"
1561
+ },
1562
+ "draft": {
1563
+ "type": "boolean",
1564
+ "description": "Whether this is a draft MR"
1565
+ },
1566
+ "merged_by_username": {
1567
+ "type": "string",
1568
+ "description": "Username who merged, or empty string"
1569
+ },
1570
+ "merge_status": {
1571
+ "type": "string",
1572
+ "description": "Merge status (e.g., can_be_merged, cannot_be_merged)"
1573
+ },
1574
+ "has_conflicts": {
1575
+ "type": "boolean",
1576
+ "description": "Whether the MR has merge conflicts"
1577
+ },
1578
+ "created_at": {
1579
+ "type": "string",
1580
+ "description": "Created ISO 8601 timestamp"
1581
+ },
1582
+ "updated_at": {
1583
+ "type": "string",
1584
+ "description": "Updated ISO 8601 timestamp"
1585
+ }
1586
+ },
1587
+ "required": [
1588
+ "iid",
1589
+ "title",
1590
+ "state",
1591
+ "description",
1592
+ "web_url",
1593
+ "author_username",
1594
+ "source_branch",
1595
+ "target_branch",
1596
+ "labels",
1597
+ "draft",
1598
+ "merged_by_username",
1599
+ "merge_status",
1600
+ "has_conflicts",
1601
+ "created_at",
1602
+ "updated_at"
1603
+ ],
1604
+ "additionalProperties": false,
1605
+ "description": "The updated merge request"
1606
+ }
1607
+ },
1608
+ "required": [
1609
+ "merge_request"
1610
+ ],
1611
+ "additionalProperties": false
1612
+ }
1613
+ },
1614
+ {
1615
+ "name": "merge_merge_request",
1616
+ "displayName": "Merge a Merge Request",
1617
+ "description": "Accept and merge a merge request. Optionally squash commits or delete the source branch.",
1618
+ "summary": "Merge a merge request",
1619
+ "icon": "git-merge",
1620
+ "group": "Merge Requests",
1621
+ "input_schema": {
1622
+ "type": "object",
1623
+ "properties": {
1624
+ "project": {
1625
+ "type": "string",
1626
+ "minLength": 1,
1627
+ "description": "Project path (e.g., \"group/project\") or numeric project ID"
1628
+ },
1629
+ "merge_request_iid": {
1630
+ "type": "integer",
1631
+ "minimum": 1,
1632
+ "maximum": 9007199254740991,
1633
+ "description": "Merge request IID (project-scoped ID)"
1634
+ },
1635
+ "merge_commit_message": {
1636
+ "description": "Custom merge commit message",
1637
+ "type": "string"
1638
+ },
1639
+ "squash_commit_message": {
1640
+ "description": "Custom squash commit message",
1641
+ "type": "string"
1642
+ },
1643
+ "squash": {
1644
+ "description": "Squash commits when merging",
1645
+ "type": "boolean"
1646
+ },
1647
+ "should_remove_source_branch": {
1648
+ "description": "Delete source branch after merge",
1649
+ "type": "boolean"
1650
+ }
1651
+ },
1652
+ "required": [
1653
+ "project",
1654
+ "merge_request_iid"
1655
+ ],
1656
+ "additionalProperties": false
1657
+ },
1658
+ "output_schema": {
1659
+ "type": "object",
1660
+ "properties": {
1661
+ "merge_request": {
1662
+ "type": "object",
1663
+ "properties": {
1664
+ "iid": {
1665
+ "type": "number",
1666
+ "description": "Merge request IID (project-scoped ID)"
1667
+ },
1668
+ "title": {
1669
+ "type": "string",
1670
+ "description": "Merge request title"
1671
+ },
1672
+ "state": {
1673
+ "type": "string",
1674
+ "description": "MR state: opened, closed, merged, or locked"
1675
+ },
1676
+ "description": {
1677
+ "type": "string",
1678
+ "description": "Merge request description in Markdown"
1679
+ },
1680
+ "web_url": {
1681
+ "type": "string",
1682
+ "description": "URL to the MR on GitLab"
1683
+ },
1684
+ "author_username": {
1685
+ "type": "string",
1686
+ "description": "Username of the author"
1687
+ },
1688
+ "source_branch": {
1689
+ "type": "string",
1690
+ "description": "Source branch name"
1691
+ },
1692
+ "target_branch": {
1693
+ "type": "string",
1694
+ "description": "Target branch name"
1695
+ },
1696
+ "labels": {
1697
+ "type": "array",
1698
+ "items": {
1699
+ "type": "string"
1700
+ },
1701
+ "description": "Label names"
1702
+ },
1703
+ "draft": {
1704
+ "type": "boolean",
1705
+ "description": "Whether this is a draft MR"
1706
+ },
1707
+ "merged_by_username": {
1708
+ "type": "string",
1709
+ "description": "Username who merged, or empty string"
1710
+ },
1711
+ "merge_status": {
1712
+ "type": "string",
1713
+ "description": "Merge status (e.g., can_be_merged, cannot_be_merged)"
1714
+ },
1715
+ "has_conflicts": {
1716
+ "type": "boolean",
1717
+ "description": "Whether the MR has merge conflicts"
1718
+ },
1719
+ "created_at": {
1720
+ "type": "string",
1721
+ "description": "Created ISO 8601 timestamp"
1722
+ },
1723
+ "updated_at": {
1724
+ "type": "string",
1725
+ "description": "Updated ISO 8601 timestamp"
1726
+ }
1727
+ },
1728
+ "required": [
1729
+ "iid",
1730
+ "title",
1731
+ "state",
1732
+ "description",
1733
+ "web_url",
1734
+ "author_username",
1735
+ "source_branch",
1736
+ "target_branch",
1737
+ "labels",
1738
+ "draft",
1739
+ "merged_by_username",
1740
+ "merge_status",
1741
+ "has_conflicts",
1742
+ "created_at",
1743
+ "updated_at"
1744
+ ],
1745
+ "additionalProperties": false,
1746
+ "description": "The merged merge request"
1747
+ }
1748
+ },
1749
+ "required": [
1750
+ "merge_request"
1751
+ ],
1752
+ "additionalProperties": false
1753
+ }
1754
+ },
1755
+ {
1756
+ "name": "get_merge_request_diff",
1757
+ "displayName": "Get Merge Request Diff",
1758
+ "description": "Get the diff changes of a merge request. Returns per-file diffs.",
1759
+ "summary": "Get the diff of a merge request",
1760
+ "icon": "file-diff",
1761
+ "group": "Merge Requests",
1762
+ "input_schema": {
1763
+ "type": "object",
1764
+ "properties": {
1765
+ "project": {
1766
+ "type": "string",
1767
+ "minLength": 1,
1768
+ "description": "Project path (e.g., \"group/project\") or numeric project ID"
1769
+ },
1770
+ "merge_request_iid": {
1771
+ "type": "integer",
1772
+ "minimum": 1,
1773
+ "maximum": 9007199254740991,
1774
+ "description": "Merge request IID (project-scoped ID)"
1775
+ }
1776
+ },
1777
+ "required": [
1778
+ "project",
1779
+ "merge_request_iid"
1780
+ ],
1781
+ "additionalProperties": false
1782
+ },
1783
+ "output_schema": {
1784
+ "type": "object",
1785
+ "properties": {
1786
+ "diffs": {
1787
+ "type": "array",
1788
+ "items": {
1789
+ "type": "object",
1790
+ "properties": {
1791
+ "old_path": {
1792
+ "type": "string",
1793
+ "description": "Previous file path"
1794
+ },
1795
+ "new_path": {
1796
+ "type": "string",
1797
+ "description": "New file path"
1798
+ },
1799
+ "diff": {
1800
+ "type": "string",
1801
+ "description": "Unified diff text"
1802
+ },
1803
+ "new_file": {
1804
+ "type": "boolean",
1805
+ "description": "Whether this is a new file"
1806
+ },
1807
+ "renamed_file": {
1808
+ "type": "boolean",
1809
+ "description": "Whether this file was renamed"
1810
+ },
1811
+ "deleted_file": {
1812
+ "type": "boolean",
1813
+ "description": "Whether this file was deleted"
1814
+ }
1815
+ },
1816
+ "required": [
1817
+ "old_path",
1818
+ "new_path",
1819
+ "diff",
1820
+ "new_file",
1821
+ "renamed_file",
1822
+ "deleted_file"
1823
+ ],
1824
+ "additionalProperties": false
1825
+ },
1826
+ "description": "List of file diffs"
1827
+ }
1828
+ },
1829
+ "required": [
1830
+ "diffs"
1831
+ ],
1832
+ "additionalProperties": false
1833
+ }
1834
+ },
1835
+ {
1836
+ "name": "list_notes",
1837
+ "displayName": "List Notes",
1838
+ "description": "List notes (comments) on an issue or merge request. System notes (status changes, label updates) are included by default.",
1839
+ "summary": "List notes on an issue or merge request",
1840
+ "icon": "message-square",
1841
+ "group": "Notes",
1842
+ "input_schema": {
1843
+ "type": "object",
1844
+ "properties": {
1845
+ "project": {
1846
+ "type": "string",
1847
+ "minLength": 1,
1848
+ "description": "Project path (e.g., \"group/project\") or numeric project ID"
1849
+ },
1850
+ "noteable_type": {
1851
+ "type": "string",
1852
+ "enum": [
1853
+ "issues",
1854
+ "merge_requests"
1855
+ ],
1856
+ "description": "Type of the noteable: \"issues\" or \"merge_requests\""
1857
+ },
1858
+ "noteable_iid": {
1859
+ "type": "integer",
1860
+ "minimum": 1,
1861
+ "maximum": 9007199254740991,
1862
+ "description": "IID of the issue or merge request"
1863
+ },
1864
+ "order_by": {
1865
+ "description": "Sort field (default: created_at)",
1866
+ "type": "string",
1867
+ "enum": [
1868
+ "created_at",
1869
+ "updated_at"
1870
+ ]
1871
+ },
1872
+ "sort": {
1873
+ "description": "Sort direction (default: desc)",
1874
+ "type": "string",
1875
+ "enum": [
1876
+ "asc",
1877
+ "desc"
1878
+ ]
1879
+ },
1880
+ "per_page": {
1881
+ "description": "Results per page (default 20, max 100)",
1882
+ "type": "integer",
1883
+ "minimum": 1,
1884
+ "maximum": 100
1885
+ },
1886
+ "page": {
1887
+ "description": "Page number (default 1)",
1888
+ "type": "integer",
1889
+ "minimum": 1,
1890
+ "maximum": 9007199254740991
1891
+ }
1892
+ },
1893
+ "required": [
1894
+ "project",
1895
+ "noteable_type",
1896
+ "noteable_iid"
1897
+ ],
1898
+ "additionalProperties": false
1899
+ },
1900
+ "output_schema": {
1901
+ "type": "object",
1902
+ "properties": {
1903
+ "notes": {
1904
+ "type": "array",
1905
+ "items": {
1906
+ "type": "object",
1907
+ "properties": {
1908
+ "id": {
1909
+ "type": "number",
1910
+ "description": "Note ID"
1911
+ },
1912
+ "body": {
1913
+ "type": "string",
1914
+ "description": "Note body in Markdown"
1915
+ },
1916
+ "author_username": {
1917
+ "type": "string",
1918
+ "description": "Username of the commenter"
1919
+ },
1920
+ "system": {
1921
+ "type": "boolean",
1922
+ "description": "Whether this is a system-generated note"
1923
+ },
1924
+ "created_at": {
1925
+ "type": "string",
1926
+ "description": "Created ISO 8601 timestamp"
1927
+ },
1928
+ "updated_at": {
1929
+ "type": "string",
1930
+ "description": "Updated ISO 8601 timestamp"
1931
+ }
1932
+ },
1933
+ "required": [
1934
+ "id",
1935
+ "body",
1936
+ "author_username",
1937
+ "system",
1938
+ "created_at",
1939
+ "updated_at"
1940
+ ],
1941
+ "additionalProperties": false
1942
+ },
1943
+ "description": "List of notes"
1944
+ }
1945
+ },
1946
+ "required": [
1947
+ "notes"
1948
+ ],
1949
+ "additionalProperties": false
1950
+ }
1951
+ },
1952
+ {
1953
+ "name": "create_note",
1954
+ "displayName": "Create Note",
1955
+ "description": "Add a comment (note) to an issue or merge request.",
1956
+ "summary": "Add a comment to an issue or MR",
1957
+ "icon": "message-square-plus",
1958
+ "group": "Notes",
1959
+ "input_schema": {
1960
+ "type": "object",
1961
+ "properties": {
1962
+ "project": {
1963
+ "type": "string",
1964
+ "minLength": 1,
1965
+ "description": "Project path (e.g., \"group/project\") or numeric project ID"
1966
+ },
1967
+ "noteable_type": {
1968
+ "type": "string",
1969
+ "enum": [
1970
+ "issues",
1971
+ "merge_requests"
1972
+ ],
1973
+ "description": "Type of the noteable: \"issues\" or \"merge_requests\""
1974
+ },
1975
+ "noteable_iid": {
1976
+ "type": "integer",
1977
+ "minimum": 1,
1978
+ "maximum": 9007199254740991,
1979
+ "description": "IID of the issue or merge request"
1980
+ },
1981
+ "body": {
1982
+ "type": "string",
1983
+ "minLength": 1,
1984
+ "description": "Note body in Markdown"
1985
+ }
1986
+ },
1987
+ "required": [
1988
+ "project",
1989
+ "noteable_type",
1990
+ "noteable_iid",
1991
+ "body"
1992
+ ],
1993
+ "additionalProperties": false
1994
+ },
1995
+ "output_schema": {
1996
+ "type": "object",
1997
+ "properties": {
1998
+ "note": {
1999
+ "type": "object",
2000
+ "properties": {
2001
+ "id": {
2002
+ "type": "number",
2003
+ "description": "Note ID"
2004
+ },
2005
+ "body": {
2006
+ "type": "string",
2007
+ "description": "Note body in Markdown"
2008
+ },
2009
+ "author_username": {
2010
+ "type": "string",
2011
+ "description": "Username of the commenter"
2012
+ },
2013
+ "system": {
2014
+ "type": "boolean",
2015
+ "description": "Whether this is a system-generated note"
2016
+ },
2017
+ "created_at": {
2018
+ "type": "string",
2019
+ "description": "Created ISO 8601 timestamp"
2020
+ },
2021
+ "updated_at": {
2022
+ "type": "string",
2023
+ "description": "Updated ISO 8601 timestamp"
2024
+ }
2025
+ },
2026
+ "required": [
2027
+ "id",
2028
+ "body",
2029
+ "author_username",
2030
+ "system",
2031
+ "created_at",
2032
+ "updated_at"
2033
+ ],
2034
+ "additionalProperties": false,
2035
+ "description": "The created note"
2036
+ }
2037
+ },
2038
+ "required": [
2039
+ "note"
2040
+ ],
2041
+ "additionalProperties": false
2042
+ }
2043
+ },
2044
+ {
2045
+ "name": "list_branches",
2046
+ "displayName": "List Branches",
2047
+ "description": "List branches for a project. Can filter by search query.",
2048
+ "summary": "List branches for a project",
2049
+ "icon": "git-branch",
2050
+ "group": "Branches",
2051
+ "input_schema": {
2052
+ "type": "object",
2053
+ "properties": {
2054
+ "project": {
2055
+ "type": "string",
2056
+ "minLength": 1,
2057
+ "description": "Project path (e.g., \"group/project\") or numeric project ID"
2058
+ },
2059
+ "search": {
2060
+ "description": "Search by branch name",
2061
+ "type": "string"
2062
+ },
2063
+ "per_page": {
2064
+ "description": "Results per page (default 20, max 100)",
2065
+ "type": "integer",
2066
+ "minimum": 1,
2067
+ "maximum": 100
2068
+ },
2069
+ "page": {
2070
+ "description": "Page number (default 1)",
2071
+ "type": "integer",
2072
+ "minimum": 1,
2073
+ "maximum": 9007199254740991
2074
+ }
2075
+ },
2076
+ "required": [
2077
+ "project"
2078
+ ],
2079
+ "additionalProperties": false
2080
+ },
2081
+ "output_schema": {
2082
+ "type": "object",
2083
+ "properties": {
2084
+ "branches": {
2085
+ "type": "array",
2086
+ "items": {
2087
+ "type": "object",
2088
+ "properties": {
2089
+ "name": {
2090
+ "type": "string",
2091
+ "description": "Branch name"
2092
+ },
2093
+ "protected": {
2094
+ "type": "boolean",
2095
+ "description": "Whether the branch is protected"
2096
+ },
2097
+ "default": {
2098
+ "type": "boolean",
2099
+ "description": "Whether this is the default branch"
2100
+ },
2101
+ "sha": {
2102
+ "type": "string",
2103
+ "description": "SHA of the branch HEAD commit"
2104
+ },
2105
+ "web_url": {
2106
+ "type": "string",
2107
+ "description": "URL to the branch on GitLab"
2108
+ }
2109
+ },
2110
+ "required": [
2111
+ "name",
2112
+ "protected",
2113
+ "default",
2114
+ "sha",
2115
+ "web_url"
2116
+ ],
2117
+ "additionalProperties": false
2118
+ },
2119
+ "description": "List of branches"
2120
+ }
2121
+ },
2122
+ "required": [
2123
+ "branches"
2124
+ ],
2125
+ "additionalProperties": false
2126
+ }
2127
+ },
2128
+ {
2129
+ "name": "get_file_content",
2130
+ "displayName": "Get File Content",
2131
+ "description": "Read a file from a repository. Returns the decoded content as text. Use the ref parameter to read from a specific branch or commit.",
2132
+ "summary": "Read a file from a repository",
2133
+ "icon": "file-text",
2134
+ "group": "Content",
2135
+ "input_schema": {
2136
+ "type": "object",
2137
+ "properties": {
2138
+ "project": {
2139
+ "type": "string",
2140
+ "minLength": 1,
2141
+ "description": "Project path (e.g., \"group/project\") or numeric project ID"
2142
+ },
2143
+ "file_path": {
2144
+ "type": "string",
2145
+ "minLength": 1,
2146
+ "description": "File path relative to repository root (e.g., \"src/index.ts\")"
2147
+ },
2148
+ "ref": {
2149
+ "description": "Branch name, tag, or commit SHA (defaults to the default branch)",
2150
+ "type": "string"
2151
+ }
2152
+ },
2153
+ "required": [
2154
+ "project",
2155
+ "file_path"
2156
+ ],
2157
+ "additionalProperties": false
2158
+ },
2159
+ "output_schema": {
2160
+ "type": "object",
2161
+ "properties": {
2162
+ "content": {
2163
+ "type": "string",
2164
+ "description": "Decoded file content as text"
2165
+ },
2166
+ "file_path": {
2167
+ "type": "string",
2168
+ "description": "File path"
2169
+ }
2170
+ },
2171
+ "required": [
2172
+ "content",
2173
+ "file_path"
2174
+ ],
2175
+ "additionalProperties": false
2176
+ }
2177
+ },
2178
+ {
2179
+ "name": "list_commits",
2180
+ "displayName": "List Commits",
2181
+ "description": "List commits for a project. Can filter by branch, path, and date range.",
2182
+ "summary": "List commits for a project",
2183
+ "icon": "git-commit-horizontal",
2184
+ "group": "Content",
2185
+ "input_schema": {
2186
+ "type": "object",
2187
+ "properties": {
2188
+ "project": {
2189
+ "type": "string",
2190
+ "minLength": 1,
2191
+ "description": "Project path (e.g., \"group/project\") or numeric project ID"
2192
+ },
2193
+ "ref_name": {
2194
+ "description": "Branch or tag name (defaults to the default branch)",
2195
+ "type": "string"
2196
+ },
2197
+ "path": {
2198
+ "description": "File or directory path to filter commits",
2199
+ "type": "string"
2200
+ },
2201
+ "since": {
2202
+ "description": "Only commits after this ISO 8601 date",
2203
+ "type": "string"
2204
+ },
2205
+ "until": {
2206
+ "description": "Only commits before this ISO 8601 date",
2207
+ "type": "string"
2208
+ },
2209
+ "per_page": {
2210
+ "description": "Results per page (default 20, max 100)",
2211
+ "type": "integer",
2212
+ "minimum": 1,
2213
+ "maximum": 100
2214
+ },
2215
+ "page": {
2216
+ "description": "Page number (default 1)",
2217
+ "type": "integer",
2218
+ "minimum": 1,
2219
+ "maximum": 9007199254740991
2220
+ }
2221
+ },
2222
+ "required": [
2223
+ "project"
2224
+ ],
2225
+ "additionalProperties": false
2226
+ },
2227
+ "output_schema": {
2228
+ "type": "object",
2229
+ "properties": {
2230
+ "commits": {
2231
+ "type": "array",
2232
+ "items": {
2233
+ "type": "object",
2234
+ "properties": {
2235
+ "id": {
2236
+ "type": "string",
2237
+ "description": "Full commit SHA"
2238
+ },
2239
+ "short_id": {
2240
+ "type": "string",
2241
+ "description": "Short commit SHA"
2242
+ },
2243
+ "title": {
2244
+ "type": "string",
2245
+ "description": "Commit title (first line of the message)"
2246
+ },
2247
+ "message": {
2248
+ "type": "string",
2249
+ "description": "Full commit message"
2250
+ },
2251
+ "author_name": {
2252
+ "type": "string",
2253
+ "description": "Author name"
2254
+ },
2255
+ "author_email": {
2256
+ "type": "string",
2257
+ "description": "Author email"
2258
+ },
2259
+ "authored_date": {
2260
+ "type": "string",
2261
+ "description": "Authored ISO 8601 timestamp"
2262
+ },
2263
+ "web_url": {
2264
+ "type": "string",
2265
+ "description": "URL to the commit on GitLab"
2266
+ }
2267
+ },
2268
+ "required": [
2269
+ "id",
2270
+ "short_id",
2271
+ "title",
2272
+ "message",
2273
+ "author_name",
2274
+ "author_email",
2275
+ "authored_date",
2276
+ "web_url"
2277
+ ],
2278
+ "additionalProperties": false
2279
+ },
2280
+ "description": "List of commits"
2281
+ }
2282
+ },
2283
+ "required": [
2284
+ "commits"
2285
+ ],
2286
+ "additionalProperties": false
2287
+ }
2288
+ },
2289
+ {
2290
+ "name": "list_pipelines",
2291
+ "displayName": "List Pipelines",
2292
+ "description": "List CI/CD pipelines for a project. Can filter by status, ref, and source.",
2293
+ "summary": "List CI/CD pipelines",
2294
+ "icon": "workflow",
2295
+ "group": "CI/CD",
2296
+ "input_schema": {
2297
+ "type": "object",
2298
+ "properties": {
2299
+ "project": {
2300
+ "type": "string",
2301
+ "minLength": 1,
2302
+ "description": "Project path (e.g., \"group/project\") or numeric project ID"
2303
+ },
2304
+ "status": {
2305
+ "description": "Filter by pipeline status",
2306
+ "type": "string",
2307
+ "enum": [
2308
+ "running",
2309
+ "pending",
2310
+ "success",
2311
+ "failed",
2312
+ "canceled",
2313
+ "skipped",
2314
+ "manual",
2315
+ "scheduled"
2316
+ ]
2317
+ },
2318
+ "ref": {
2319
+ "description": "Filter by branch or tag name",
2320
+ "type": "string"
2321
+ },
2322
+ "source": {
2323
+ "description": "Filter by source (e.g., push, web, schedule, merge_request_event)",
2324
+ "type": "string"
2325
+ },
2326
+ "order_by": {
2327
+ "description": "Sort field (default: id)",
2328
+ "type": "string",
2329
+ "enum": [
2330
+ "id",
2331
+ "status",
2332
+ "ref",
2333
+ "updated_at",
2334
+ "user_id"
2335
+ ]
2336
+ },
2337
+ "sort": {
2338
+ "description": "Sort direction (default: desc)",
2339
+ "type": "string",
2340
+ "enum": [
2341
+ "asc",
2342
+ "desc"
2343
+ ]
2344
+ },
2345
+ "per_page": {
2346
+ "description": "Results per page (default 20, max 100)",
2347
+ "type": "integer",
2348
+ "minimum": 1,
2349
+ "maximum": 100
2350
+ },
2351
+ "page": {
2352
+ "description": "Page number (default 1)",
2353
+ "type": "integer",
2354
+ "minimum": 1,
2355
+ "maximum": 9007199254740991
2356
+ }
2357
+ },
2358
+ "required": [
2359
+ "project"
2360
+ ],
2361
+ "additionalProperties": false
2362
+ },
2363
+ "output_schema": {
2364
+ "type": "object",
2365
+ "properties": {
2366
+ "pipelines": {
2367
+ "type": "array",
2368
+ "items": {
2369
+ "type": "object",
2370
+ "properties": {
2371
+ "id": {
2372
+ "type": "number",
2373
+ "description": "Pipeline ID"
2374
+ },
2375
+ "iid": {
2376
+ "type": "number",
2377
+ "description": "Pipeline IID (project-scoped)"
2378
+ },
2379
+ "status": {
2380
+ "type": "string",
2381
+ "description": "Pipeline status (e.g., running, success, failed, canceled, pending)"
2382
+ },
2383
+ "ref": {
2384
+ "type": "string",
2385
+ "description": "Branch or tag name"
2386
+ },
2387
+ "sha": {
2388
+ "type": "string",
2389
+ "description": "Commit SHA"
2390
+ },
2391
+ "source": {
2392
+ "type": "string",
2393
+ "description": "Pipeline source (e.g., push, web, schedule, merge_request_event)"
2394
+ },
2395
+ "web_url": {
2396
+ "type": "string",
2397
+ "description": "URL to the pipeline on GitLab"
2398
+ },
2399
+ "created_at": {
2400
+ "type": "string",
2401
+ "description": "Created ISO 8601 timestamp"
2402
+ },
2403
+ "updated_at": {
2404
+ "type": "string",
2405
+ "description": "Updated ISO 8601 timestamp"
2406
+ }
2407
+ },
2408
+ "required": [
2409
+ "id",
2410
+ "iid",
2411
+ "status",
2412
+ "ref",
2413
+ "sha",
2414
+ "source",
2415
+ "web_url",
2416
+ "created_at",
2417
+ "updated_at"
2418
+ ],
2419
+ "additionalProperties": false
2420
+ },
2421
+ "description": "List of pipelines"
2422
+ }
2423
+ },
2424
+ "required": [
2425
+ "pipelines"
2426
+ ],
2427
+ "additionalProperties": false
2428
+ }
2429
+ },
2430
+ {
2431
+ "name": "list_pipeline_jobs",
2432
+ "displayName": "List Pipeline Jobs",
2433
+ "description": "List jobs for a specific pipeline.",
2434
+ "summary": "List jobs for a pipeline",
2435
+ "icon": "play",
2436
+ "group": "CI/CD",
2437
+ "input_schema": {
2438
+ "type": "object",
2439
+ "properties": {
2440
+ "project": {
2441
+ "type": "string",
2442
+ "minLength": 1,
2443
+ "description": "Project path (e.g., \"group/project\") or numeric project ID"
2444
+ },
2445
+ "pipeline_id": {
2446
+ "type": "integer",
2447
+ "minimum": 1,
2448
+ "maximum": 9007199254740991,
2449
+ "description": "Pipeline ID"
2450
+ },
2451
+ "per_page": {
2452
+ "description": "Results per page (default 20, max 100)",
2453
+ "type": "integer",
2454
+ "minimum": 1,
2455
+ "maximum": 100
2456
+ },
2457
+ "page": {
2458
+ "description": "Page number (default 1)",
2459
+ "type": "integer",
2460
+ "minimum": 1,
2461
+ "maximum": 9007199254740991
2462
+ }
2463
+ },
2464
+ "required": [
2465
+ "project",
2466
+ "pipeline_id"
2467
+ ],
2468
+ "additionalProperties": false
2469
+ },
2470
+ "output_schema": {
2471
+ "type": "object",
2472
+ "properties": {
2473
+ "jobs": {
2474
+ "type": "array",
2475
+ "items": {
2476
+ "type": "object",
2477
+ "properties": {
2478
+ "id": {
2479
+ "type": "number",
2480
+ "description": "Job ID"
2481
+ },
2482
+ "name": {
2483
+ "type": "string",
2484
+ "description": "Job name"
2485
+ },
2486
+ "stage": {
2487
+ "type": "string",
2488
+ "description": "Stage name"
2489
+ },
2490
+ "status": {
2491
+ "type": "string",
2492
+ "description": "Job status (e.g., running, success, failed, canceled, pending)"
2493
+ },
2494
+ "ref": {
2495
+ "type": "string",
2496
+ "description": "Branch or tag name"
2497
+ },
2498
+ "web_url": {
2499
+ "type": "string",
2500
+ "description": "URL to the job on GitLab"
2501
+ },
2502
+ "duration": {
2503
+ "type": "number",
2504
+ "description": "Duration in seconds or 0 if not finished"
2505
+ },
2506
+ "created_at": {
2507
+ "type": "string",
2508
+ "description": "Created ISO 8601 timestamp"
2509
+ },
2510
+ "finished_at": {
2511
+ "type": "string",
2512
+ "description": "Finished ISO 8601 timestamp or empty string"
2513
+ }
2514
+ },
2515
+ "required": [
2516
+ "id",
2517
+ "name",
2518
+ "stage",
2519
+ "status",
2520
+ "ref",
2521
+ "web_url",
2522
+ "duration",
2523
+ "created_at",
2524
+ "finished_at"
2525
+ ],
2526
+ "additionalProperties": false
2527
+ },
2528
+ "description": "List of jobs"
2529
+ }
2530
+ },
2531
+ "required": [
2532
+ "jobs"
2533
+ ],
2534
+ "additionalProperties": false
2535
+ }
2536
+ },
2537
+ {
2538
+ "name": "get_job_log",
2539
+ "displayName": "Get Job Log",
2540
+ "description": "Get the log (trace) output of a CI/CD job. Returns the raw log text.",
2541
+ "summary": "Get the log output of a job",
2542
+ "icon": "scroll-text",
2543
+ "group": "CI/CD",
2544
+ "input_schema": {
2545
+ "type": "object",
2546
+ "properties": {
2547
+ "project": {
2548
+ "type": "string",
2549
+ "minLength": 1,
2550
+ "description": "Project path (e.g., \"group/project\") or numeric project ID"
2551
+ },
2552
+ "job_id": {
2553
+ "type": "integer",
2554
+ "minimum": 1,
2555
+ "maximum": 9007199254740991,
2556
+ "description": "Job ID"
2557
+ }
2558
+ },
2559
+ "required": [
2560
+ "project",
2561
+ "job_id"
2562
+ ],
2563
+ "additionalProperties": false
2564
+ },
2565
+ "output_schema": {
2566
+ "type": "object",
2567
+ "properties": {
2568
+ "log": {
2569
+ "type": "string",
2570
+ "description": "Raw job log text"
2571
+ }
2572
+ },
2573
+ "required": [
2574
+ "log"
2575
+ ],
2576
+ "additionalProperties": false
2577
+ }
2578
+ },
2579
+ {
2580
+ "name": "get_user_profile",
2581
+ "displayName": "Get User Profile",
2582
+ "description": "Get a user profile by username. Defaults to the authenticated user if no username is specified.",
2583
+ "summary": "Get a user profile",
2584
+ "icon": "user",
2585
+ "group": "Users",
2586
+ "input_schema": {
2587
+ "type": "object",
2588
+ "properties": {
2589
+ "username": {
2590
+ "description": "Username — defaults to the authenticated user",
2591
+ "type": "string"
2592
+ }
2593
+ },
2594
+ "additionalProperties": false
2595
+ },
2596
+ "output_schema": {
2597
+ "type": "object",
2598
+ "properties": {
2599
+ "user": {
2600
+ "type": "object",
2601
+ "properties": {
2602
+ "id": {
2603
+ "type": "number",
2604
+ "description": "User ID"
2605
+ },
2606
+ "username": {
2607
+ "type": "string",
2608
+ "description": "Username"
2609
+ },
2610
+ "name": {
2611
+ "type": "string",
2612
+ "description": "Display name"
2613
+ },
2614
+ "state": {
2615
+ "type": "string",
2616
+ "description": "Account state (e.g., active, blocked)"
2617
+ },
2618
+ "avatar_url": {
2619
+ "type": "string",
2620
+ "description": "Avatar image URL"
2621
+ },
2622
+ "web_url": {
2623
+ "type": "string",
2624
+ "description": "URL to the profile on GitLab"
2625
+ },
2626
+ "bio": {
2627
+ "type": "string",
2628
+ "description": "User bio"
2629
+ },
2630
+ "location": {
2631
+ "type": "string",
2632
+ "description": "Location"
2633
+ },
2634
+ "public_email": {
2635
+ "type": "string",
2636
+ "description": "Public email address"
2637
+ }
2638
+ },
2639
+ "required": [
2640
+ "id",
2641
+ "username",
2642
+ "name",
2643
+ "state",
2644
+ "avatar_url",
2645
+ "web_url",
2646
+ "bio",
2647
+ "location",
2648
+ "public_email"
2649
+ ],
2650
+ "additionalProperties": false,
2651
+ "description": "The user profile"
2652
+ }
2653
+ },
2654
+ "required": [
2655
+ "user"
2656
+ ],
2657
+ "additionalProperties": false
2658
+ }
2659
+ }
2660
+ ]
2661
+ }