@opentabs-dev/opentabs-plugin-github 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 (157) hide show
  1. package/README.md +159 -0
  2. package/dist/adapter.iife.js +15870 -0
  3. package/dist/adapter.iife.js.map +7 -0
  4. package/dist/github-api.d.ts +15 -0
  5. package/dist/github-api.d.ts.map +1 -0
  6. package/dist/github-api.js +145 -0
  7. package/dist/github-api.js.map +1 -0
  8. package/dist/index.d.ts +14 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +98 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/tools/add-reaction.d.ts +21 -0
  13. package/dist/tools/add-reaction.d.ts.map +1 -0
  14. package/dist/tools/add-reaction.js +50 -0
  15. package/dist/tools/add-reaction.js.map +1 -0
  16. package/dist/tools/compare-commits.d.ts +22 -0
  17. package/dist/tools/compare-commits.d.ts.map +1 -0
  18. package/dist/tools/compare-commits.js +57 -0
  19. package/dist/tools/compare-commits.js.map +1 -0
  20. package/dist/tools/create-comment.d.ts +17 -0
  21. package/dist/tools/create-comment.d.ts.map +1 -0
  22. package/dist/tools/create-comment.js +26 -0
  23. package/dist/tools/create-comment.js.map +1 -0
  24. package/dist/tools/create-issue.d.ts +26 -0
  25. package/dist/tools/create-issue.d.ts.map +1 -0
  26. package/dist/tools/create-issue.js +38 -0
  27. package/dist/tools/create-issue.js.map +1 -0
  28. package/dist/tools/create-label.d.ts +16 -0
  29. package/dist/tools/create-label.d.ts.map +1 -0
  30. package/dist/tools/create-label.js +37 -0
  31. package/dist/tools/create-label.js.map +1 -0
  32. package/dist/tools/create-or-update-file.d.ts +15 -0
  33. package/dist/tools/create-or-update-file.d.ts.map +1 -0
  34. package/dist/tools/create-or-update-file.js +46 -0
  35. package/dist/tools/create-or-update-file.js.map +1 -0
  36. package/dist/tools/create-pull-request.d.ts +33 -0
  37. package/dist/tools/create-pull-request.d.ts.map +1 -0
  38. package/dist/tools/create-pull-request.js +41 -0
  39. package/dist/tools/create-pull-request.js.map +1 -0
  40. package/dist/tools/create-release.d.ts +25 -0
  41. package/dist/tools/create-release.d.ts.map +1 -0
  42. package/dist/tools/create-release.js +46 -0
  43. package/dist/tools/create-release.js.map +1 -0
  44. package/dist/tools/create-repo.d.ts +26 -0
  45. package/dist/tools/create-repo.d.ts.map +1 -0
  46. package/dist/tools/create-repo.js +42 -0
  47. package/dist/tools/create-repo.js.map +1 -0
  48. package/dist/tools/delete-file.d.ts +16 -0
  49. package/dist/tools/delete-file.d.ts.map +1 -0
  50. package/dist/tools/delete-file.js +48 -0
  51. package/dist/tools/delete-file.js.map +1 -0
  52. package/dist/tools/get-file-content.d.ts +11 -0
  53. package/dist/tools/get-file-content.d.ts.map +1 -0
  54. package/dist/tools/get-file-content.js +33 -0
  55. package/dist/tools/get-file-content.js.map +1 -0
  56. package/dist/tools/get-issue.d.ts +23 -0
  57. package/dist/tools/get-issue.d.ts.map +1 -0
  58. package/dist/tools/get-issue.js +25 -0
  59. package/dist/tools/get-issue.js.map +1 -0
  60. package/dist/tools/get-pull-request-diff.d.ts +9 -0
  61. package/dist/tools/get-pull-request-diff.d.ts.map +1 -0
  62. package/dist/tools/get-pull-request-diff.js +26 -0
  63. package/dist/tools/get-pull-request-diff.js.map +1 -0
  64. package/dist/tools/get-pull-request.d.ts +29 -0
  65. package/dist/tools/get-pull-request.d.ts.map +1 -0
  66. package/dist/tools/get-pull-request.js +25 -0
  67. package/dist/tools/get-pull-request.js.map +1 -0
  68. package/dist/tools/get-repo.d.ts +22 -0
  69. package/dist/tools/get-repo.d.ts.map +1 -0
  70. package/dist/tools/get-repo.js +24 -0
  71. package/dist/tools/get-repo.js.map +1 -0
  72. package/dist/tools/get-user-profile.d.ts +21 -0
  73. package/dist/tools/get-user-profile.d.ts.map +1 -0
  74. package/dist/tools/get-user-profile.js +24 -0
  75. package/dist/tools/get-user-profile.js.map +1 -0
  76. package/dist/tools/get-workflow-run.d.ts +19 -0
  77. package/dist/tools/get-workflow-run.d.ts.map +1 -0
  78. package/dist/tools/get-workflow-run.js +25 -0
  79. package/dist/tools/get-workflow-run.js.map +1 -0
  80. package/dist/tools/list-branches.d.ts +14 -0
  81. package/dist/tools/list-branches.d.ts.map +1 -0
  82. package/dist/tools/list-branches.js +30 -0
  83. package/dist/tools/list-branches.js.map +1 -0
  84. package/dist/tools/list-comments.d.ts +18 -0
  85. package/dist/tools/list-comments.d.ts.map +1 -0
  86. package/dist/tools/list-comments.js +31 -0
  87. package/dist/tools/list-comments.js.map +1 -0
  88. package/dist/tools/list-commits.d.ts +18 -0
  89. package/dist/tools/list-commits.d.ts.map +1 -0
  90. package/dist/tools/list-commits.js +33 -0
  91. package/dist/tools/list-commits.js.map +1 -0
  92. package/dist/tools/list-issues.d.ts +40 -0
  93. package/dist/tools/list-issues.d.ts.map +1 -0
  94. package/dist/tools/list-issues.js +42 -0
  95. package/dist/tools/list-issues.js.map +1 -0
  96. package/dist/tools/list-labels.d.ts +15 -0
  97. package/dist/tools/list-labels.d.ts.map +1 -0
  98. package/dist/tools/list-labels.js +30 -0
  99. package/dist/tools/list-labels.js.map +1 -0
  100. package/dist/tools/list-notifications.d.ts +19 -0
  101. package/dist/tools/list-notifications.d.ts.map +1 -0
  102. package/dist/tools/list-notifications.js +39 -0
  103. package/dist/tools/list-notifications.js.map +1 -0
  104. package/dist/tools/list-org-members.d.ts +14 -0
  105. package/dist/tools/list-org-members.d.ts.map +1 -0
  106. package/dist/tools/list-org-members.js +42 -0
  107. package/dist/tools/list-org-members.js.map +1 -0
  108. package/dist/tools/list-pull-request-files.d.ts +18 -0
  109. package/dist/tools/list-pull-request-files.d.ts.map +1 -0
  110. package/dist/tools/list-pull-request-files.js +48 -0
  111. package/dist/tools/list-pull-request-files.js.map +1 -0
  112. package/dist/tools/list-pull-requests.d.ts +47 -0
  113. package/dist/tools/list-pull-requests.d.ts.map +1 -0
  114. package/dist/tools/list-pull-requests.js +45 -0
  115. package/dist/tools/list-pull-requests.js.map +1 -0
  116. package/dist/tools/list-releases.d.ts +21 -0
  117. package/dist/tools/list-releases.d.ts.map +1 -0
  118. package/dist/tools/list-releases.js +30 -0
  119. package/dist/tools/list-releases.js.map +1 -0
  120. package/dist/tools/list-repos.d.ts +36 -0
  121. package/dist/tools/list-repos.d.ts.map +1 -0
  122. package/dist/tools/list-repos.js +48 -0
  123. package/dist/tools/list-repos.js.map +1 -0
  124. package/dist/tools/list-workflow-runs.d.ts +39 -0
  125. package/dist/tools/list-workflow-runs.d.ts.map +1 -0
  126. package/dist/tools/list-workflow-runs.js +62 -0
  127. package/dist/tools/list-workflow-runs.js.map +1 -0
  128. package/dist/tools/merge-pull-request.d.ts +18 -0
  129. package/dist/tools/merge-pull-request.d.ts.map +1 -0
  130. package/dist/tools/merge-pull-request.js +40 -0
  131. package/dist/tools/merge-pull-request.js.map +1 -0
  132. package/dist/tools/request-pull-request-review.d.ts +31 -0
  133. package/dist/tools/request-pull-request-review.d.ts.map +1 -0
  134. package/dist/tools/request-pull-request-review.js +32 -0
  135. package/dist/tools/request-pull-request-review.js.map +1 -0
  136. package/dist/tools/schemas.d.ts +403 -0
  137. package/dist/tools/schemas.d.ts.map +1 -0
  138. package/dist/tools/schemas.js +259 -0
  139. package/dist/tools/schemas.js.map +1 -0
  140. package/dist/tools/search-issues.d.ts +37 -0
  141. package/dist/tools/search-issues.d.ts.map +1 -0
  142. package/dist/tools/search-issues.js +46 -0
  143. package/dist/tools/search-issues.js.map +1 -0
  144. package/dist/tools/search-repos.d.ts +34 -0
  145. package/dist/tools/search-repos.d.ts.map +1 -0
  146. package/dist/tools/search-repos.js +41 -0
  147. package/dist/tools/search-repos.js.map +1 -0
  148. package/dist/tools/update-issue.d.ts +31 -0
  149. package/dist/tools/update-issue.d.ts.map +1 -0
  150. package/dist/tools/update-issue.js +41 -0
  151. package/dist/tools/update-issue.js.map +1 -0
  152. package/dist/tools/update-pull-request.d.ts +37 -0
  153. package/dist/tools/update-pull-request.d.ts.map +1 -0
  154. package/dist/tools/update-pull-request.js +41 -0
  155. package/dist/tools/update-pull-request.js.map +1 -0
  156. package/dist/tools.json +4005 -0
  157. package/package.json +55 -0
@@ -0,0 +1,4005 @@
1
+ {
2
+ "sdkVersion": "0.0.74",
3
+ "iconSvg": "<svg viewBox=\"0 -1 98 98\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M41.4395 69.3848C28.8066 67.8535 19.9062 58.7617 19.9062 46.9902C19.9062 42.2051 21.6289 37.0371 24.5 33.5918C23.2559 30.4336 23.4473 23.7344 24.8828 20.959C28.7109 20.4805 33.8789 22.4902 36.9414 25.2656C40.5781 24.1172 44.4062 23.543 49.0957 23.543C53.7852 23.543 57.6133 24.1172 61.0586 25.1699C64.0254 22.4902 69.2891 20.4805 73.1172 20.959C74.457 23.543 74.6484 30.2422 73.4043 33.4961C76.4668 37.1328 78.0937 42.0137 78.0937 46.9902C78.0937 58.7617 69.1934 67.6621 56.3691 69.2891C59.623 71.3945 61.8242 75.9883 61.8242 81.252L61.8242 91.2051C61.8242 94.0762 64.2168 95.7031 67.0879 94.5547C84.4102 87.9512 98 70.6289 98 49.1914C98 22.1074 75.9883 0 48.9043 0C21.8203 0 0 22.1074 0 49.1914C0 70.4375 13.4941 88.0469 31.6777 94.6504C34.2617 95.6074 36.75 93.8848 36.75 91.3008L36.75 83.6445C35.4102 84.2188 33.6875 84.6016 32.1562 84.6016C25.8398 84.6016 22.1074 81.1563 19.4277 74.7441C18.375 72.1602 17.2266 70.6289 15.0254 70.3418C13.877 70.2461 13.4941 69.7676 13.4941 69.1934C13.4941 68.0449 15.4082 67.1836 17.3223 67.1836C20.0977 67.1836 22.4902 68.9063 24.9785 72.4473C26.8926 75.2227 28.9023 76.4668 31.2949 76.4668C33.6875 76.4668 35.2187 75.6055 37.4199 73.4043C39.0469 71.7773 40.291 70.3418 41.4395 69.3848Z\" fill=\"black\"/> </svg>",
4
+ "iconInactiveSvg": "<svg viewBox=\"0 -1 98 98\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M41.4395 69.3848C28.8066 67.8535 19.9062 58.7617 19.9062 46.9902C19.9062 42.2051 21.6289 37.0371 24.5 33.5918C23.2559 30.4336 23.4473 23.7344 24.8828 20.959C28.7109 20.4805 33.8789 22.4902 36.9414 25.2656C40.5781 24.1172 44.4062 23.543 49.0957 23.543C53.7852 23.543 57.6133 24.1172 61.0586 25.1699C64.0254 22.4902 69.2891 20.4805 73.1172 20.959C74.457 23.543 74.6484 30.2422 73.4043 33.4961C76.4668 37.1328 78.0937 42.0137 78.0937 46.9902C78.0937 58.7617 69.1934 67.6621 56.3691 69.2891C59.623 71.3945 61.8242 75.9883 61.8242 81.252L61.8242 91.2051C61.8242 94.0762 64.2168 95.7031 67.0879 94.5547C84.4102 87.9512 98 70.6289 98 49.1914C98 22.1074 75.9883 0 48.9043 0C21.8203 0 0 22.1074 0 49.1914C0 70.4375 13.4941 88.0469 31.6777 94.6504C34.2617 95.6074 36.75 93.8848 36.75 91.3008L36.75 83.6445C35.4102 84.2188 33.6875 84.6016 32.1562 84.6016C25.8398 84.6016 22.1074 81.1563 19.4277 74.7441C18.375 72.1602 17.2266 70.6289 15.0254 70.3418C13.877 70.2461 13.4941 69.7676 13.4941 69.1934C13.4941 68.0449 15.4082 67.1836 17.3223 67.1836C20.0977 67.1836 22.4902 68.9063 24.9785 72.4473C26.8926 75.2227 28.9023 76.4668 31.2949 76.4668C33.6875 76.4668 35.2187 75.6055 37.4199 73.4043C39.0469 71.7773 40.291 70.3418 41.4395 69.3848Z\" fill=\"#999999\"/> </svg>",
5
+ "iconDarkSvg": "<svg viewBox=\"0 -1 98 98\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M41.4395 69.3848C28.8066 67.8535 19.9062 58.7617 19.9062 46.9902C19.9062 42.2051 21.6289 37.0371 24.5 33.5918C23.2559 30.4336 23.4473 23.7344 24.8828 20.959C28.7109 20.4805 33.8789 22.4902 36.9414 25.2656C40.5781 24.1172 44.4062 23.543 49.0957 23.543C53.7852 23.543 57.6133 24.1172 61.0586 25.1699C64.0254 22.4902 69.2891 20.4805 73.1172 20.959C74.457 23.543 74.6484 30.2422 73.4043 33.4961C76.4668 37.1328 78.0937 42.0137 78.0937 46.9902C78.0937 58.7617 69.1934 67.6621 56.3691 69.2891C59.623 71.3945 61.8242 75.9883 61.8242 81.252L61.8242 91.2051C61.8242 94.0762 64.2168 95.7031 67.0879 94.5547C84.4102 87.9512 98 70.6289 98 49.1914C98 22.1074 75.9883 0 48.9043 0C21.8203 0 0 22.1074 0 49.1914C0 70.4375 13.4941 88.0469 31.6777 94.6504C34.2617 95.6074 36.75 93.8848 36.75 91.3008L36.75 83.6445C35.4102 84.2188 33.6875 84.6016 32.1562 84.6016C25.8398 84.6016 22.1074 81.1563 19.4277 74.7441C18.375 72.1602 17.2266 70.6289 15.0254 70.3418C13.877 70.2461 13.4941 69.7676 13.4941 69.1934C13.4941 68.0449 15.4082 67.1836 17.3223 67.1836C20.0977 67.1836 22.4902 68.9063 24.9785 72.4473C26.8926 75.2227 28.9023 76.4668 31.2949 76.4668C33.6875 76.4668 35.2187 75.6055 37.4199 73.4043C39.0469 71.7773 40.291 70.3418 41.4395 69.3848Z\" fill=\"#ffffff\"/> </svg>",
6
+ "iconDarkInactiveSvg": "<svg viewBox=\"0 -1 98 98\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M41.4395 69.3848C28.8066 67.8535 19.9062 58.7617 19.9062 46.9902C19.9062 42.2051 21.6289 37.0371 24.5 33.5918C23.2559 30.4336 23.4473 23.7344 24.8828 20.959C28.7109 20.4805 33.8789 22.4902 36.9414 25.2656C40.5781 24.1172 44.4062 23.543 49.0957 23.543C53.7852 23.543 57.6133 24.1172 61.0586 25.1699C64.0254 22.4902 69.2891 20.4805 73.1172 20.959C74.457 23.543 74.6484 30.2422 73.4043 33.4961C76.4668 37.1328 78.0937 42.0137 78.0937 46.9902C78.0937 58.7617 69.1934 67.6621 56.3691 69.2891C59.623 71.3945 61.8242 75.9883 61.8242 81.252L61.8242 91.2051C61.8242 94.0762 64.2168 95.7031 67.0879 94.5547C84.4102 87.9512 98 70.6289 98 49.1914C98 22.1074 75.9883 0 48.9043 0C21.8203 0 0 22.1074 0 49.1914C0 70.4375 13.4941 88.0469 31.6777 94.6504C34.2617 95.6074 36.75 93.8848 36.75 91.3008L36.75 83.6445C35.4102 84.2188 33.6875 84.6016 32.1562 84.6016C25.8398 84.6016 22.1074 81.1563 19.4277 74.7441C18.375 72.1602 17.2266 70.6289 15.0254 70.3418C13.877 70.2461 13.4941 69.7676 13.4941 69.1934C13.4941 68.0449 15.4082 67.1836 17.3223 67.1836C20.0977 67.1836 22.4902 68.9063 24.9785 72.4473C26.8926 75.2227 28.9023 76.4668 31.2949 76.4668C33.6875 76.4668 35.2187 75.6055 37.4199 73.4043C39.0469 71.7773 40.291 70.3418 41.4395 69.3848Z\" fill=\"#ffffff\"/> </svg>",
7
+ "tools": [
8
+ {
9
+ "name": "list_repos",
10
+ "displayName": "List Repositories",
11
+ "description": "List repositories for the authenticated user or a specified user/organization. Returns repos sorted by last updated.",
12
+ "summary": "List repositories for a user or organization",
13
+ "icon": "book-marked",
14
+ "group": "Repositories",
15
+ "input_schema": {
16
+ "type": "object",
17
+ "properties": {
18
+ "owner": {
19
+ "description": "Username or org name — defaults to the authenticated user",
20
+ "type": "string"
21
+ },
22
+ "type": {
23
+ "description": "Type filter for user repos (default: all)",
24
+ "type": "string",
25
+ "enum": [
26
+ "all",
27
+ "owner",
28
+ "public",
29
+ "private",
30
+ "member"
31
+ ]
32
+ },
33
+ "sort": {
34
+ "description": "Sort field (default: updated)",
35
+ "type": "string",
36
+ "enum": [
37
+ "created",
38
+ "updated",
39
+ "pushed",
40
+ "full_name"
41
+ ]
42
+ },
43
+ "per_page": {
44
+ "description": "Results per page (default 30, max 100)",
45
+ "type": "integer",
46
+ "minimum": 1,
47
+ "maximum": 100
48
+ },
49
+ "page": {
50
+ "description": "Page number (default 1)",
51
+ "type": "integer",
52
+ "minimum": 1,
53
+ "maximum": 9007199254740991
54
+ }
55
+ },
56
+ "additionalProperties": false
57
+ },
58
+ "output_schema": {
59
+ "type": "object",
60
+ "properties": {
61
+ "repositories": {
62
+ "type": "array",
63
+ "items": {
64
+ "type": "object",
65
+ "properties": {
66
+ "id": {
67
+ "type": "number",
68
+ "description": "Repository ID"
69
+ },
70
+ "name": {
71
+ "type": "string",
72
+ "description": "Repository name"
73
+ },
74
+ "full_name": {
75
+ "type": "string",
76
+ "description": "Full name in owner/repo format"
77
+ },
78
+ "description": {
79
+ "type": "string",
80
+ "description": "Repository description"
81
+ },
82
+ "private": {
83
+ "type": "boolean",
84
+ "description": "Whether the repository is private"
85
+ },
86
+ "html_url": {
87
+ "type": "string",
88
+ "description": "URL to the repository on GitHub"
89
+ },
90
+ "default_branch": {
91
+ "type": "string",
92
+ "description": "Default branch name"
93
+ },
94
+ "language": {
95
+ "type": "string",
96
+ "description": "Primary programming language"
97
+ },
98
+ "stargazers_count": {
99
+ "type": "number",
100
+ "description": "Number of stars"
101
+ },
102
+ "forks_count": {
103
+ "type": "number",
104
+ "description": "Number of forks"
105
+ },
106
+ "open_issues_count": {
107
+ "type": "number",
108
+ "description": "Number of open issues"
109
+ },
110
+ "archived": {
111
+ "type": "boolean",
112
+ "description": "Whether the repository is archived"
113
+ },
114
+ "updated_at": {
115
+ "type": "string",
116
+ "description": "Last updated ISO 8601 timestamp"
117
+ }
118
+ },
119
+ "required": [
120
+ "id",
121
+ "name",
122
+ "full_name",
123
+ "description",
124
+ "private",
125
+ "html_url",
126
+ "default_branch",
127
+ "language",
128
+ "stargazers_count",
129
+ "forks_count",
130
+ "open_issues_count",
131
+ "archived",
132
+ "updated_at"
133
+ ],
134
+ "additionalProperties": false
135
+ },
136
+ "description": "List of repositories"
137
+ }
138
+ },
139
+ "required": [
140
+ "repositories"
141
+ ],
142
+ "additionalProperties": false
143
+ }
144
+ },
145
+ {
146
+ "name": "get_repo",
147
+ "displayName": "Get Repository",
148
+ "description": "Get detailed information about a specific repository.",
149
+ "summary": "Get details of a specific repository",
150
+ "icon": "book-open",
151
+ "group": "Repositories",
152
+ "input_schema": {
153
+ "type": "object",
154
+ "properties": {
155
+ "owner": {
156
+ "type": "string",
157
+ "minLength": 1,
158
+ "description": "Repository owner (user or org)"
159
+ },
160
+ "repo": {
161
+ "type": "string",
162
+ "minLength": 1,
163
+ "description": "Repository name"
164
+ }
165
+ },
166
+ "required": [
167
+ "owner",
168
+ "repo"
169
+ ],
170
+ "additionalProperties": false
171
+ },
172
+ "output_schema": {
173
+ "type": "object",
174
+ "properties": {
175
+ "repository": {
176
+ "type": "object",
177
+ "properties": {
178
+ "id": {
179
+ "type": "number",
180
+ "description": "Repository ID"
181
+ },
182
+ "name": {
183
+ "type": "string",
184
+ "description": "Repository name"
185
+ },
186
+ "full_name": {
187
+ "type": "string",
188
+ "description": "Full name in owner/repo format"
189
+ },
190
+ "description": {
191
+ "type": "string",
192
+ "description": "Repository description"
193
+ },
194
+ "private": {
195
+ "type": "boolean",
196
+ "description": "Whether the repository is private"
197
+ },
198
+ "html_url": {
199
+ "type": "string",
200
+ "description": "URL to the repository on GitHub"
201
+ },
202
+ "default_branch": {
203
+ "type": "string",
204
+ "description": "Default branch name"
205
+ },
206
+ "language": {
207
+ "type": "string",
208
+ "description": "Primary programming language"
209
+ },
210
+ "stargazers_count": {
211
+ "type": "number",
212
+ "description": "Number of stars"
213
+ },
214
+ "forks_count": {
215
+ "type": "number",
216
+ "description": "Number of forks"
217
+ },
218
+ "open_issues_count": {
219
+ "type": "number",
220
+ "description": "Number of open issues"
221
+ },
222
+ "archived": {
223
+ "type": "boolean",
224
+ "description": "Whether the repository is archived"
225
+ },
226
+ "updated_at": {
227
+ "type": "string",
228
+ "description": "Last updated ISO 8601 timestamp"
229
+ }
230
+ },
231
+ "required": [
232
+ "id",
233
+ "name",
234
+ "full_name",
235
+ "description",
236
+ "private",
237
+ "html_url",
238
+ "default_branch",
239
+ "language",
240
+ "stargazers_count",
241
+ "forks_count",
242
+ "open_issues_count",
243
+ "archived",
244
+ "updated_at"
245
+ ],
246
+ "additionalProperties": false,
247
+ "description": "Repository details"
248
+ }
249
+ },
250
+ "required": [
251
+ "repository"
252
+ ],
253
+ "additionalProperties": false
254
+ }
255
+ },
256
+ {
257
+ "name": "create_repo",
258
+ "displayName": "Create Repository",
259
+ "description": "Create a new repository for the authenticated user.",
260
+ "summary": "Create a new repository",
261
+ "icon": "plus-circle",
262
+ "group": "Repositories",
263
+ "input_schema": {
264
+ "type": "object",
265
+ "properties": {
266
+ "name": {
267
+ "type": "string",
268
+ "minLength": 1,
269
+ "description": "Repository name"
270
+ },
271
+ "description": {
272
+ "description": "Short description of the repository",
273
+ "type": "string"
274
+ },
275
+ "private": {
276
+ "description": "Whether the repository is private (default: false)",
277
+ "type": "boolean"
278
+ },
279
+ "auto_init": {
280
+ "description": "Initialize with a README (default: false)",
281
+ "type": "boolean"
282
+ },
283
+ "gitignore_template": {
284
+ "description": "Gitignore template name (e.g., \"Node\", \"Python\")",
285
+ "type": "string"
286
+ },
287
+ "license_template": {
288
+ "description": "License template (e.g., \"mit\", \"apache-2.0\")",
289
+ "type": "string"
290
+ }
291
+ },
292
+ "required": [
293
+ "name"
294
+ ],
295
+ "additionalProperties": false
296
+ },
297
+ "output_schema": {
298
+ "type": "object",
299
+ "properties": {
300
+ "repository": {
301
+ "type": "object",
302
+ "properties": {
303
+ "id": {
304
+ "type": "number",
305
+ "description": "Repository ID"
306
+ },
307
+ "name": {
308
+ "type": "string",
309
+ "description": "Repository name"
310
+ },
311
+ "full_name": {
312
+ "type": "string",
313
+ "description": "Full name in owner/repo format"
314
+ },
315
+ "description": {
316
+ "type": "string",
317
+ "description": "Repository description"
318
+ },
319
+ "private": {
320
+ "type": "boolean",
321
+ "description": "Whether the repository is private"
322
+ },
323
+ "html_url": {
324
+ "type": "string",
325
+ "description": "URL to the repository on GitHub"
326
+ },
327
+ "default_branch": {
328
+ "type": "string",
329
+ "description": "Default branch name"
330
+ },
331
+ "language": {
332
+ "type": "string",
333
+ "description": "Primary programming language"
334
+ },
335
+ "stargazers_count": {
336
+ "type": "number",
337
+ "description": "Number of stars"
338
+ },
339
+ "forks_count": {
340
+ "type": "number",
341
+ "description": "Number of forks"
342
+ },
343
+ "open_issues_count": {
344
+ "type": "number",
345
+ "description": "Number of open issues"
346
+ },
347
+ "archived": {
348
+ "type": "boolean",
349
+ "description": "Whether the repository is archived"
350
+ },
351
+ "updated_at": {
352
+ "type": "string",
353
+ "description": "Last updated ISO 8601 timestamp"
354
+ }
355
+ },
356
+ "required": [
357
+ "id",
358
+ "name",
359
+ "full_name",
360
+ "description",
361
+ "private",
362
+ "html_url",
363
+ "default_branch",
364
+ "language",
365
+ "stargazers_count",
366
+ "forks_count",
367
+ "open_issues_count",
368
+ "archived",
369
+ "updated_at"
370
+ ],
371
+ "additionalProperties": false,
372
+ "description": "The created repository"
373
+ }
374
+ },
375
+ "required": [
376
+ "repository"
377
+ ],
378
+ "additionalProperties": false
379
+ }
380
+ },
381
+ {
382
+ "name": "list_commits",
383
+ "displayName": "List Commits",
384
+ "description": "List commits for a repository. Optionally filter by branch, tag, or SHA. Returns commits sorted by date descending.",
385
+ "summary": "List commits for a repository",
386
+ "icon": "git-commit",
387
+ "group": "Repositories",
388
+ "input_schema": {
389
+ "type": "object",
390
+ "properties": {
391
+ "owner": {
392
+ "type": "string",
393
+ "minLength": 1,
394
+ "description": "Repository owner (user or org)"
395
+ },
396
+ "repo": {
397
+ "type": "string",
398
+ "minLength": 1,
399
+ "description": "Repository name"
400
+ },
401
+ "sha": {
402
+ "description": "Branch name, tag, or commit SHA to list commits from",
403
+ "type": "string"
404
+ },
405
+ "per_page": {
406
+ "description": "Results per page (default 30, max 100)",
407
+ "type": "integer",
408
+ "minimum": 1,
409
+ "maximum": 100
410
+ },
411
+ "page": {
412
+ "description": "Page number (default 1)",
413
+ "type": "integer",
414
+ "minimum": 1,
415
+ "maximum": 9007199254740991
416
+ }
417
+ },
418
+ "required": [
419
+ "owner",
420
+ "repo"
421
+ ],
422
+ "additionalProperties": false
423
+ },
424
+ "output_schema": {
425
+ "type": "object",
426
+ "properties": {
427
+ "commits": {
428
+ "type": "array",
429
+ "items": {
430
+ "type": "object",
431
+ "properties": {
432
+ "sha": {
433
+ "type": "string",
434
+ "description": "Full commit SHA"
435
+ },
436
+ "message": {
437
+ "type": "string",
438
+ "description": "Commit message"
439
+ },
440
+ "author_name": {
441
+ "type": "string",
442
+ "description": "Author name"
443
+ },
444
+ "author_email": {
445
+ "type": "string",
446
+ "description": "Author email"
447
+ },
448
+ "date": {
449
+ "type": "string",
450
+ "description": "Authored date ISO 8601 timestamp"
451
+ },
452
+ "url": {
453
+ "type": "string",
454
+ "description": "URL to the commit on GitHub"
455
+ }
456
+ },
457
+ "required": [
458
+ "sha",
459
+ "message",
460
+ "author_name",
461
+ "author_email",
462
+ "date",
463
+ "url"
464
+ ],
465
+ "additionalProperties": false
466
+ },
467
+ "description": "List of commits"
468
+ }
469
+ },
470
+ "required": [
471
+ "commits"
472
+ ],
473
+ "additionalProperties": false
474
+ }
475
+ },
476
+ {
477
+ "name": "compare_commits",
478
+ "displayName": "Compare Commits",
479
+ "description": "Compare two commits, branches, or tags. Returns the diff status, commit count, and changed files between the base and head.",
480
+ "summary": "Compare two commits or branches",
481
+ "icon": "git-compare",
482
+ "group": "Repositories",
483
+ "input_schema": {
484
+ "type": "object",
485
+ "properties": {
486
+ "owner": {
487
+ "type": "string",
488
+ "minLength": 1,
489
+ "description": "Repository owner (user or org)"
490
+ },
491
+ "repo": {
492
+ "type": "string",
493
+ "minLength": 1,
494
+ "description": "Repository name"
495
+ },
496
+ "basehead": {
497
+ "type": "string",
498
+ "minLength": 1,
499
+ "description": "Base and head to compare in \"base...head\" format (e.g., \"main...feature-branch\")"
500
+ }
501
+ },
502
+ "required": [
503
+ "owner",
504
+ "repo",
505
+ "basehead"
506
+ ],
507
+ "additionalProperties": false
508
+ },
509
+ "output_schema": {
510
+ "type": "object",
511
+ "properties": {
512
+ "status": {
513
+ "type": "string",
514
+ "description": "Comparison status: ahead, behind, diverged, or identical"
515
+ },
516
+ "ahead_by": {
517
+ "type": "number",
518
+ "description": "Number of commits head is ahead of base"
519
+ },
520
+ "behind_by": {
521
+ "type": "number",
522
+ "description": "Number of commits head is behind base"
523
+ },
524
+ "total_commits": {
525
+ "type": "number",
526
+ "description": "Total number of commits in the comparison"
527
+ },
528
+ "files": {
529
+ "type": "array",
530
+ "items": {
531
+ "type": "object",
532
+ "properties": {
533
+ "filename": {
534
+ "type": "string",
535
+ "description": "File path"
536
+ },
537
+ "status": {
538
+ "type": "string",
539
+ "description": "File status: added, removed, modified, renamed, copied, changed, unchanged"
540
+ },
541
+ "additions": {
542
+ "type": "number",
543
+ "description": "Number of lines added"
544
+ },
545
+ "deletions": {
546
+ "type": "number",
547
+ "description": "Number of lines deleted"
548
+ }
549
+ },
550
+ "required": [
551
+ "filename",
552
+ "status",
553
+ "additions",
554
+ "deletions"
555
+ ],
556
+ "additionalProperties": false
557
+ },
558
+ "description": "List of changed files"
559
+ },
560
+ "commits": {
561
+ "type": "array",
562
+ "items": {
563
+ "type": "object",
564
+ "properties": {
565
+ "sha": {
566
+ "type": "string",
567
+ "description": "Full commit SHA"
568
+ },
569
+ "message": {
570
+ "type": "string",
571
+ "description": "Commit message"
572
+ }
573
+ },
574
+ "required": [
575
+ "sha",
576
+ "message"
577
+ ],
578
+ "additionalProperties": false
579
+ },
580
+ "description": "List of commits"
581
+ }
582
+ },
583
+ "required": [
584
+ "status",
585
+ "ahead_by",
586
+ "behind_by",
587
+ "total_commits",
588
+ "files",
589
+ "commits"
590
+ ],
591
+ "additionalProperties": false
592
+ }
593
+ },
594
+ {
595
+ "name": "list_releases",
596
+ "displayName": "List Releases",
597
+ "description": "List releases for a repository. Returns published and draft releases sorted by creation date.",
598
+ "summary": "List releases for a repository",
599
+ "icon": "package",
600
+ "group": "Repositories",
601
+ "input_schema": {
602
+ "type": "object",
603
+ "properties": {
604
+ "owner": {
605
+ "type": "string",
606
+ "minLength": 1,
607
+ "description": "Repository owner (user or org)"
608
+ },
609
+ "repo": {
610
+ "type": "string",
611
+ "minLength": 1,
612
+ "description": "Repository name"
613
+ },
614
+ "per_page": {
615
+ "description": "Results per page (default 30, max 100)",
616
+ "type": "integer",
617
+ "minimum": 1,
618
+ "maximum": 100
619
+ },
620
+ "page": {
621
+ "description": "Page number (default 1)",
622
+ "type": "integer",
623
+ "minimum": 1,
624
+ "maximum": 9007199254740991
625
+ }
626
+ },
627
+ "required": [
628
+ "owner",
629
+ "repo"
630
+ ],
631
+ "additionalProperties": false
632
+ },
633
+ "output_schema": {
634
+ "type": "object",
635
+ "properties": {
636
+ "releases": {
637
+ "type": "array",
638
+ "items": {
639
+ "type": "object",
640
+ "properties": {
641
+ "id": {
642
+ "type": "number",
643
+ "description": "Release ID"
644
+ },
645
+ "tag_name": {
646
+ "type": "string",
647
+ "description": "Git tag name"
648
+ },
649
+ "name": {
650
+ "type": "string",
651
+ "description": "Release title"
652
+ },
653
+ "body": {
654
+ "type": "string",
655
+ "description": "Release notes in Markdown"
656
+ },
657
+ "draft": {
658
+ "type": "boolean",
659
+ "description": "Whether this is a draft release"
660
+ },
661
+ "prerelease": {
662
+ "type": "boolean",
663
+ "description": "Whether this is a prerelease"
664
+ },
665
+ "created_at": {
666
+ "type": "string",
667
+ "description": "Created ISO 8601 timestamp"
668
+ },
669
+ "published_at": {
670
+ "type": "string",
671
+ "description": "Published ISO 8601 timestamp"
672
+ },
673
+ "html_url": {
674
+ "type": "string",
675
+ "description": "URL to the release on GitHub"
676
+ },
677
+ "author_login": {
678
+ "type": "string",
679
+ "description": "Login of the release author"
680
+ }
681
+ },
682
+ "required": [
683
+ "id",
684
+ "tag_name",
685
+ "name",
686
+ "body",
687
+ "draft",
688
+ "prerelease",
689
+ "created_at",
690
+ "published_at",
691
+ "html_url",
692
+ "author_login"
693
+ ],
694
+ "additionalProperties": false
695
+ },
696
+ "description": "List of releases"
697
+ }
698
+ },
699
+ "required": [
700
+ "releases"
701
+ ],
702
+ "additionalProperties": false
703
+ }
704
+ },
705
+ {
706
+ "name": "create_release",
707
+ "displayName": "Create Release",
708
+ "description": "Create a new release for a repository. Optionally create as a draft or prerelease.",
709
+ "summary": "Create a release in a repository",
710
+ "icon": "package",
711
+ "group": "Repositories",
712
+ "input_schema": {
713
+ "type": "object",
714
+ "properties": {
715
+ "owner": {
716
+ "type": "string",
717
+ "minLength": 1,
718
+ "description": "Repository owner (user or org)"
719
+ },
720
+ "repo": {
721
+ "type": "string",
722
+ "minLength": 1,
723
+ "description": "Repository name"
724
+ },
725
+ "tag_name": {
726
+ "type": "string",
727
+ "minLength": 1,
728
+ "description": "Git tag name for the release"
729
+ },
730
+ "name": {
731
+ "description": "Release title",
732
+ "type": "string"
733
+ },
734
+ "body": {
735
+ "description": "Release notes in Markdown",
736
+ "type": "string"
737
+ },
738
+ "draft": {
739
+ "description": "Create as a draft release (default: false)",
740
+ "type": "boolean"
741
+ },
742
+ "prerelease": {
743
+ "description": "Mark as a prerelease (default: false)",
744
+ "type": "boolean"
745
+ },
746
+ "target_commitish": {
747
+ "description": "Branch or commit SHA to tag — defaults to the default branch",
748
+ "type": "string"
749
+ }
750
+ },
751
+ "required": [
752
+ "owner",
753
+ "repo",
754
+ "tag_name"
755
+ ],
756
+ "additionalProperties": false
757
+ },
758
+ "output_schema": {
759
+ "type": "object",
760
+ "properties": {
761
+ "release": {
762
+ "type": "object",
763
+ "properties": {
764
+ "id": {
765
+ "type": "number",
766
+ "description": "Release ID"
767
+ },
768
+ "tag_name": {
769
+ "type": "string",
770
+ "description": "Git tag name"
771
+ },
772
+ "name": {
773
+ "type": "string",
774
+ "description": "Release title"
775
+ },
776
+ "body": {
777
+ "type": "string",
778
+ "description": "Release notes in Markdown"
779
+ },
780
+ "draft": {
781
+ "type": "boolean",
782
+ "description": "Whether this is a draft release"
783
+ },
784
+ "prerelease": {
785
+ "type": "boolean",
786
+ "description": "Whether this is a prerelease"
787
+ },
788
+ "created_at": {
789
+ "type": "string",
790
+ "description": "Created ISO 8601 timestamp"
791
+ },
792
+ "published_at": {
793
+ "type": "string",
794
+ "description": "Published ISO 8601 timestamp"
795
+ },
796
+ "html_url": {
797
+ "type": "string",
798
+ "description": "URL to the release on GitHub"
799
+ },
800
+ "author_login": {
801
+ "type": "string",
802
+ "description": "Login of the release author"
803
+ }
804
+ },
805
+ "required": [
806
+ "id",
807
+ "tag_name",
808
+ "name",
809
+ "body",
810
+ "draft",
811
+ "prerelease",
812
+ "created_at",
813
+ "published_at",
814
+ "html_url",
815
+ "author_login"
816
+ ],
817
+ "additionalProperties": false,
818
+ "description": "The created release"
819
+ }
820
+ },
821
+ "required": [
822
+ "release"
823
+ ],
824
+ "additionalProperties": false
825
+ }
826
+ },
827
+ {
828
+ "name": "list_issues",
829
+ "displayName": "List Issues",
830
+ "description": "List issues for a repository. By default returns open issues sorted by creation date. Can filter by state, labels, assignee, and more.",
831
+ "summary": "List issues for a repository",
832
+ "icon": "circle-dot",
833
+ "group": "Issues",
834
+ "input_schema": {
835
+ "type": "object",
836
+ "properties": {
837
+ "owner": {
838
+ "type": "string",
839
+ "minLength": 1,
840
+ "description": "Repository owner (user or org)"
841
+ },
842
+ "repo": {
843
+ "type": "string",
844
+ "minLength": 1,
845
+ "description": "Repository name"
846
+ },
847
+ "state": {
848
+ "description": "Issue state filter (default: open)",
849
+ "type": "string",
850
+ "enum": [
851
+ "open",
852
+ "closed",
853
+ "all"
854
+ ]
855
+ },
856
+ "labels": {
857
+ "description": "Comma-separated list of label names to filter by",
858
+ "type": "string"
859
+ },
860
+ "assignee": {
861
+ "description": "Filter by assignee login, or \"none\" for unassigned, \"*\" for any",
862
+ "type": "string"
863
+ },
864
+ "sort": {
865
+ "description": "Sort field (default: created)",
866
+ "type": "string",
867
+ "enum": [
868
+ "created",
869
+ "updated",
870
+ "comments"
871
+ ]
872
+ },
873
+ "direction": {
874
+ "description": "Sort direction (default: desc)",
875
+ "type": "string",
876
+ "enum": [
877
+ "asc",
878
+ "desc"
879
+ ]
880
+ },
881
+ "per_page": {
882
+ "description": "Results per page (default 30, max 100)",
883
+ "type": "integer",
884
+ "minimum": 1,
885
+ "maximum": 100
886
+ },
887
+ "page": {
888
+ "description": "Page number (default 1)",
889
+ "type": "integer",
890
+ "minimum": 1,
891
+ "maximum": 9007199254740991
892
+ }
893
+ },
894
+ "required": [
895
+ "owner",
896
+ "repo"
897
+ ],
898
+ "additionalProperties": false
899
+ },
900
+ "output_schema": {
901
+ "type": "object",
902
+ "properties": {
903
+ "issues": {
904
+ "type": "array",
905
+ "items": {
906
+ "type": "object",
907
+ "properties": {
908
+ "number": {
909
+ "type": "number",
910
+ "description": "Issue number"
911
+ },
912
+ "title": {
913
+ "type": "string",
914
+ "description": "Issue title"
915
+ },
916
+ "state": {
917
+ "type": "string",
918
+ "description": "Issue state: open or closed"
919
+ },
920
+ "body": {
921
+ "type": "string",
922
+ "description": "Issue body in Markdown"
923
+ },
924
+ "html_url": {
925
+ "type": "string",
926
+ "description": "URL to the issue on GitHub"
927
+ },
928
+ "user_login": {
929
+ "type": "string",
930
+ "description": "Login of the user who created the issue"
931
+ },
932
+ "labels": {
933
+ "type": "array",
934
+ "items": {
935
+ "type": "string"
936
+ },
937
+ "description": "Label names"
938
+ },
939
+ "assignees": {
940
+ "type": "array",
941
+ "items": {
942
+ "type": "string"
943
+ },
944
+ "description": "Assignee logins"
945
+ },
946
+ "comments": {
947
+ "type": "number",
948
+ "description": "Number of comments"
949
+ },
950
+ "created_at": {
951
+ "type": "string",
952
+ "description": "Created ISO 8601 timestamp"
953
+ },
954
+ "updated_at": {
955
+ "type": "string",
956
+ "description": "Updated ISO 8601 timestamp"
957
+ },
958
+ "closed_at": {
959
+ "type": "string",
960
+ "description": "Closed ISO 8601 timestamp or empty string"
961
+ },
962
+ "is_pull_request": {
963
+ "type": "boolean",
964
+ "description": "Whether this is a pull request"
965
+ }
966
+ },
967
+ "required": [
968
+ "number",
969
+ "title",
970
+ "state",
971
+ "body",
972
+ "html_url",
973
+ "user_login",
974
+ "labels",
975
+ "assignees",
976
+ "comments",
977
+ "created_at",
978
+ "updated_at",
979
+ "closed_at",
980
+ "is_pull_request"
981
+ ],
982
+ "additionalProperties": false
983
+ },
984
+ "description": "List of issues"
985
+ }
986
+ },
987
+ "required": [
988
+ "issues"
989
+ ],
990
+ "additionalProperties": false
991
+ }
992
+ },
993
+ {
994
+ "name": "get_issue",
995
+ "displayName": "Get Issue",
996
+ "description": "Get detailed information about a specific issue, including its full body.",
997
+ "summary": "Get details of a specific issue",
998
+ "icon": "circle-dot",
999
+ "group": "Issues",
1000
+ "input_schema": {
1001
+ "type": "object",
1002
+ "properties": {
1003
+ "owner": {
1004
+ "type": "string",
1005
+ "minLength": 1,
1006
+ "description": "Repository owner (user or org)"
1007
+ },
1008
+ "repo": {
1009
+ "type": "string",
1010
+ "minLength": 1,
1011
+ "description": "Repository name"
1012
+ },
1013
+ "issue_number": {
1014
+ "type": "integer",
1015
+ "minimum": 1,
1016
+ "maximum": 9007199254740991,
1017
+ "description": "Issue number"
1018
+ }
1019
+ },
1020
+ "required": [
1021
+ "owner",
1022
+ "repo",
1023
+ "issue_number"
1024
+ ],
1025
+ "additionalProperties": false
1026
+ },
1027
+ "output_schema": {
1028
+ "type": "object",
1029
+ "properties": {
1030
+ "issue": {
1031
+ "type": "object",
1032
+ "properties": {
1033
+ "number": {
1034
+ "type": "number",
1035
+ "description": "Issue number"
1036
+ },
1037
+ "title": {
1038
+ "type": "string",
1039
+ "description": "Issue title"
1040
+ },
1041
+ "state": {
1042
+ "type": "string",
1043
+ "description": "Issue state: open or closed"
1044
+ },
1045
+ "body": {
1046
+ "type": "string",
1047
+ "description": "Issue body in Markdown"
1048
+ },
1049
+ "html_url": {
1050
+ "type": "string",
1051
+ "description": "URL to the issue on GitHub"
1052
+ },
1053
+ "user_login": {
1054
+ "type": "string",
1055
+ "description": "Login of the user who created the issue"
1056
+ },
1057
+ "labels": {
1058
+ "type": "array",
1059
+ "items": {
1060
+ "type": "string"
1061
+ },
1062
+ "description": "Label names"
1063
+ },
1064
+ "assignees": {
1065
+ "type": "array",
1066
+ "items": {
1067
+ "type": "string"
1068
+ },
1069
+ "description": "Assignee logins"
1070
+ },
1071
+ "comments": {
1072
+ "type": "number",
1073
+ "description": "Number of comments"
1074
+ },
1075
+ "created_at": {
1076
+ "type": "string",
1077
+ "description": "Created ISO 8601 timestamp"
1078
+ },
1079
+ "updated_at": {
1080
+ "type": "string",
1081
+ "description": "Updated ISO 8601 timestamp"
1082
+ },
1083
+ "closed_at": {
1084
+ "type": "string",
1085
+ "description": "Closed ISO 8601 timestamp or empty string"
1086
+ },
1087
+ "is_pull_request": {
1088
+ "type": "boolean",
1089
+ "description": "Whether this is a pull request"
1090
+ }
1091
+ },
1092
+ "required": [
1093
+ "number",
1094
+ "title",
1095
+ "state",
1096
+ "body",
1097
+ "html_url",
1098
+ "user_login",
1099
+ "labels",
1100
+ "assignees",
1101
+ "comments",
1102
+ "created_at",
1103
+ "updated_at",
1104
+ "closed_at",
1105
+ "is_pull_request"
1106
+ ],
1107
+ "additionalProperties": false,
1108
+ "description": "Issue details"
1109
+ }
1110
+ },
1111
+ "required": [
1112
+ "issue"
1113
+ ],
1114
+ "additionalProperties": false
1115
+ }
1116
+ },
1117
+ {
1118
+ "name": "create_issue",
1119
+ "displayName": "Create Issue",
1120
+ "description": "Create a new issue in a repository.",
1121
+ "summary": "Create a new issue in a repository",
1122
+ "icon": "plus-circle",
1123
+ "group": "Issues",
1124
+ "input_schema": {
1125
+ "type": "object",
1126
+ "properties": {
1127
+ "owner": {
1128
+ "type": "string",
1129
+ "minLength": 1,
1130
+ "description": "Repository owner (user or org)"
1131
+ },
1132
+ "repo": {
1133
+ "type": "string",
1134
+ "minLength": 1,
1135
+ "description": "Repository name"
1136
+ },
1137
+ "title": {
1138
+ "type": "string",
1139
+ "minLength": 1,
1140
+ "description": "Issue title"
1141
+ },
1142
+ "body": {
1143
+ "description": "Issue body in Markdown",
1144
+ "type": "string"
1145
+ },
1146
+ "labels": {
1147
+ "description": "Label names to apply",
1148
+ "type": "array",
1149
+ "items": {
1150
+ "type": "string"
1151
+ }
1152
+ },
1153
+ "assignees": {
1154
+ "description": "Logins of users to assign",
1155
+ "type": "array",
1156
+ "items": {
1157
+ "type": "string"
1158
+ }
1159
+ }
1160
+ },
1161
+ "required": [
1162
+ "owner",
1163
+ "repo",
1164
+ "title"
1165
+ ],
1166
+ "additionalProperties": false
1167
+ },
1168
+ "output_schema": {
1169
+ "type": "object",
1170
+ "properties": {
1171
+ "issue": {
1172
+ "type": "object",
1173
+ "properties": {
1174
+ "number": {
1175
+ "type": "number",
1176
+ "description": "Issue number"
1177
+ },
1178
+ "title": {
1179
+ "type": "string",
1180
+ "description": "Issue title"
1181
+ },
1182
+ "state": {
1183
+ "type": "string",
1184
+ "description": "Issue state: open or closed"
1185
+ },
1186
+ "body": {
1187
+ "type": "string",
1188
+ "description": "Issue body in Markdown"
1189
+ },
1190
+ "html_url": {
1191
+ "type": "string",
1192
+ "description": "URL to the issue on GitHub"
1193
+ },
1194
+ "user_login": {
1195
+ "type": "string",
1196
+ "description": "Login of the user who created the issue"
1197
+ },
1198
+ "labels": {
1199
+ "type": "array",
1200
+ "items": {
1201
+ "type": "string"
1202
+ },
1203
+ "description": "Label names"
1204
+ },
1205
+ "assignees": {
1206
+ "type": "array",
1207
+ "items": {
1208
+ "type": "string"
1209
+ },
1210
+ "description": "Assignee logins"
1211
+ },
1212
+ "comments": {
1213
+ "type": "number",
1214
+ "description": "Number of comments"
1215
+ },
1216
+ "created_at": {
1217
+ "type": "string",
1218
+ "description": "Created ISO 8601 timestamp"
1219
+ },
1220
+ "updated_at": {
1221
+ "type": "string",
1222
+ "description": "Updated ISO 8601 timestamp"
1223
+ },
1224
+ "closed_at": {
1225
+ "type": "string",
1226
+ "description": "Closed ISO 8601 timestamp or empty string"
1227
+ },
1228
+ "is_pull_request": {
1229
+ "type": "boolean",
1230
+ "description": "Whether this is a pull request"
1231
+ }
1232
+ },
1233
+ "required": [
1234
+ "number",
1235
+ "title",
1236
+ "state",
1237
+ "body",
1238
+ "html_url",
1239
+ "user_login",
1240
+ "labels",
1241
+ "assignees",
1242
+ "comments",
1243
+ "created_at",
1244
+ "updated_at",
1245
+ "closed_at",
1246
+ "is_pull_request"
1247
+ ],
1248
+ "additionalProperties": false,
1249
+ "description": "The created issue"
1250
+ }
1251
+ },
1252
+ "required": [
1253
+ "issue"
1254
+ ],
1255
+ "additionalProperties": false
1256
+ }
1257
+ },
1258
+ {
1259
+ "name": "update_issue",
1260
+ "displayName": "Update Issue",
1261
+ "description": "Update an existing issue — change title, body, state, labels, or assignees.",
1262
+ "summary": "Update an existing issue",
1263
+ "icon": "pencil",
1264
+ "group": "Issues",
1265
+ "input_schema": {
1266
+ "type": "object",
1267
+ "properties": {
1268
+ "owner": {
1269
+ "type": "string",
1270
+ "minLength": 1,
1271
+ "description": "Repository owner (user or org)"
1272
+ },
1273
+ "repo": {
1274
+ "type": "string",
1275
+ "minLength": 1,
1276
+ "description": "Repository name"
1277
+ },
1278
+ "issue_number": {
1279
+ "type": "integer",
1280
+ "minimum": 1,
1281
+ "maximum": 9007199254740991,
1282
+ "description": "Issue number"
1283
+ },
1284
+ "title": {
1285
+ "description": "New issue title",
1286
+ "type": "string"
1287
+ },
1288
+ "body": {
1289
+ "description": "New issue body in Markdown",
1290
+ "type": "string"
1291
+ },
1292
+ "state": {
1293
+ "description": "Set issue state",
1294
+ "type": "string",
1295
+ "enum": [
1296
+ "open",
1297
+ "closed"
1298
+ ]
1299
+ },
1300
+ "labels": {
1301
+ "description": "Replace all labels with these names",
1302
+ "type": "array",
1303
+ "items": {
1304
+ "type": "string"
1305
+ }
1306
+ },
1307
+ "assignees": {
1308
+ "description": "Replace all assignees with these logins",
1309
+ "type": "array",
1310
+ "items": {
1311
+ "type": "string"
1312
+ }
1313
+ }
1314
+ },
1315
+ "required": [
1316
+ "owner",
1317
+ "repo",
1318
+ "issue_number"
1319
+ ],
1320
+ "additionalProperties": false
1321
+ },
1322
+ "output_schema": {
1323
+ "type": "object",
1324
+ "properties": {
1325
+ "issue": {
1326
+ "type": "object",
1327
+ "properties": {
1328
+ "number": {
1329
+ "type": "number",
1330
+ "description": "Issue number"
1331
+ },
1332
+ "title": {
1333
+ "type": "string",
1334
+ "description": "Issue title"
1335
+ },
1336
+ "state": {
1337
+ "type": "string",
1338
+ "description": "Issue state: open or closed"
1339
+ },
1340
+ "body": {
1341
+ "type": "string",
1342
+ "description": "Issue body in Markdown"
1343
+ },
1344
+ "html_url": {
1345
+ "type": "string",
1346
+ "description": "URL to the issue on GitHub"
1347
+ },
1348
+ "user_login": {
1349
+ "type": "string",
1350
+ "description": "Login of the user who created the issue"
1351
+ },
1352
+ "labels": {
1353
+ "type": "array",
1354
+ "items": {
1355
+ "type": "string"
1356
+ },
1357
+ "description": "Label names"
1358
+ },
1359
+ "assignees": {
1360
+ "type": "array",
1361
+ "items": {
1362
+ "type": "string"
1363
+ },
1364
+ "description": "Assignee logins"
1365
+ },
1366
+ "comments": {
1367
+ "type": "number",
1368
+ "description": "Number of comments"
1369
+ },
1370
+ "created_at": {
1371
+ "type": "string",
1372
+ "description": "Created ISO 8601 timestamp"
1373
+ },
1374
+ "updated_at": {
1375
+ "type": "string",
1376
+ "description": "Updated ISO 8601 timestamp"
1377
+ },
1378
+ "closed_at": {
1379
+ "type": "string",
1380
+ "description": "Closed ISO 8601 timestamp or empty string"
1381
+ },
1382
+ "is_pull_request": {
1383
+ "type": "boolean",
1384
+ "description": "Whether this is a pull request"
1385
+ }
1386
+ },
1387
+ "required": [
1388
+ "number",
1389
+ "title",
1390
+ "state",
1391
+ "body",
1392
+ "html_url",
1393
+ "user_login",
1394
+ "labels",
1395
+ "assignees",
1396
+ "comments",
1397
+ "created_at",
1398
+ "updated_at",
1399
+ "closed_at",
1400
+ "is_pull_request"
1401
+ ],
1402
+ "additionalProperties": false,
1403
+ "description": "The updated issue"
1404
+ }
1405
+ },
1406
+ "required": [
1407
+ "issue"
1408
+ ],
1409
+ "additionalProperties": false
1410
+ }
1411
+ },
1412
+ {
1413
+ "name": "search_issues",
1414
+ "displayName": "Search Issues",
1415
+ "description": "Search issues and pull requests across GitHub. Uses GitHub search syntax — e.g., \"repo:owner/name is:open label:bug\".",
1416
+ "summary": "Search issues and pull requests",
1417
+ "icon": "search",
1418
+ "group": "Issues",
1419
+ "input_schema": {
1420
+ "type": "object",
1421
+ "properties": {
1422
+ "query": {
1423
+ "type": "string",
1424
+ "minLength": 1,
1425
+ "description": "Search query using GitHub search syntax (e.g., \"repo:owner/name is:open label:bug\", \"org:myorg is:pr is:merged\")"
1426
+ },
1427
+ "sort": {
1428
+ "description": "Sort field",
1429
+ "type": "string",
1430
+ "enum": [
1431
+ "comments",
1432
+ "reactions",
1433
+ "reactions-+1",
1434
+ "reactions--1",
1435
+ "interactions",
1436
+ "created",
1437
+ "updated"
1438
+ ]
1439
+ },
1440
+ "order": {
1441
+ "description": "Sort order (default: desc)",
1442
+ "type": "string",
1443
+ "enum": [
1444
+ "asc",
1445
+ "desc"
1446
+ ]
1447
+ },
1448
+ "per_page": {
1449
+ "description": "Results per page (default 30, max 100)",
1450
+ "type": "integer",
1451
+ "minimum": 1,
1452
+ "maximum": 100
1453
+ },
1454
+ "page": {
1455
+ "description": "Page number (default 1)",
1456
+ "type": "integer",
1457
+ "minimum": 1,
1458
+ "maximum": 9007199254740991
1459
+ }
1460
+ },
1461
+ "required": [
1462
+ "query"
1463
+ ],
1464
+ "additionalProperties": false
1465
+ },
1466
+ "output_schema": {
1467
+ "type": "object",
1468
+ "properties": {
1469
+ "total_count": {
1470
+ "type": "number",
1471
+ "description": "Total number of matching results"
1472
+ },
1473
+ "issues": {
1474
+ "type": "array",
1475
+ "items": {
1476
+ "type": "object",
1477
+ "properties": {
1478
+ "number": {
1479
+ "type": "number",
1480
+ "description": "Issue number"
1481
+ },
1482
+ "title": {
1483
+ "type": "string",
1484
+ "description": "Issue title"
1485
+ },
1486
+ "state": {
1487
+ "type": "string",
1488
+ "description": "Issue state: open or closed"
1489
+ },
1490
+ "body": {
1491
+ "type": "string",
1492
+ "description": "Issue body in Markdown"
1493
+ },
1494
+ "html_url": {
1495
+ "type": "string",
1496
+ "description": "URL to the issue on GitHub"
1497
+ },
1498
+ "user_login": {
1499
+ "type": "string",
1500
+ "description": "Login of the user who created the issue"
1501
+ },
1502
+ "labels": {
1503
+ "type": "array",
1504
+ "items": {
1505
+ "type": "string"
1506
+ },
1507
+ "description": "Label names"
1508
+ },
1509
+ "assignees": {
1510
+ "type": "array",
1511
+ "items": {
1512
+ "type": "string"
1513
+ },
1514
+ "description": "Assignee logins"
1515
+ },
1516
+ "comments": {
1517
+ "type": "number",
1518
+ "description": "Number of comments"
1519
+ },
1520
+ "created_at": {
1521
+ "type": "string",
1522
+ "description": "Created ISO 8601 timestamp"
1523
+ },
1524
+ "updated_at": {
1525
+ "type": "string",
1526
+ "description": "Updated ISO 8601 timestamp"
1527
+ },
1528
+ "closed_at": {
1529
+ "type": "string",
1530
+ "description": "Closed ISO 8601 timestamp or empty string"
1531
+ },
1532
+ "is_pull_request": {
1533
+ "type": "boolean",
1534
+ "description": "Whether this is a pull request"
1535
+ }
1536
+ },
1537
+ "required": [
1538
+ "number",
1539
+ "title",
1540
+ "state",
1541
+ "body",
1542
+ "html_url",
1543
+ "user_login",
1544
+ "labels",
1545
+ "assignees",
1546
+ "comments",
1547
+ "created_at",
1548
+ "updated_at",
1549
+ "closed_at",
1550
+ "is_pull_request"
1551
+ ],
1552
+ "additionalProperties": false
1553
+ },
1554
+ "description": "List of matching issues/PRs"
1555
+ }
1556
+ },
1557
+ "required": [
1558
+ "total_count",
1559
+ "issues"
1560
+ ],
1561
+ "additionalProperties": false
1562
+ }
1563
+ },
1564
+ {
1565
+ "name": "list_labels",
1566
+ "displayName": "List Labels",
1567
+ "description": "List all labels for a repository. Returns label names, colors, and descriptions.",
1568
+ "summary": "List labels for a repository",
1569
+ "icon": "tag",
1570
+ "group": "Issues",
1571
+ "input_schema": {
1572
+ "type": "object",
1573
+ "properties": {
1574
+ "owner": {
1575
+ "type": "string",
1576
+ "minLength": 1,
1577
+ "description": "Repository owner (user or org)"
1578
+ },
1579
+ "repo": {
1580
+ "type": "string",
1581
+ "minLength": 1,
1582
+ "description": "Repository name"
1583
+ },
1584
+ "per_page": {
1585
+ "description": "Results per page (default 30, max 100)",
1586
+ "type": "integer",
1587
+ "minimum": 1,
1588
+ "maximum": 100
1589
+ },
1590
+ "page": {
1591
+ "description": "Page number (default 1)",
1592
+ "type": "integer",
1593
+ "minimum": 1,
1594
+ "maximum": 9007199254740991
1595
+ }
1596
+ },
1597
+ "required": [
1598
+ "owner",
1599
+ "repo"
1600
+ ],
1601
+ "additionalProperties": false
1602
+ },
1603
+ "output_schema": {
1604
+ "type": "object",
1605
+ "properties": {
1606
+ "labels": {
1607
+ "type": "array",
1608
+ "items": {
1609
+ "type": "object",
1610
+ "properties": {
1611
+ "id": {
1612
+ "type": "number",
1613
+ "description": "Label ID"
1614
+ },
1615
+ "name": {
1616
+ "type": "string",
1617
+ "description": "Label name"
1618
+ },
1619
+ "color": {
1620
+ "type": "string",
1621
+ "description": "Label hex color (without #)"
1622
+ },
1623
+ "description": {
1624
+ "type": "string",
1625
+ "description": "Label description"
1626
+ }
1627
+ },
1628
+ "required": [
1629
+ "id",
1630
+ "name",
1631
+ "color",
1632
+ "description"
1633
+ ],
1634
+ "additionalProperties": false
1635
+ },
1636
+ "description": "List of labels"
1637
+ }
1638
+ },
1639
+ "required": [
1640
+ "labels"
1641
+ ],
1642
+ "additionalProperties": false
1643
+ }
1644
+ },
1645
+ {
1646
+ "name": "create_label",
1647
+ "displayName": "Create Label",
1648
+ "description": "Create a new label in a repository.",
1649
+ "summary": "Create a label in a repository",
1650
+ "icon": "tag",
1651
+ "group": "Issues",
1652
+ "input_schema": {
1653
+ "type": "object",
1654
+ "properties": {
1655
+ "owner": {
1656
+ "type": "string",
1657
+ "minLength": 1,
1658
+ "description": "Repository owner (user or org)"
1659
+ },
1660
+ "repo": {
1661
+ "type": "string",
1662
+ "minLength": 1,
1663
+ "description": "Repository name"
1664
+ },
1665
+ "name": {
1666
+ "type": "string",
1667
+ "minLength": 1,
1668
+ "description": "Label name"
1669
+ },
1670
+ "color": {
1671
+ "description": "Label hex color without the # prefix (e.g., \"ff0000\")",
1672
+ "type": "string"
1673
+ },
1674
+ "description": {
1675
+ "description": "Label description",
1676
+ "type": "string"
1677
+ }
1678
+ },
1679
+ "required": [
1680
+ "owner",
1681
+ "repo",
1682
+ "name"
1683
+ ],
1684
+ "additionalProperties": false
1685
+ },
1686
+ "output_schema": {
1687
+ "type": "object",
1688
+ "properties": {
1689
+ "label": {
1690
+ "type": "object",
1691
+ "properties": {
1692
+ "id": {
1693
+ "type": "number",
1694
+ "description": "Label ID"
1695
+ },
1696
+ "name": {
1697
+ "type": "string",
1698
+ "description": "Label name"
1699
+ },
1700
+ "color": {
1701
+ "type": "string",
1702
+ "description": "Label hex color (without #)"
1703
+ },
1704
+ "description": {
1705
+ "type": "string",
1706
+ "description": "Label description"
1707
+ }
1708
+ },
1709
+ "required": [
1710
+ "id",
1711
+ "name",
1712
+ "color",
1713
+ "description"
1714
+ ],
1715
+ "additionalProperties": false,
1716
+ "description": "The created label"
1717
+ }
1718
+ },
1719
+ "required": [
1720
+ "label"
1721
+ ],
1722
+ "additionalProperties": false
1723
+ }
1724
+ },
1725
+ {
1726
+ "name": "list_pull_requests",
1727
+ "displayName": "List Pull Requests",
1728
+ "description": "List pull requests for a repository with optional state and sort filters.",
1729
+ "summary": "List pull requests for a repository",
1730
+ "icon": "git-pull-request",
1731
+ "group": "Pull Requests",
1732
+ "input_schema": {
1733
+ "type": "object",
1734
+ "properties": {
1735
+ "owner": {
1736
+ "type": "string",
1737
+ "minLength": 1,
1738
+ "description": "Repository owner (user or org)"
1739
+ },
1740
+ "repo": {
1741
+ "type": "string",
1742
+ "minLength": 1,
1743
+ "description": "Repository name"
1744
+ },
1745
+ "state": {
1746
+ "description": "PR state filter (default: open)",
1747
+ "type": "string",
1748
+ "enum": [
1749
+ "open",
1750
+ "closed",
1751
+ "all"
1752
+ ]
1753
+ },
1754
+ "sort": {
1755
+ "description": "Sort field (default: created)",
1756
+ "type": "string",
1757
+ "enum": [
1758
+ "created",
1759
+ "updated",
1760
+ "popularity",
1761
+ "long-running"
1762
+ ]
1763
+ },
1764
+ "direction": {
1765
+ "description": "Sort direction (default: desc)",
1766
+ "type": "string",
1767
+ "enum": [
1768
+ "asc",
1769
+ "desc"
1770
+ ]
1771
+ },
1772
+ "head": {
1773
+ "description": "Filter by head branch — format: \"user:ref-name\" or \"ref-name\"",
1774
+ "type": "string"
1775
+ },
1776
+ "base": {
1777
+ "description": "Filter by base branch name",
1778
+ "type": "string"
1779
+ },
1780
+ "per_page": {
1781
+ "description": "Results per page (default 30, max 100)",
1782
+ "type": "integer",
1783
+ "minimum": 1,
1784
+ "maximum": 100
1785
+ },
1786
+ "page": {
1787
+ "description": "Page number (default 1)",
1788
+ "type": "integer",
1789
+ "minimum": 1,
1790
+ "maximum": 9007199254740991
1791
+ }
1792
+ },
1793
+ "required": [
1794
+ "owner",
1795
+ "repo"
1796
+ ],
1797
+ "additionalProperties": false
1798
+ },
1799
+ "output_schema": {
1800
+ "type": "object",
1801
+ "properties": {
1802
+ "pull_requests": {
1803
+ "type": "array",
1804
+ "items": {
1805
+ "type": "object",
1806
+ "properties": {
1807
+ "number": {
1808
+ "type": "number",
1809
+ "description": "Pull request number"
1810
+ },
1811
+ "title": {
1812
+ "type": "string",
1813
+ "description": "Pull request title"
1814
+ },
1815
+ "state": {
1816
+ "type": "string",
1817
+ "description": "PR state: open, closed, or merged"
1818
+ },
1819
+ "body": {
1820
+ "type": "string",
1821
+ "description": "Pull request body in Markdown"
1822
+ },
1823
+ "html_url": {
1824
+ "type": "string",
1825
+ "description": "URL to the PR on GitHub"
1826
+ },
1827
+ "user_login": {
1828
+ "type": "string",
1829
+ "description": "Login of the user who created the PR"
1830
+ },
1831
+ "head_ref": {
1832
+ "type": "string",
1833
+ "description": "Source branch name"
1834
+ },
1835
+ "base_ref": {
1836
+ "type": "string",
1837
+ "description": "Target branch name"
1838
+ },
1839
+ "labels": {
1840
+ "type": "array",
1841
+ "items": {
1842
+ "type": "string"
1843
+ },
1844
+ "description": "Label names"
1845
+ },
1846
+ "draft": {
1847
+ "type": "boolean",
1848
+ "description": "Whether this is a draft PR"
1849
+ },
1850
+ "merged": {
1851
+ "type": "boolean",
1852
+ "description": "Whether this PR has been merged"
1853
+ },
1854
+ "mergeable": {
1855
+ "type": "boolean",
1856
+ "description": "Whether this PR can be merged"
1857
+ },
1858
+ "comments": {
1859
+ "type": "number",
1860
+ "description": "Number of comments"
1861
+ },
1862
+ "commits": {
1863
+ "type": "number",
1864
+ "description": "Number of commits"
1865
+ },
1866
+ "additions": {
1867
+ "type": "number",
1868
+ "description": "Number of lines added"
1869
+ },
1870
+ "deletions": {
1871
+ "type": "number",
1872
+ "description": "Number of lines deleted"
1873
+ },
1874
+ "changed_files": {
1875
+ "type": "number",
1876
+ "description": "Number of files changed"
1877
+ },
1878
+ "created_at": {
1879
+ "type": "string",
1880
+ "description": "Created ISO 8601 timestamp"
1881
+ },
1882
+ "updated_at": {
1883
+ "type": "string",
1884
+ "description": "Updated ISO 8601 timestamp"
1885
+ }
1886
+ },
1887
+ "required": [
1888
+ "number",
1889
+ "title",
1890
+ "state",
1891
+ "body",
1892
+ "html_url",
1893
+ "user_login",
1894
+ "head_ref",
1895
+ "base_ref",
1896
+ "labels",
1897
+ "draft",
1898
+ "merged",
1899
+ "mergeable",
1900
+ "comments",
1901
+ "commits",
1902
+ "additions",
1903
+ "deletions",
1904
+ "changed_files",
1905
+ "created_at",
1906
+ "updated_at"
1907
+ ],
1908
+ "additionalProperties": false
1909
+ },
1910
+ "description": "List of pull requests"
1911
+ }
1912
+ },
1913
+ "required": [
1914
+ "pull_requests"
1915
+ ],
1916
+ "additionalProperties": false
1917
+ }
1918
+ },
1919
+ {
1920
+ "name": "get_pull_request",
1921
+ "displayName": "Get Pull Request",
1922
+ "description": "Get detailed information about a specific pull request, including merge status and diff stats.",
1923
+ "summary": "Get details of a specific pull request",
1924
+ "icon": "git-pull-request",
1925
+ "group": "Pull Requests",
1926
+ "input_schema": {
1927
+ "type": "object",
1928
+ "properties": {
1929
+ "owner": {
1930
+ "type": "string",
1931
+ "minLength": 1,
1932
+ "description": "Repository owner (user or org)"
1933
+ },
1934
+ "repo": {
1935
+ "type": "string",
1936
+ "minLength": 1,
1937
+ "description": "Repository name"
1938
+ },
1939
+ "pull_number": {
1940
+ "type": "integer",
1941
+ "minimum": 1,
1942
+ "maximum": 9007199254740991,
1943
+ "description": "Pull request number"
1944
+ }
1945
+ },
1946
+ "required": [
1947
+ "owner",
1948
+ "repo",
1949
+ "pull_number"
1950
+ ],
1951
+ "additionalProperties": false
1952
+ },
1953
+ "output_schema": {
1954
+ "type": "object",
1955
+ "properties": {
1956
+ "pull_request": {
1957
+ "type": "object",
1958
+ "properties": {
1959
+ "number": {
1960
+ "type": "number",
1961
+ "description": "Pull request number"
1962
+ },
1963
+ "title": {
1964
+ "type": "string",
1965
+ "description": "Pull request title"
1966
+ },
1967
+ "state": {
1968
+ "type": "string",
1969
+ "description": "PR state: open, closed, or merged"
1970
+ },
1971
+ "body": {
1972
+ "type": "string",
1973
+ "description": "Pull request body in Markdown"
1974
+ },
1975
+ "html_url": {
1976
+ "type": "string",
1977
+ "description": "URL to the PR on GitHub"
1978
+ },
1979
+ "user_login": {
1980
+ "type": "string",
1981
+ "description": "Login of the user who created the PR"
1982
+ },
1983
+ "head_ref": {
1984
+ "type": "string",
1985
+ "description": "Source branch name"
1986
+ },
1987
+ "base_ref": {
1988
+ "type": "string",
1989
+ "description": "Target branch name"
1990
+ },
1991
+ "labels": {
1992
+ "type": "array",
1993
+ "items": {
1994
+ "type": "string"
1995
+ },
1996
+ "description": "Label names"
1997
+ },
1998
+ "draft": {
1999
+ "type": "boolean",
2000
+ "description": "Whether this is a draft PR"
2001
+ },
2002
+ "merged": {
2003
+ "type": "boolean",
2004
+ "description": "Whether this PR has been merged"
2005
+ },
2006
+ "mergeable": {
2007
+ "type": "boolean",
2008
+ "description": "Whether this PR can be merged"
2009
+ },
2010
+ "comments": {
2011
+ "type": "number",
2012
+ "description": "Number of comments"
2013
+ },
2014
+ "commits": {
2015
+ "type": "number",
2016
+ "description": "Number of commits"
2017
+ },
2018
+ "additions": {
2019
+ "type": "number",
2020
+ "description": "Number of lines added"
2021
+ },
2022
+ "deletions": {
2023
+ "type": "number",
2024
+ "description": "Number of lines deleted"
2025
+ },
2026
+ "changed_files": {
2027
+ "type": "number",
2028
+ "description": "Number of files changed"
2029
+ },
2030
+ "created_at": {
2031
+ "type": "string",
2032
+ "description": "Created ISO 8601 timestamp"
2033
+ },
2034
+ "updated_at": {
2035
+ "type": "string",
2036
+ "description": "Updated ISO 8601 timestamp"
2037
+ }
2038
+ },
2039
+ "required": [
2040
+ "number",
2041
+ "title",
2042
+ "state",
2043
+ "body",
2044
+ "html_url",
2045
+ "user_login",
2046
+ "head_ref",
2047
+ "base_ref",
2048
+ "labels",
2049
+ "draft",
2050
+ "merged",
2051
+ "mergeable",
2052
+ "comments",
2053
+ "commits",
2054
+ "additions",
2055
+ "deletions",
2056
+ "changed_files",
2057
+ "created_at",
2058
+ "updated_at"
2059
+ ],
2060
+ "additionalProperties": false,
2061
+ "description": "Pull request details"
2062
+ }
2063
+ },
2064
+ "required": [
2065
+ "pull_request"
2066
+ ],
2067
+ "additionalProperties": false
2068
+ }
2069
+ },
2070
+ {
2071
+ "name": "create_pull_request",
2072
+ "displayName": "Create Pull Request",
2073
+ "description": "Create a new pull request.",
2074
+ "summary": "Create a new pull request",
2075
+ "icon": "git-pull-request-arrow",
2076
+ "group": "Pull Requests",
2077
+ "input_schema": {
2078
+ "type": "object",
2079
+ "properties": {
2080
+ "owner": {
2081
+ "type": "string",
2082
+ "minLength": 1,
2083
+ "description": "Repository owner (user or org)"
2084
+ },
2085
+ "repo": {
2086
+ "type": "string",
2087
+ "minLength": 1,
2088
+ "description": "Repository name"
2089
+ },
2090
+ "title": {
2091
+ "type": "string",
2092
+ "minLength": 1,
2093
+ "description": "Pull request title"
2094
+ },
2095
+ "head": {
2096
+ "type": "string",
2097
+ "minLength": 1,
2098
+ "description": "Source branch name (or \"user:branch\" for cross-repo)"
2099
+ },
2100
+ "base": {
2101
+ "type": "string",
2102
+ "minLength": 1,
2103
+ "description": "Target branch name to merge into"
2104
+ },
2105
+ "body": {
2106
+ "description": "Pull request description in Markdown",
2107
+ "type": "string"
2108
+ },
2109
+ "draft": {
2110
+ "description": "Create as a draft PR (default: false)",
2111
+ "type": "boolean"
2112
+ }
2113
+ },
2114
+ "required": [
2115
+ "owner",
2116
+ "repo",
2117
+ "title",
2118
+ "head",
2119
+ "base"
2120
+ ],
2121
+ "additionalProperties": false
2122
+ },
2123
+ "output_schema": {
2124
+ "type": "object",
2125
+ "properties": {
2126
+ "pull_request": {
2127
+ "type": "object",
2128
+ "properties": {
2129
+ "number": {
2130
+ "type": "number",
2131
+ "description": "Pull request number"
2132
+ },
2133
+ "title": {
2134
+ "type": "string",
2135
+ "description": "Pull request title"
2136
+ },
2137
+ "state": {
2138
+ "type": "string",
2139
+ "description": "PR state: open, closed, or merged"
2140
+ },
2141
+ "body": {
2142
+ "type": "string",
2143
+ "description": "Pull request body in Markdown"
2144
+ },
2145
+ "html_url": {
2146
+ "type": "string",
2147
+ "description": "URL to the PR on GitHub"
2148
+ },
2149
+ "user_login": {
2150
+ "type": "string",
2151
+ "description": "Login of the user who created the PR"
2152
+ },
2153
+ "head_ref": {
2154
+ "type": "string",
2155
+ "description": "Source branch name"
2156
+ },
2157
+ "base_ref": {
2158
+ "type": "string",
2159
+ "description": "Target branch name"
2160
+ },
2161
+ "labels": {
2162
+ "type": "array",
2163
+ "items": {
2164
+ "type": "string"
2165
+ },
2166
+ "description": "Label names"
2167
+ },
2168
+ "draft": {
2169
+ "type": "boolean",
2170
+ "description": "Whether this is a draft PR"
2171
+ },
2172
+ "merged": {
2173
+ "type": "boolean",
2174
+ "description": "Whether this PR has been merged"
2175
+ },
2176
+ "mergeable": {
2177
+ "type": "boolean",
2178
+ "description": "Whether this PR can be merged"
2179
+ },
2180
+ "comments": {
2181
+ "type": "number",
2182
+ "description": "Number of comments"
2183
+ },
2184
+ "commits": {
2185
+ "type": "number",
2186
+ "description": "Number of commits"
2187
+ },
2188
+ "additions": {
2189
+ "type": "number",
2190
+ "description": "Number of lines added"
2191
+ },
2192
+ "deletions": {
2193
+ "type": "number",
2194
+ "description": "Number of lines deleted"
2195
+ },
2196
+ "changed_files": {
2197
+ "type": "number",
2198
+ "description": "Number of files changed"
2199
+ },
2200
+ "created_at": {
2201
+ "type": "string",
2202
+ "description": "Created ISO 8601 timestamp"
2203
+ },
2204
+ "updated_at": {
2205
+ "type": "string",
2206
+ "description": "Updated ISO 8601 timestamp"
2207
+ }
2208
+ },
2209
+ "required": [
2210
+ "number",
2211
+ "title",
2212
+ "state",
2213
+ "body",
2214
+ "html_url",
2215
+ "user_login",
2216
+ "head_ref",
2217
+ "base_ref",
2218
+ "labels",
2219
+ "draft",
2220
+ "merged",
2221
+ "mergeable",
2222
+ "comments",
2223
+ "commits",
2224
+ "additions",
2225
+ "deletions",
2226
+ "changed_files",
2227
+ "created_at",
2228
+ "updated_at"
2229
+ ],
2230
+ "additionalProperties": false,
2231
+ "description": "The created pull request"
2232
+ }
2233
+ },
2234
+ "required": [
2235
+ "pull_request"
2236
+ ],
2237
+ "additionalProperties": false
2238
+ }
2239
+ },
2240
+ {
2241
+ "name": "update_pull_request",
2242
+ "displayName": "Update Pull Request",
2243
+ "description": "Update an existing pull request. Only specified fields are changed; omitted fields remain unchanged.",
2244
+ "summary": "Update a pull request",
2245
+ "icon": "git-pull-request",
2246
+ "group": "Pull Requests",
2247
+ "input_schema": {
2248
+ "type": "object",
2249
+ "properties": {
2250
+ "owner": {
2251
+ "type": "string",
2252
+ "minLength": 1,
2253
+ "description": "Repository owner (user or org)"
2254
+ },
2255
+ "repo": {
2256
+ "type": "string",
2257
+ "minLength": 1,
2258
+ "description": "Repository name"
2259
+ },
2260
+ "pull_number": {
2261
+ "type": "integer",
2262
+ "minimum": 1,
2263
+ "maximum": 9007199254740991,
2264
+ "description": "Pull request number"
2265
+ },
2266
+ "title": {
2267
+ "description": "New pull request title",
2268
+ "type": "string"
2269
+ },
2270
+ "body": {
2271
+ "description": "New pull request body in Markdown",
2272
+ "type": "string"
2273
+ },
2274
+ "state": {
2275
+ "description": "Set PR state",
2276
+ "type": "string",
2277
+ "enum": [
2278
+ "open",
2279
+ "closed"
2280
+ ]
2281
+ },
2282
+ "base": {
2283
+ "description": "New target branch name to merge into",
2284
+ "type": "string"
2285
+ },
2286
+ "draft": {
2287
+ "description": "Convert to draft or ready for review",
2288
+ "type": "boolean"
2289
+ }
2290
+ },
2291
+ "required": [
2292
+ "owner",
2293
+ "repo",
2294
+ "pull_number"
2295
+ ],
2296
+ "additionalProperties": false
2297
+ },
2298
+ "output_schema": {
2299
+ "type": "object",
2300
+ "properties": {
2301
+ "pull_request": {
2302
+ "type": "object",
2303
+ "properties": {
2304
+ "number": {
2305
+ "type": "number",
2306
+ "description": "Pull request number"
2307
+ },
2308
+ "title": {
2309
+ "type": "string",
2310
+ "description": "Pull request title"
2311
+ },
2312
+ "state": {
2313
+ "type": "string",
2314
+ "description": "PR state: open, closed, or merged"
2315
+ },
2316
+ "body": {
2317
+ "type": "string",
2318
+ "description": "Pull request body in Markdown"
2319
+ },
2320
+ "html_url": {
2321
+ "type": "string",
2322
+ "description": "URL to the PR on GitHub"
2323
+ },
2324
+ "user_login": {
2325
+ "type": "string",
2326
+ "description": "Login of the user who created the PR"
2327
+ },
2328
+ "head_ref": {
2329
+ "type": "string",
2330
+ "description": "Source branch name"
2331
+ },
2332
+ "base_ref": {
2333
+ "type": "string",
2334
+ "description": "Target branch name"
2335
+ },
2336
+ "labels": {
2337
+ "type": "array",
2338
+ "items": {
2339
+ "type": "string"
2340
+ },
2341
+ "description": "Label names"
2342
+ },
2343
+ "draft": {
2344
+ "type": "boolean",
2345
+ "description": "Whether this is a draft PR"
2346
+ },
2347
+ "merged": {
2348
+ "type": "boolean",
2349
+ "description": "Whether this PR has been merged"
2350
+ },
2351
+ "mergeable": {
2352
+ "type": "boolean",
2353
+ "description": "Whether this PR can be merged"
2354
+ },
2355
+ "comments": {
2356
+ "type": "number",
2357
+ "description": "Number of comments"
2358
+ },
2359
+ "commits": {
2360
+ "type": "number",
2361
+ "description": "Number of commits"
2362
+ },
2363
+ "additions": {
2364
+ "type": "number",
2365
+ "description": "Number of lines added"
2366
+ },
2367
+ "deletions": {
2368
+ "type": "number",
2369
+ "description": "Number of lines deleted"
2370
+ },
2371
+ "changed_files": {
2372
+ "type": "number",
2373
+ "description": "Number of files changed"
2374
+ },
2375
+ "created_at": {
2376
+ "type": "string",
2377
+ "description": "Created ISO 8601 timestamp"
2378
+ },
2379
+ "updated_at": {
2380
+ "type": "string",
2381
+ "description": "Updated ISO 8601 timestamp"
2382
+ }
2383
+ },
2384
+ "required": [
2385
+ "number",
2386
+ "title",
2387
+ "state",
2388
+ "body",
2389
+ "html_url",
2390
+ "user_login",
2391
+ "head_ref",
2392
+ "base_ref",
2393
+ "labels",
2394
+ "draft",
2395
+ "merged",
2396
+ "mergeable",
2397
+ "comments",
2398
+ "commits",
2399
+ "additions",
2400
+ "deletions",
2401
+ "changed_files",
2402
+ "created_at",
2403
+ "updated_at"
2404
+ ],
2405
+ "additionalProperties": false,
2406
+ "description": "The updated pull request"
2407
+ }
2408
+ },
2409
+ "required": [
2410
+ "pull_request"
2411
+ ],
2412
+ "additionalProperties": false
2413
+ }
2414
+ },
2415
+ {
2416
+ "name": "merge_pull_request",
2417
+ "displayName": "Merge Pull Request",
2418
+ "description": "Merge a pull request. Supports merge commit, squash, and rebase strategies.",
2419
+ "summary": "Merge a pull request",
2420
+ "icon": "git-merge",
2421
+ "group": "Pull Requests",
2422
+ "input_schema": {
2423
+ "type": "object",
2424
+ "properties": {
2425
+ "owner": {
2426
+ "type": "string",
2427
+ "minLength": 1,
2428
+ "description": "Repository owner (user or org)"
2429
+ },
2430
+ "repo": {
2431
+ "type": "string",
2432
+ "minLength": 1,
2433
+ "description": "Repository name"
2434
+ },
2435
+ "pull_number": {
2436
+ "type": "integer",
2437
+ "minimum": 1,
2438
+ "maximum": 9007199254740991,
2439
+ "description": "Pull request number"
2440
+ },
2441
+ "commit_title": {
2442
+ "description": "Title for the merge commit",
2443
+ "type": "string"
2444
+ },
2445
+ "commit_message": {
2446
+ "description": "Extra detail for the merge commit",
2447
+ "type": "string"
2448
+ },
2449
+ "merge_method": {
2450
+ "description": "Merge strategy (default: merge)",
2451
+ "type": "string",
2452
+ "enum": [
2453
+ "merge",
2454
+ "squash",
2455
+ "rebase"
2456
+ ]
2457
+ }
2458
+ },
2459
+ "required": [
2460
+ "owner",
2461
+ "repo",
2462
+ "pull_number"
2463
+ ],
2464
+ "additionalProperties": false
2465
+ },
2466
+ "output_schema": {
2467
+ "type": "object",
2468
+ "properties": {
2469
+ "sha": {
2470
+ "type": "string",
2471
+ "description": "SHA of the merge commit"
2472
+ },
2473
+ "message": {
2474
+ "type": "string",
2475
+ "description": "Merge result message"
2476
+ },
2477
+ "merged": {
2478
+ "type": "boolean",
2479
+ "description": "Whether the merge succeeded"
2480
+ }
2481
+ },
2482
+ "required": [
2483
+ "sha",
2484
+ "message",
2485
+ "merged"
2486
+ ],
2487
+ "additionalProperties": false
2488
+ }
2489
+ },
2490
+ {
2491
+ "name": "get_pull_request_diff",
2492
+ "displayName": "Get Pull Request Diff",
2493
+ "description": "Get the raw diff of a pull request. Returns the unified diff text for all changed files.",
2494
+ "summary": "Get the raw diff of a pull request",
2495
+ "icon": "file-diff",
2496
+ "group": "Pull Requests",
2497
+ "input_schema": {
2498
+ "type": "object",
2499
+ "properties": {
2500
+ "owner": {
2501
+ "type": "string",
2502
+ "minLength": 1,
2503
+ "description": "Repository owner (user or org)"
2504
+ },
2505
+ "repo": {
2506
+ "type": "string",
2507
+ "minLength": 1,
2508
+ "description": "Repository name"
2509
+ },
2510
+ "pull_number": {
2511
+ "type": "integer",
2512
+ "minimum": 1,
2513
+ "maximum": 9007199254740991,
2514
+ "description": "Pull request number"
2515
+ }
2516
+ },
2517
+ "required": [
2518
+ "owner",
2519
+ "repo",
2520
+ "pull_number"
2521
+ ],
2522
+ "additionalProperties": false
2523
+ },
2524
+ "output_schema": {
2525
+ "type": "object",
2526
+ "properties": {
2527
+ "diff": {
2528
+ "type": "string",
2529
+ "description": "Raw unified diff text"
2530
+ }
2531
+ },
2532
+ "required": [
2533
+ "diff"
2534
+ ],
2535
+ "additionalProperties": false
2536
+ }
2537
+ },
2538
+ {
2539
+ "name": "list_pull_request_files",
2540
+ "displayName": "List Pull Request Files",
2541
+ "description": "List files changed in a pull request. Returns filenames, change status, and line-level diff statistics.",
2542
+ "summary": "List files changed in a pull request",
2543
+ "icon": "files",
2544
+ "group": "Pull Requests",
2545
+ "input_schema": {
2546
+ "type": "object",
2547
+ "properties": {
2548
+ "owner": {
2549
+ "type": "string",
2550
+ "minLength": 1,
2551
+ "description": "Repository owner (user or org)"
2552
+ },
2553
+ "repo": {
2554
+ "type": "string",
2555
+ "minLength": 1,
2556
+ "description": "Repository name"
2557
+ },
2558
+ "pull_number": {
2559
+ "type": "integer",
2560
+ "minimum": 1,
2561
+ "maximum": 9007199254740991,
2562
+ "description": "Pull request number"
2563
+ },
2564
+ "per_page": {
2565
+ "description": "Results per page (default 30, max 100)",
2566
+ "type": "integer",
2567
+ "minimum": 1,
2568
+ "maximum": 100
2569
+ },
2570
+ "page": {
2571
+ "description": "Page number (default 1)",
2572
+ "type": "integer",
2573
+ "minimum": 1,
2574
+ "maximum": 9007199254740991
2575
+ }
2576
+ },
2577
+ "required": [
2578
+ "owner",
2579
+ "repo",
2580
+ "pull_number"
2581
+ ],
2582
+ "additionalProperties": false
2583
+ },
2584
+ "output_schema": {
2585
+ "type": "object",
2586
+ "properties": {
2587
+ "files": {
2588
+ "type": "array",
2589
+ "items": {
2590
+ "type": "object",
2591
+ "properties": {
2592
+ "filename": {
2593
+ "type": "string",
2594
+ "description": "File path"
2595
+ },
2596
+ "status": {
2597
+ "type": "string",
2598
+ "description": "File status: added, removed, modified, renamed, copied, changed, unchanged"
2599
+ },
2600
+ "additions": {
2601
+ "type": "number",
2602
+ "description": "Number of lines added"
2603
+ },
2604
+ "deletions": {
2605
+ "type": "number",
2606
+ "description": "Number of lines deleted"
2607
+ },
2608
+ "changes": {
2609
+ "type": "number",
2610
+ "description": "Total number of line changes"
2611
+ },
2612
+ "patch": {
2613
+ "type": "string",
2614
+ "description": "Unified diff patch text (may be empty for binary files)"
2615
+ }
2616
+ },
2617
+ "required": [
2618
+ "filename",
2619
+ "status",
2620
+ "additions",
2621
+ "deletions",
2622
+ "changes",
2623
+ "patch"
2624
+ ],
2625
+ "additionalProperties": false
2626
+ },
2627
+ "description": "List of changed files"
2628
+ }
2629
+ },
2630
+ "required": [
2631
+ "files"
2632
+ ],
2633
+ "additionalProperties": false
2634
+ }
2635
+ },
2636
+ {
2637
+ "name": "request_pull_request_review",
2638
+ "displayName": "Request Pull Request Review",
2639
+ "description": "Request reviewers for a pull request. Specify individual users and/or team slugs to request reviews from.",
2640
+ "summary": "Request reviewers for a pull request",
2641
+ "icon": "user-plus",
2642
+ "group": "Pull Requests",
2643
+ "input_schema": {
2644
+ "type": "object",
2645
+ "properties": {
2646
+ "owner": {
2647
+ "type": "string",
2648
+ "minLength": 1,
2649
+ "description": "Repository owner (user or org)"
2650
+ },
2651
+ "repo": {
2652
+ "type": "string",
2653
+ "minLength": 1,
2654
+ "description": "Repository name"
2655
+ },
2656
+ "pull_number": {
2657
+ "type": "integer",
2658
+ "minimum": 1,
2659
+ "maximum": 9007199254740991,
2660
+ "description": "Pull request number"
2661
+ },
2662
+ "reviewers": {
2663
+ "description": "Array of user logins to request review from",
2664
+ "type": "array",
2665
+ "items": {
2666
+ "type": "string"
2667
+ }
2668
+ },
2669
+ "team_reviewers": {
2670
+ "description": "Array of team slugs to request review from",
2671
+ "type": "array",
2672
+ "items": {
2673
+ "type": "string"
2674
+ }
2675
+ }
2676
+ },
2677
+ "required": [
2678
+ "owner",
2679
+ "repo",
2680
+ "pull_number"
2681
+ ],
2682
+ "additionalProperties": false
2683
+ },
2684
+ "output_schema": {
2685
+ "type": "object",
2686
+ "properties": {
2687
+ "pull_request": {
2688
+ "type": "object",
2689
+ "properties": {
2690
+ "number": {
2691
+ "type": "number",
2692
+ "description": "Pull request number"
2693
+ },
2694
+ "title": {
2695
+ "type": "string",
2696
+ "description": "Pull request title"
2697
+ },
2698
+ "state": {
2699
+ "type": "string",
2700
+ "description": "PR state: open, closed, or merged"
2701
+ },
2702
+ "body": {
2703
+ "type": "string",
2704
+ "description": "Pull request body in Markdown"
2705
+ },
2706
+ "html_url": {
2707
+ "type": "string",
2708
+ "description": "URL to the PR on GitHub"
2709
+ },
2710
+ "user_login": {
2711
+ "type": "string",
2712
+ "description": "Login of the user who created the PR"
2713
+ },
2714
+ "head_ref": {
2715
+ "type": "string",
2716
+ "description": "Source branch name"
2717
+ },
2718
+ "base_ref": {
2719
+ "type": "string",
2720
+ "description": "Target branch name"
2721
+ },
2722
+ "labels": {
2723
+ "type": "array",
2724
+ "items": {
2725
+ "type": "string"
2726
+ },
2727
+ "description": "Label names"
2728
+ },
2729
+ "draft": {
2730
+ "type": "boolean",
2731
+ "description": "Whether this is a draft PR"
2732
+ },
2733
+ "merged": {
2734
+ "type": "boolean",
2735
+ "description": "Whether this PR has been merged"
2736
+ },
2737
+ "mergeable": {
2738
+ "type": "boolean",
2739
+ "description": "Whether this PR can be merged"
2740
+ },
2741
+ "comments": {
2742
+ "type": "number",
2743
+ "description": "Number of comments"
2744
+ },
2745
+ "commits": {
2746
+ "type": "number",
2747
+ "description": "Number of commits"
2748
+ },
2749
+ "additions": {
2750
+ "type": "number",
2751
+ "description": "Number of lines added"
2752
+ },
2753
+ "deletions": {
2754
+ "type": "number",
2755
+ "description": "Number of lines deleted"
2756
+ },
2757
+ "changed_files": {
2758
+ "type": "number",
2759
+ "description": "Number of files changed"
2760
+ },
2761
+ "created_at": {
2762
+ "type": "string",
2763
+ "description": "Created ISO 8601 timestamp"
2764
+ },
2765
+ "updated_at": {
2766
+ "type": "string",
2767
+ "description": "Updated ISO 8601 timestamp"
2768
+ }
2769
+ },
2770
+ "required": [
2771
+ "number",
2772
+ "title",
2773
+ "state",
2774
+ "body",
2775
+ "html_url",
2776
+ "user_login",
2777
+ "head_ref",
2778
+ "base_ref",
2779
+ "labels",
2780
+ "draft",
2781
+ "merged",
2782
+ "mergeable",
2783
+ "comments",
2784
+ "commits",
2785
+ "additions",
2786
+ "deletions",
2787
+ "changed_files",
2788
+ "created_at",
2789
+ "updated_at"
2790
+ ],
2791
+ "additionalProperties": false,
2792
+ "description": "The pull request with updated reviewers"
2793
+ }
2794
+ },
2795
+ "required": [
2796
+ "pull_request"
2797
+ ],
2798
+ "additionalProperties": false
2799
+ }
2800
+ },
2801
+ {
2802
+ "name": "list_comments",
2803
+ "displayName": "List Comments",
2804
+ "description": "List comments on an issue or pull request.",
2805
+ "summary": "List comments on an issue or pull request",
2806
+ "icon": "message-square",
2807
+ "group": "Comments",
2808
+ "input_schema": {
2809
+ "type": "object",
2810
+ "properties": {
2811
+ "owner": {
2812
+ "type": "string",
2813
+ "minLength": 1,
2814
+ "description": "Repository owner (user or org)"
2815
+ },
2816
+ "repo": {
2817
+ "type": "string",
2818
+ "minLength": 1,
2819
+ "description": "Repository name"
2820
+ },
2821
+ "issue_number": {
2822
+ "type": "integer",
2823
+ "minimum": 1,
2824
+ "maximum": 9007199254740991,
2825
+ "description": "Issue or pull request number"
2826
+ },
2827
+ "per_page": {
2828
+ "description": "Results per page (default 30, max 100)",
2829
+ "type": "integer",
2830
+ "minimum": 1,
2831
+ "maximum": 100
2832
+ },
2833
+ "page": {
2834
+ "description": "Page number (default 1)",
2835
+ "type": "integer",
2836
+ "minimum": 1,
2837
+ "maximum": 9007199254740991
2838
+ }
2839
+ },
2840
+ "required": [
2841
+ "owner",
2842
+ "repo",
2843
+ "issue_number"
2844
+ ],
2845
+ "additionalProperties": false
2846
+ },
2847
+ "output_schema": {
2848
+ "type": "object",
2849
+ "properties": {
2850
+ "comments": {
2851
+ "type": "array",
2852
+ "items": {
2853
+ "type": "object",
2854
+ "properties": {
2855
+ "id": {
2856
+ "type": "number",
2857
+ "description": "Comment ID"
2858
+ },
2859
+ "body": {
2860
+ "type": "string",
2861
+ "description": "Comment body in Markdown"
2862
+ },
2863
+ "user_login": {
2864
+ "type": "string",
2865
+ "description": "Login of the commenter"
2866
+ },
2867
+ "html_url": {
2868
+ "type": "string",
2869
+ "description": "URL to the comment on GitHub"
2870
+ },
2871
+ "created_at": {
2872
+ "type": "string",
2873
+ "description": "Created ISO 8601 timestamp"
2874
+ },
2875
+ "updated_at": {
2876
+ "type": "string",
2877
+ "description": "Updated ISO 8601 timestamp"
2878
+ }
2879
+ },
2880
+ "required": [
2881
+ "id",
2882
+ "body",
2883
+ "user_login",
2884
+ "html_url",
2885
+ "created_at",
2886
+ "updated_at"
2887
+ ],
2888
+ "additionalProperties": false
2889
+ },
2890
+ "description": "List of comments"
2891
+ }
2892
+ },
2893
+ "required": [
2894
+ "comments"
2895
+ ],
2896
+ "additionalProperties": false
2897
+ }
2898
+ },
2899
+ {
2900
+ "name": "create_comment",
2901
+ "displayName": "Create Comment",
2902
+ "description": "Add a comment to an issue or pull request.",
2903
+ "summary": "Add a comment to an issue or pull request",
2904
+ "icon": "message-square-plus",
2905
+ "group": "Comments",
2906
+ "input_schema": {
2907
+ "type": "object",
2908
+ "properties": {
2909
+ "owner": {
2910
+ "type": "string",
2911
+ "minLength": 1,
2912
+ "description": "Repository owner (user or org)"
2913
+ },
2914
+ "repo": {
2915
+ "type": "string",
2916
+ "minLength": 1,
2917
+ "description": "Repository name"
2918
+ },
2919
+ "issue_number": {
2920
+ "type": "integer",
2921
+ "minimum": 1,
2922
+ "maximum": 9007199254740991,
2923
+ "description": "Issue or pull request number"
2924
+ },
2925
+ "body": {
2926
+ "type": "string",
2927
+ "minLength": 1,
2928
+ "description": "Comment body in Markdown"
2929
+ }
2930
+ },
2931
+ "required": [
2932
+ "owner",
2933
+ "repo",
2934
+ "issue_number",
2935
+ "body"
2936
+ ],
2937
+ "additionalProperties": false
2938
+ },
2939
+ "output_schema": {
2940
+ "type": "object",
2941
+ "properties": {
2942
+ "comment": {
2943
+ "type": "object",
2944
+ "properties": {
2945
+ "id": {
2946
+ "type": "number",
2947
+ "description": "Comment ID"
2948
+ },
2949
+ "body": {
2950
+ "type": "string",
2951
+ "description": "Comment body in Markdown"
2952
+ },
2953
+ "user_login": {
2954
+ "type": "string",
2955
+ "description": "Login of the commenter"
2956
+ },
2957
+ "html_url": {
2958
+ "type": "string",
2959
+ "description": "URL to the comment on GitHub"
2960
+ },
2961
+ "created_at": {
2962
+ "type": "string",
2963
+ "description": "Created ISO 8601 timestamp"
2964
+ },
2965
+ "updated_at": {
2966
+ "type": "string",
2967
+ "description": "Updated ISO 8601 timestamp"
2968
+ }
2969
+ },
2970
+ "required": [
2971
+ "id",
2972
+ "body",
2973
+ "user_login",
2974
+ "html_url",
2975
+ "created_at",
2976
+ "updated_at"
2977
+ ],
2978
+ "additionalProperties": false,
2979
+ "description": "The created comment"
2980
+ }
2981
+ },
2982
+ "required": [
2983
+ "comment"
2984
+ ],
2985
+ "additionalProperties": false
2986
+ }
2987
+ },
2988
+ {
2989
+ "name": "get_user_profile",
2990
+ "displayName": "Get User Profile",
2991
+ "description": "Get a GitHub user's profile. Defaults to the authenticated user if no username is provided.",
2992
+ "summary": "Get a user's profile information",
2993
+ "icon": "user",
2994
+ "group": "Users",
2995
+ "input_schema": {
2996
+ "type": "object",
2997
+ "properties": {
2998
+ "username": {
2999
+ "description": "GitHub username — defaults to the authenticated user",
3000
+ "type": "string"
3001
+ }
3002
+ },
3003
+ "additionalProperties": false
3004
+ },
3005
+ "output_schema": {
3006
+ "type": "object",
3007
+ "properties": {
3008
+ "user": {
3009
+ "type": "object",
3010
+ "properties": {
3011
+ "login": {
3012
+ "type": "string",
3013
+ "description": "Username"
3014
+ },
3015
+ "id": {
3016
+ "type": "number",
3017
+ "description": "User ID"
3018
+ },
3019
+ "name": {
3020
+ "type": "string",
3021
+ "description": "Display name"
3022
+ },
3023
+ "bio": {
3024
+ "type": "string",
3025
+ "description": "User bio"
3026
+ },
3027
+ "company": {
3028
+ "type": "string",
3029
+ "description": "Company name"
3030
+ },
3031
+ "location": {
3032
+ "type": "string",
3033
+ "description": "Location"
3034
+ },
3035
+ "email": {
3036
+ "type": "string",
3037
+ "description": "Public email address"
3038
+ },
3039
+ "html_url": {
3040
+ "type": "string",
3041
+ "description": "URL to the profile on GitHub"
3042
+ },
3043
+ "avatar_url": {
3044
+ "type": "string",
3045
+ "description": "Avatar image URL"
3046
+ },
3047
+ "public_repos": {
3048
+ "type": "number",
3049
+ "description": "Number of public repositories"
3050
+ },
3051
+ "followers": {
3052
+ "type": "number",
3053
+ "description": "Number of followers"
3054
+ },
3055
+ "following": {
3056
+ "type": "number",
3057
+ "description": "Number of users being followed"
3058
+ },
3059
+ "created_at": {
3060
+ "type": "string",
3061
+ "description": "Account created ISO 8601 timestamp"
3062
+ }
3063
+ },
3064
+ "required": [
3065
+ "login",
3066
+ "id",
3067
+ "name",
3068
+ "bio",
3069
+ "company",
3070
+ "location",
3071
+ "email",
3072
+ "html_url",
3073
+ "avatar_url",
3074
+ "public_repos",
3075
+ "followers",
3076
+ "following",
3077
+ "created_at"
3078
+ ],
3079
+ "additionalProperties": false,
3080
+ "description": "User profile"
3081
+ }
3082
+ },
3083
+ "required": [
3084
+ "user"
3085
+ ],
3086
+ "additionalProperties": false
3087
+ }
3088
+ },
3089
+ {
3090
+ "name": "list_org_members",
3091
+ "displayName": "List Organization Members",
3092
+ "description": "List public members of a GitHub organization.",
3093
+ "summary": "List members of an organization",
3094
+ "icon": "users",
3095
+ "group": "Users",
3096
+ "input_schema": {
3097
+ "type": "object",
3098
+ "properties": {
3099
+ "org": {
3100
+ "type": "string",
3101
+ "minLength": 1,
3102
+ "description": "Organization name"
3103
+ },
3104
+ "per_page": {
3105
+ "description": "Results per page (default 30, max 100)",
3106
+ "type": "integer",
3107
+ "minimum": 1,
3108
+ "maximum": 100
3109
+ },
3110
+ "page": {
3111
+ "description": "Page number (default 1)",
3112
+ "type": "integer",
3113
+ "minimum": 1,
3114
+ "maximum": 9007199254740991
3115
+ }
3116
+ },
3117
+ "required": [
3118
+ "org"
3119
+ ],
3120
+ "additionalProperties": false
3121
+ },
3122
+ "output_schema": {
3123
+ "type": "object",
3124
+ "properties": {
3125
+ "members": {
3126
+ "type": "array",
3127
+ "items": {
3128
+ "type": "object",
3129
+ "properties": {
3130
+ "login": {
3131
+ "type": "string",
3132
+ "description": "Username"
3133
+ },
3134
+ "id": {
3135
+ "type": "number",
3136
+ "description": "User ID"
3137
+ },
3138
+ "avatar_url": {
3139
+ "type": "string",
3140
+ "description": "Avatar URL"
3141
+ },
3142
+ "html_url": {
3143
+ "type": "string",
3144
+ "description": "Profile URL"
3145
+ }
3146
+ },
3147
+ "required": [
3148
+ "login",
3149
+ "id",
3150
+ "avatar_url",
3151
+ "html_url"
3152
+ ],
3153
+ "additionalProperties": false
3154
+ },
3155
+ "description": "List of organization members"
3156
+ }
3157
+ },
3158
+ "required": [
3159
+ "members"
3160
+ ],
3161
+ "additionalProperties": false
3162
+ }
3163
+ },
3164
+ {
3165
+ "name": "list_branches",
3166
+ "displayName": "List Branches",
3167
+ "description": "List branches for a repository.",
3168
+ "summary": "List branches for a repository",
3169
+ "icon": "git-branch",
3170
+ "group": "Repositories",
3171
+ "input_schema": {
3172
+ "type": "object",
3173
+ "properties": {
3174
+ "owner": {
3175
+ "type": "string",
3176
+ "minLength": 1,
3177
+ "description": "Repository owner (user or org)"
3178
+ },
3179
+ "repo": {
3180
+ "type": "string",
3181
+ "minLength": 1,
3182
+ "description": "Repository name"
3183
+ },
3184
+ "per_page": {
3185
+ "description": "Results per page (default 30, max 100)",
3186
+ "type": "integer",
3187
+ "minimum": 1,
3188
+ "maximum": 100
3189
+ },
3190
+ "page": {
3191
+ "description": "Page number (default 1)",
3192
+ "type": "integer",
3193
+ "minimum": 1,
3194
+ "maximum": 9007199254740991
3195
+ }
3196
+ },
3197
+ "required": [
3198
+ "owner",
3199
+ "repo"
3200
+ ],
3201
+ "additionalProperties": false
3202
+ },
3203
+ "output_schema": {
3204
+ "type": "object",
3205
+ "properties": {
3206
+ "branches": {
3207
+ "type": "array",
3208
+ "items": {
3209
+ "type": "object",
3210
+ "properties": {
3211
+ "name": {
3212
+ "type": "string",
3213
+ "description": "Branch name"
3214
+ },
3215
+ "protected": {
3216
+ "type": "boolean",
3217
+ "description": "Whether the branch is protected"
3218
+ },
3219
+ "sha": {
3220
+ "type": "string",
3221
+ "description": "SHA of the branch HEAD commit"
3222
+ }
3223
+ },
3224
+ "required": [
3225
+ "name",
3226
+ "protected",
3227
+ "sha"
3228
+ ],
3229
+ "additionalProperties": false
3230
+ },
3231
+ "description": "List of branches"
3232
+ }
3233
+ },
3234
+ "required": [
3235
+ "branches"
3236
+ ],
3237
+ "additionalProperties": false
3238
+ }
3239
+ },
3240
+ {
3241
+ "name": "get_file_content",
3242
+ "displayName": "Get File Content",
3243
+ "description": "Read a file from a repository. Returns the raw content as text. Use the ref parameter to read from a specific branch or commit.",
3244
+ "summary": "Read a file from a repository",
3245
+ "icon": "file-text",
3246
+ "group": "Repositories",
3247
+ "input_schema": {
3248
+ "type": "object",
3249
+ "properties": {
3250
+ "owner": {
3251
+ "type": "string",
3252
+ "minLength": 1,
3253
+ "description": "Repository owner (user or org)"
3254
+ },
3255
+ "repo": {
3256
+ "type": "string",
3257
+ "minLength": 1,
3258
+ "description": "Repository name"
3259
+ },
3260
+ "path": {
3261
+ "type": "string",
3262
+ "minLength": 1,
3263
+ "description": "File path relative to repository root (e.g., \"src/index.ts\")"
3264
+ },
3265
+ "ref": {
3266
+ "description": "Branch name, tag, or commit SHA (defaults to the default branch)",
3267
+ "type": "string"
3268
+ }
3269
+ },
3270
+ "required": [
3271
+ "owner",
3272
+ "repo",
3273
+ "path"
3274
+ ],
3275
+ "additionalProperties": false
3276
+ },
3277
+ "output_schema": {
3278
+ "type": "object",
3279
+ "properties": {
3280
+ "content": {
3281
+ "type": "string",
3282
+ "description": "Raw file content as text"
3283
+ },
3284
+ "path": {
3285
+ "type": "string",
3286
+ "description": "File path"
3287
+ }
3288
+ },
3289
+ "required": [
3290
+ "content",
3291
+ "path"
3292
+ ],
3293
+ "additionalProperties": false
3294
+ }
3295
+ },
3296
+ {
3297
+ "name": "create_or_update_file",
3298
+ "displayName": "Create or Update File",
3299
+ "description": "Create or update a file in a repository. To update an existing file, provide the current file SHA (obtainable from the contents API). Commits directly to the specified branch.",
3300
+ "summary": "Create or update a file in a repository",
3301
+ "icon": "file-edit",
3302
+ "group": "Repositories",
3303
+ "input_schema": {
3304
+ "type": "object",
3305
+ "properties": {
3306
+ "owner": {
3307
+ "type": "string",
3308
+ "minLength": 1,
3309
+ "description": "Repository owner (user or org)"
3310
+ },
3311
+ "repo": {
3312
+ "type": "string",
3313
+ "minLength": 1,
3314
+ "description": "Repository name"
3315
+ },
3316
+ "path": {
3317
+ "type": "string",
3318
+ "minLength": 1,
3319
+ "description": "File path relative to repository root"
3320
+ },
3321
+ "content": {
3322
+ "type": "string",
3323
+ "minLength": 1,
3324
+ "description": "File content as a UTF-8 string (will be base64-encoded automatically)"
3325
+ },
3326
+ "message": {
3327
+ "type": "string",
3328
+ "minLength": 1,
3329
+ "description": "Commit message"
3330
+ },
3331
+ "branch": {
3332
+ "description": "Branch to commit to (defaults to the default branch)",
3333
+ "type": "string"
3334
+ },
3335
+ "sha": {
3336
+ "description": "SHA of the file being replaced — required when updating an existing file",
3337
+ "type": "string"
3338
+ }
3339
+ },
3340
+ "required": [
3341
+ "owner",
3342
+ "repo",
3343
+ "path",
3344
+ "content",
3345
+ "message"
3346
+ ],
3347
+ "additionalProperties": false
3348
+ },
3349
+ "output_schema": {
3350
+ "type": "object",
3351
+ "properties": {
3352
+ "sha": {
3353
+ "type": "string",
3354
+ "description": "SHA of the created/updated file blob"
3355
+ },
3356
+ "commit_sha": {
3357
+ "type": "string",
3358
+ "description": "SHA of the commit"
3359
+ },
3360
+ "html_url": {
3361
+ "type": "string",
3362
+ "description": "URL to the file on GitHub"
3363
+ }
3364
+ },
3365
+ "required": [
3366
+ "sha",
3367
+ "commit_sha",
3368
+ "html_url"
3369
+ ],
3370
+ "additionalProperties": false
3371
+ }
3372
+ },
3373
+ {
3374
+ "name": "delete_file",
3375
+ "displayName": "Delete File",
3376
+ "description": "Delete a file from a repository. Requires the current file SHA (obtainable from the contents API). Commits directly to the specified branch.",
3377
+ "summary": "Delete a file from a repository",
3378
+ "icon": "file-x",
3379
+ "group": "Repositories",
3380
+ "input_schema": {
3381
+ "type": "object",
3382
+ "properties": {
3383
+ "owner": {
3384
+ "type": "string",
3385
+ "minLength": 1,
3386
+ "description": "Repository owner (user or org)"
3387
+ },
3388
+ "repo": {
3389
+ "type": "string",
3390
+ "minLength": 1,
3391
+ "description": "Repository name"
3392
+ },
3393
+ "path": {
3394
+ "type": "string",
3395
+ "minLength": 1,
3396
+ "description": "File path relative to repository root"
3397
+ },
3398
+ "message": {
3399
+ "type": "string",
3400
+ "minLength": 1,
3401
+ "description": "Commit message for the deletion"
3402
+ },
3403
+ "sha": {
3404
+ "type": "string",
3405
+ "minLength": 1,
3406
+ "description": "SHA of the file being deleted — required to prevent accidental overwrites"
3407
+ },
3408
+ "branch": {
3409
+ "description": "Branch to commit to (defaults to the default branch)",
3410
+ "type": "string"
3411
+ }
3412
+ },
3413
+ "required": [
3414
+ "owner",
3415
+ "repo",
3416
+ "path",
3417
+ "message",
3418
+ "sha"
3419
+ ],
3420
+ "additionalProperties": false
3421
+ },
3422
+ "output_schema": {
3423
+ "type": "object",
3424
+ "properties": {
3425
+ "commit": {
3426
+ "type": "object",
3427
+ "properties": {
3428
+ "sha": {
3429
+ "type": "string",
3430
+ "description": "Commit SHA"
3431
+ },
3432
+ "message": {
3433
+ "type": "string",
3434
+ "description": "Commit message"
3435
+ },
3436
+ "url": {
3437
+ "type": "string",
3438
+ "description": "URL to the commit on GitHub"
3439
+ }
3440
+ },
3441
+ "required": [
3442
+ "sha",
3443
+ "message",
3444
+ "url"
3445
+ ],
3446
+ "additionalProperties": false,
3447
+ "description": "The commit created by the deletion"
3448
+ }
3449
+ },
3450
+ "required": [
3451
+ "commit"
3452
+ ],
3453
+ "additionalProperties": false
3454
+ }
3455
+ },
3456
+ {
3457
+ "name": "list_workflow_runs",
3458
+ "displayName": "List Workflow Runs",
3459
+ "description": "List workflow runs for a repository. Optionally filter by workflow ID, branch, or status. Returns runs sorted by creation date.",
3460
+ "summary": "List GitHub Actions workflow runs",
3461
+ "icon": "play",
3462
+ "group": "Actions",
3463
+ "input_schema": {
3464
+ "type": "object",
3465
+ "properties": {
3466
+ "owner": {
3467
+ "type": "string",
3468
+ "minLength": 1,
3469
+ "description": "Repository owner (user or org)"
3470
+ },
3471
+ "repo": {
3472
+ "type": "string",
3473
+ "minLength": 1,
3474
+ "description": "Repository name"
3475
+ },
3476
+ "workflow_id": {
3477
+ "description": "Workflow ID or filename to filter by (e.g., \"ci.yml\")",
3478
+ "type": "string"
3479
+ },
3480
+ "branch": {
3481
+ "description": "Filter by branch name",
3482
+ "type": "string"
3483
+ },
3484
+ "status": {
3485
+ "description": "Filter by run status",
3486
+ "type": "string",
3487
+ "enum": [
3488
+ "completed",
3489
+ "action_required",
3490
+ "cancelled",
3491
+ "failure",
3492
+ "neutral",
3493
+ "skipped",
3494
+ "stale",
3495
+ "success",
3496
+ "timed_out",
3497
+ "in_progress",
3498
+ "queued",
3499
+ "requested",
3500
+ "waiting",
3501
+ "pending"
3502
+ ]
3503
+ },
3504
+ "per_page": {
3505
+ "description": "Results per page (default 30, max 100)",
3506
+ "type": "integer",
3507
+ "minimum": 1,
3508
+ "maximum": 100
3509
+ },
3510
+ "page": {
3511
+ "description": "Page number (default 1)",
3512
+ "type": "integer",
3513
+ "minimum": 1,
3514
+ "maximum": 9007199254740991
3515
+ }
3516
+ },
3517
+ "required": [
3518
+ "owner",
3519
+ "repo"
3520
+ ],
3521
+ "additionalProperties": false
3522
+ },
3523
+ "output_schema": {
3524
+ "type": "object",
3525
+ "properties": {
3526
+ "total_count": {
3527
+ "type": "number",
3528
+ "description": "Total number of matching workflow runs"
3529
+ },
3530
+ "workflow_runs": {
3531
+ "type": "array",
3532
+ "items": {
3533
+ "type": "object",
3534
+ "properties": {
3535
+ "id": {
3536
+ "type": "number",
3537
+ "description": "Workflow run ID"
3538
+ },
3539
+ "name": {
3540
+ "type": "string",
3541
+ "description": "Workflow name"
3542
+ },
3543
+ "status": {
3544
+ "type": "string",
3545
+ "description": "Run status: queued, in_progress, completed, etc."
3546
+ },
3547
+ "conclusion": {
3548
+ "type": "string",
3549
+ "description": "Run conclusion: success, failure, cancelled, skipped, etc."
3550
+ },
3551
+ "head_branch": {
3552
+ "type": "string",
3553
+ "description": "Branch the workflow ran on"
3554
+ },
3555
+ "head_sha": {
3556
+ "type": "string",
3557
+ "description": "HEAD commit SHA"
3558
+ },
3559
+ "html_url": {
3560
+ "type": "string",
3561
+ "description": "URL to the workflow run on GitHub"
3562
+ },
3563
+ "created_at": {
3564
+ "type": "string",
3565
+ "description": "Created ISO 8601 timestamp"
3566
+ },
3567
+ "updated_at": {
3568
+ "type": "string",
3569
+ "description": "Updated ISO 8601 timestamp"
3570
+ }
3571
+ },
3572
+ "required": [
3573
+ "id",
3574
+ "name",
3575
+ "status",
3576
+ "conclusion",
3577
+ "head_branch",
3578
+ "head_sha",
3579
+ "html_url",
3580
+ "created_at",
3581
+ "updated_at"
3582
+ ],
3583
+ "additionalProperties": false
3584
+ },
3585
+ "description": "List of workflow runs"
3586
+ }
3587
+ },
3588
+ "required": [
3589
+ "total_count",
3590
+ "workflow_runs"
3591
+ ],
3592
+ "additionalProperties": false
3593
+ }
3594
+ },
3595
+ {
3596
+ "name": "get_workflow_run",
3597
+ "displayName": "Get Workflow Run",
3598
+ "description": "Get detailed information about a specific GitHub Actions workflow run by its run ID.",
3599
+ "summary": "Get a workflow run by ID",
3600
+ "icon": "play",
3601
+ "group": "Actions",
3602
+ "input_schema": {
3603
+ "type": "object",
3604
+ "properties": {
3605
+ "owner": {
3606
+ "type": "string",
3607
+ "minLength": 1,
3608
+ "description": "Repository owner (user or org)"
3609
+ },
3610
+ "repo": {
3611
+ "type": "string",
3612
+ "minLength": 1,
3613
+ "description": "Repository name"
3614
+ },
3615
+ "run_id": {
3616
+ "type": "integer",
3617
+ "minimum": 1,
3618
+ "maximum": 9007199254740991,
3619
+ "description": "Workflow run ID"
3620
+ }
3621
+ },
3622
+ "required": [
3623
+ "owner",
3624
+ "repo",
3625
+ "run_id"
3626
+ ],
3627
+ "additionalProperties": false
3628
+ },
3629
+ "output_schema": {
3630
+ "type": "object",
3631
+ "properties": {
3632
+ "workflow_run": {
3633
+ "type": "object",
3634
+ "properties": {
3635
+ "id": {
3636
+ "type": "number",
3637
+ "description": "Workflow run ID"
3638
+ },
3639
+ "name": {
3640
+ "type": "string",
3641
+ "description": "Workflow name"
3642
+ },
3643
+ "status": {
3644
+ "type": "string",
3645
+ "description": "Run status: queued, in_progress, completed, etc."
3646
+ },
3647
+ "conclusion": {
3648
+ "type": "string",
3649
+ "description": "Run conclusion: success, failure, cancelled, skipped, etc."
3650
+ },
3651
+ "head_branch": {
3652
+ "type": "string",
3653
+ "description": "Branch the workflow ran on"
3654
+ },
3655
+ "head_sha": {
3656
+ "type": "string",
3657
+ "description": "HEAD commit SHA"
3658
+ },
3659
+ "html_url": {
3660
+ "type": "string",
3661
+ "description": "URL to the workflow run on GitHub"
3662
+ },
3663
+ "created_at": {
3664
+ "type": "string",
3665
+ "description": "Created ISO 8601 timestamp"
3666
+ },
3667
+ "updated_at": {
3668
+ "type": "string",
3669
+ "description": "Updated ISO 8601 timestamp"
3670
+ }
3671
+ },
3672
+ "required": [
3673
+ "id",
3674
+ "name",
3675
+ "status",
3676
+ "conclusion",
3677
+ "head_branch",
3678
+ "head_sha",
3679
+ "html_url",
3680
+ "created_at",
3681
+ "updated_at"
3682
+ ],
3683
+ "additionalProperties": false,
3684
+ "description": "The workflow run"
3685
+ }
3686
+ },
3687
+ "required": [
3688
+ "workflow_run"
3689
+ ],
3690
+ "additionalProperties": false
3691
+ }
3692
+ },
3693
+ {
3694
+ "name": "search_repos",
3695
+ "displayName": "Search Repositories",
3696
+ "description": "Search for repositories across GitHub. Supports GitHub search syntax (e.g., \"repo:owner/name\", \"language:typescript\", \"stars:>1000\").",
3697
+ "summary": "Search repositories on GitHub",
3698
+ "icon": "search",
3699
+ "group": "Search",
3700
+ "input_schema": {
3701
+ "type": "object",
3702
+ "properties": {
3703
+ "query": {
3704
+ "type": "string",
3705
+ "minLength": 1,
3706
+ "description": "Search query using GitHub search syntax (e.g., \"language:typescript stars:>1000\")"
3707
+ },
3708
+ "sort": {
3709
+ "description": "Sort field",
3710
+ "type": "string",
3711
+ "enum": [
3712
+ "stars",
3713
+ "forks",
3714
+ "help-wanted-issues",
3715
+ "updated"
3716
+ ]
3717
+ },
3718
+ "order": {
3719
+ "description": "Sort order (default: desc)",
3720
+ "type": "string",
3721
+ "enum": [
3722
+ "asc",
3723
+ "desc"
3724
+ ]
3725
+ },
3726
+ "per_page": {
3727
+ "description": "Results per page (default 30, max 100)",
3728
+ "type": "integer",
3729
+ "minimum": 1,
3730
+ "maximum": 100
3731
+ },
3732
+ "page": {
3733
+ "description": "Page number (default 1)",
3734
+ "type": "integer",
3735
+ "minimum": 1,
3736
+ "maximum": 9007199254740991
3737
+ }
3738
+ },
3739
+ "required": [
3740
+ "query"
3741
+ ],
3742
+ "additionalProperties": false
3743
+ },
3744
+ "output_schema": {
3745
+ "type": "object",
3746
+ "properties": {
3747
+ "total_count": {
3748
+ "type": "number",
3749
+ "description": "Total number of matching repositories"
3750
+ },
3751
+ "repositories": {
3752
+ "type": "array",
3753
+ "items": {
3754
+ "type": "object",
3755
+ "properties": {
3756
+ "id": {
3757
+ "type": "number",
3758
+ "description": "Repository ID"
3759
+ },
3760
+ "name": {
3761
+ "type": "string",
3762
+ "description": "Repository name"
3763
+ },
3764
+ "full_name": {
3765
+ "type": "string",
3766
+ "description": "Full name in owner/repo format"
3767
+ },
3768
+ "description": {
3769
+ "type": "string",
3770
+ "description": "Repository description"
3771
+ },
3772
+ "private": {
3773
+ "type": "boolean",
3774
+ "description": "Whether the repository is private"
3775
+ },
3776
+ "html_url": {
3777
+ "type": "string",
3778
+ "description": "URL to the repository on GitHub"
3779
+ },
3780
+ "default_branch": {
3781
+ "type": "string",
3782
+ "description": "Default branch name"
3783
+ },
3784
+ "language": {
3785
+ "type": "string",
3786
+ "description": "Primary programming language"
3787
+ },
3788
+ "stargazers_count": {
3789
+ "type": "number",
3790
+ "description": "Number of stars"
3791
+ },
3792
+ "forks_count": {
3793
+ "type": "number",
3794
+ "description": "Number of forks"
3795
+ },
3796
+ "open_issues_count": {
3797
+ "type": "number",
3798
+ "description": "Number of open issues"
3799
+ },
3800
+ "archived": {
3801
+ "type": "boolean",
3802
+ "description": "Whether the repository is archived"
3803
+ },
3804
+ "updated_at": {
3805
+ "type": "string",
3806
+ "description": "Last updated ISO 8601 timestamp"
3807
+ }
3808
+ },
3809
+ "required": [
3810
+ "id",
3811
+ "name",
3812
+ "full_name",
3813
+ "description",
3814
+ "private",
3815
+ "html_url",
3816
+ "default_branch",
3817
+ "language",
3818
+ "stargazers_count",
3819
+ "forks_count",
3820
+ "open_issues_count",
3821
+ "archived",
3822
+ "updated_at"
3823
+ ],
3824
+ "additionalProperties": false
3825
+ },
3826
+ "description": "List of matching repositories"
3827
+ }
3828
+ },
3829
+ "required": [
3830
+ "total_count",
3831
+ "repositories"
3832
+ ],
3833
+ "additionalProperties": false
3834
+ }
3835
+ },
3836
+ {
3837
+ "name": "add_reaction",
3838
+ "displayName": "Add Reaction",
3839
+ "description": "Add a reaction to an issue, pull request, or comment.",
3840
+ "summary": "Add a reaction to an issue or comment",
3841
+ "icon": "smile-plus",
3842
+ "group": "Reactions",
3843
+ "input_schema": {
3844
+ "type": "object",
3845
+ "properties": {
3846
+ "owner": {
3847
+ "type": "string",
3848
+ "minLength": 1,
3849
+ "description": "Repository owner (user or org)"
3850
+ },
3851
+ "repo": {
3852
+ "type": "string",
3853
+ "minLength": 1,
3854
+ "description": "Repository name"
3855
+ },
3856
+ "content": {
3857
+ "type": "string",
3858
+ "enum": [
3859
+ "+1",
3860
+ "-1",
3861
+ "laugh",
3862
+ "confused",
3863
+ "heart",
3864
+ "hooray",
3865
+ "rocket",
3866
+ "eyes"
3867
+ ],
3868
+ "description": "Reaction emoji name"
3869
+ },
3870
+ "issue_number": {
3871
+ "description": "Issue or PR number — provide this OR comment_id, not both",
3872
+ "type": "integer",
3873
+ "minimum": 1,
3874
+ "maximum": 9007199254740991
3875
+ },
3876
+ "comment_id": {
3877
+ "description": "Comment ID — provide this OR issue_number, not both",
3878
+ "type": "integer",
3879
+ "minimum": 1,
3880
+ "maximum": 9007199254740991
3881
+ }
3882
+ },
3883
+ "required": [
3884
+ "owner",
3885
+ "repo",
3886
+ "content"
3887
+ ],
3888
+ "additionalProperties": false
3889
+ },
3890
+ "output_schema": {
3891
+ "type": "object",
3892
+ "properties": {
3893
+ "id": {
3894
+ "type": "number",
3895
+ "description": "Reaction ID"
3896
+ },
3897
+ "content": {
3898
+ "type": "string",
3899
+ "description": "Reaction emoji name"
3900
+ }
3901
+ },
3902
+ "required": [
3903
+ "id",
3904
+ "content"
3905
+ ],
3906
+ "additionalProperties": false
3907
+ }
3908
+ },
3909
+ {
3910
+ "name": "list_notifications",
3911
+ "displayName": "List Notifications",
3912
+ "description": "List notifications for the authenticated user. Includes issue, PR, and release notifications.",
3913
+ "summary": "List notifications for the authenticated user",
3914
+ "icon": "bell",
3915
+ "group": "Users",
3916
+ "input_schema": {
3917
+ "type": "object",
3918
+ "properties": {
3919
+ "all": {
3920
+ "description": "Show all notifications including read ones (default: false)",
3921
+ "type": "boolean"
3922
+ },
3923
+ "participating": {
3924
+ "description": "Only show notifications where the user is directly participating (default: false)",
3925
+ "type": "boolean"
3926
+ },
3927
+ "per_page": {
3928
+ "description": "Results per page (default 30, max 100)",
3929
+ "type": "integer",
3930
+ "minimum": 1,
3931
+ "maximum": 100
3932
+ },
3933
+ "page": {
3934
+ "description": "Page number (default 1)",
3935
+ "type": "integer",
3936
+ "minimum": 1,
3937
+ "maximum": 9007199254740991
3938
+ }
3939
+ },
3940
+ "additionalProperties": false
3941
+ },
3942
+ "output_schema": {
3943
+ "type": "object",
3944
+ "properties": {
3945
+ "notifications": {
3946
+ "type": "array",
3947
+ "items": {
3948
+ "type": "object",
3949
+ "properties": {
3950
+ "id": {
3951
+ "type": "string",
3952
+ "description": "Notification ID"
3953
+ },
3954
+ "reason": {
3955
+ "type": "string",
3956
+ "description": "Reason for the notification (e.g., subscribed, mention, review_requested)"
3957
+ },
3958
+ "unread": {
3959
+ "type": "boolean",
3960
+ "description": "Whether the notification is unread"
3961
+ },
3962
+ "subject_title": {
3963
+ "type": "string",
3964
+ "description": "Subject title"
3965
+ },
3966
+ "subject_type": {
3967
+ "type": "string",
3968
+ "description": "Subject type (e.g., Issue, PullRequest, Release)"
3969
+ },
3970
+ "subject_url": {
3971
+ "type": "string",
3972
+ "description": "API URL for the subject"
3973
+ },
3974
+ "repository_full_name": {
3975
+ "type": "string",
3976
+ "description": "Full name of the repository"
3977
+ },
3978
+ "updated_at": {
3979
+ "type": "string",
3980
+ "description": "Updated ISO 8601 timestamp"
3981
+ }
3982
+ },
3983
+ "required": [
3984
+ "id",
3985
+ "reason",
3986
+ "unread",
3987
+ "subject_title",
3988
+ "subject_type",
3989
+ "subject_url",
3990
+ "repository_full_name",
3991
+ "updated_at"
3992
+ ],
3993
+ "additionalProperties": false
3994
+ },
3995
+ "description": "List of notifications"
3996
+ }
3997
+ },
3998
+ "required": [
3999
+ "notifications"
4000
+ ],
4001
+ "additionalProperties": false
4002
+ }
4003
+ }
4004
+ ]
4005
+ }