@ldraney/github-mcp 0.1.0 → 0.2.0-beta.1

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 (84) hide show
  1. package/dist/index.js +8 -2
  2. package/dist/prompts/activity-summary.d.ts +10 -0
  3. package/dist/prompts/activity-summary.js +154 -0
  4. package/dist/prompts/code-review.d.ts +9 -0
  5. package/dist/prompts/code-review.js +145 -0
  6. package/dist/prompts/issue-triage.d.ts +9 -0
  7. package/dist/prompts/issue-triage.js +202 -0
  8. package/dist/prompts/release-notes.d.ts +9 -0
  9. package/dist/prompts/release-notes.js +236 -0
  10. package/dist/server.d.ts +8 -1
  11. package/dist/server.js +36 -210
  12. package/dist/tools/categories/actions.d.ts +2 -5
  13. package/dist/tools/categories/actions.js +640 -369
  14. package/dist/tools/categories/activity.d.ts +2 -0
  15. package/dist/tools/categories/activity.js +534 -0
  16. package/dist/tools/categories/apps.d.ts +2 -0
  17. package/dist/tools/categories/apps.js +224 -0
  18. package/dist/tools/categories/billing.d.ts +2 -0
  19. package/dist/tools/categories/billing.js +145 -0
  20. package/dist/tools/categories/checks.d.ts +2 -0
  21. package/dist/tools/categories/checks.js +554 -0
  22. package/dist/tools/categories/codeScanning.d.ts +2 -0
  23. package/dist/tools/categories/codeScanning.js +375 -0
  24. package/dist/tools/categories/codeSecurity.d.ts +2 -0
  25. package/dist/tools/categories/codeSecurity.js +463 -0
  26. package/dist/tools/categories/codesOfConduct.d.ts +2 -0
  27. package/dist/tools/categories/codesOfConduct.js +45 -0
  28. package/dist/tools/categories/codespaces.d.ts +2 -0
  29. package/dist/tools/categories/codespaces.js +259 -0
  30. package/dist/tools/categories/copilot.d.ts +2 -0
  31. package/dist/tools/categories/copilot.js +187 -0
  32. package/dist/tools/categories/dependabot.d.ts +2 -0
  33. package/dist/tools/categories/dependabot.js +454 -0
  34. package/dist/tools/categories/emojis.d.ts +2 -0
  35. package/dist/tools/categories/emojis.js +22 -0
  36. package/dist/tools/categories/gists.d.ts +2 -5
  37. package/dist/tools/categories/gists.js +474 -285
  38. package/dist/tools/categories/git.d.ts +2 -0
  39. package/dist/tools/categories/git.js +520 -0
  40. package/dist/tools/categories/gitignore.d.ts +2 -0
  41. package/dist/tools/categories/gitignore.js +45 -0
  42. package/dist/tools/categories/index.d.ts +33 -0
  43. package/dist/tools/categories/index.js +33 -0
  44. package/dist/tools/categories/interactions.d.ts +2 -0
  45. package/dist/tools/categories/interactions.js +184 -0
  46. package/dist/tools/categories/issues.d.ts +2 -5
  47. package/dist/tools/categories/issues.js +692 -390
  48. package/dist/tools/categories/licenses.d.ts +2 -0
  49. package/dist/tools/categories/licenses.js +95 -0
  50. package/dist/tools/categories/markdown.d.ts +2 -0
  51. package/dist/tools/categories/markdown.js +64 -0
  52. package/dist/tools/categories/meta.d.ts +2 -0
  53. package/dist/tools/categories/meta.js +74 -0
  54. package/dist/tools/categories/migrations.d.ts +2 -0
  55. package/dist/tools/categories/migrations.js +290 -0
  56. package/dist/tools/categories/orgs.d.ts +2 -5
  57. package/dist/tools/categories/orgs.js +585 -417
  58. package/dist/tools/categories/packages.d.ts +2 -0
  59. package/dist/tools/categories/packages.js +918 -0
  60. package/dist/tools/categories/projects.d.ts +2 -0
  61. package/dist/tools/categories/projects.js +692 -0
  62. package/dist/tools/categories/pulls.d.ts +2 -5
  63. package/dist/tools/categories/pulls.js +715 -332
  64. package/dist/tools/categories/rateLimit.d.ts +2 -0
  65. package/dist/tools/categories/rateLimit.js +22 -0
  66. package/dist/tools/categories/reactions.d.ts +2 -0
  67. package/dist/tools/categories/reactions.js +385 -0
  68. package/dist/tools/categories/repos.d.ts +2 -5
  69. package/dist/tools/categories/repos.js +844 -366
  70. package/dist/tools/categories/search.d.ts +2 -5
  71. package/dist/tools/categories/search.js +294 -196
  72. package/dist/tools/categories/secretScanning.d.ts +2 -0
  73. package/dist/tools/categories/secretScanning.js +324 -0
  74. package/dist/tools/categories/securityAdvisories.d.ts +2 -0
  75. package/dist/tools/categories/securityAdvisories.js +407 -0
  76. package/dist/tools/categories/teams.d.ts +2 -0
  77. package/dist/tools/categories/teams.js +614 -0
  78. package/dist/tools/categories/users.d.ts +2 -5
  79. package/dist/tools/categories/users.js +474 -247
  80. package/dist/tools/generator.d.ts +35 -15
  81. package/dist/tools/generator.js +113 -57
  82. package/dist/tools/types.d.ts +63 -0
  83. package/dist/tools/types.js +17 -0
  84. package/package.json +1 -1
@@ -0,0 +1,454 @@
1
+ import { successResult } from '../types.js';
2
+ export const dependabotCategory = {
3
+ name: 'dependabot',
4
+ description: 'Dependabot alerts and secrets management tools',
5
+ tools: [
6
+ // list_alerts_for_repo - List Dependabot alerts for a repository
7
+ {
8
+ definition: {
9
+ name: 'github_dependabot_list_alerts_for_repo',
10
+ description: 'List Dependabot alerts for a repository',
11
+ inputSchema: {
12
+ type: 'object',
13
+ properties: {
14
+ owner: {
15
+ type: 'string',
16
+ description: 'Repository owner',
17
+ },
18
+ repo: {
19
+ type: 'string',
20
+ description: 'Repository name',
21
+ },
22
+ state: {
23
+ type: 'string',
24
+ enum: ['auto_dismissed', 'dismissed', 'fixed', 'open'],
25
+ description: 'Filter by alert state',
26
+ },
27
+ severity: {
28
+ type: 'string',
29
+ enum: ['low', 'medium', 'high', 'critical'],
30
+ description: 'Filter by severity',
31
+ },
32
+ ecosystem: {
33
+ type: 'string',
34
+ description: 'Filter by package ecosystem (e.g., npm, pip, maven)',
35
+ },
36
+ package: {
37
+ type: 'string',
38
+ description: 'Filter by package name',
39
+ },
40
+ scope: {
41
+ type: 'string',
42
+ enum: ['development', 'runtime'],
43
+ description: 'Filter by dependency scope',
44
+ },
45
+ sort: {
46
+ type: 'string',
47
+ enum: ['created', 'updated'],
48
+ description: 'Sort order for results',
49
+ },
50
+ direction: {
51
+ type: 'string',
52
+ enum: ['asc', 'desc'],
53
+ description: 'Sort direction',
54
+ },
55
+ per_page: {
56
+ type: 'number',
57
+ description: 'Results per page (max 100)',
58
+ },
59
+ page: {
60
+ type: 'number',
61
+ description: 'Page number',
62
+ },
63
+ },
64
+ required: ['owner', 'repo'],
65
+ },
66
+ },
67
+ handler: async (octokit, args) => {
68
+ const { data } = await octokit.dependabot.listAlertsForRepo({
69
+ owner: args.owner,
70
+ repo: args.repo,
71
+ state: args.state,
72
+ severity: args.severity,
73
+ ecosystem: args.ecosystem,
74
+ package: args.package,
75
+ scope: args.scope,
76
+ sort: args.sort,
77
+ direction: args.direction,
78
+ per_page: args.per_page,
79
+ page: args.page,
80
+ });
81
+ return successResult(data);
82
+ },
83
+ },
84
+ // get_alert - Get a Dependabot alert
85
+ {
86
+ definition: {
87
+ name: 'github_dependabot_get_alert',
88
+ description: 'Get a specific Dependabot alert by number',
89
+ inputSchema: {
90
+ type: 'object',
91
+ properties: {
92
+ owner: {
93
+ type: 'string',
94
+ description: 'Repository owner',
95
+ },
96
+ repo: {
97
+ type: 'string',
98
+ description: 'Repository name',
99
+ },
100
+ alert_number: {
101
+ type: 'number',
102
+ description: 'The number that identifies the Dependabot alert',
103
+ },
104
+ },
105
+ required: ['owner', 'repo', 'alert_number'],
106
+ },
107
+ },
108
+ handler: async (octokit, args) => {
109
+ const { data } = await octokit.dependabot.getAlert({
110
+ owner: args.owner,
111
+ repo: args.repo,
112
+ alert_number: args.alert_number,
113
+ });
114
+ return successResult(data);
115
+ },
116
+ },
117
+ // update_alert - Update a Dependabot alert
118
+ {
119
+ definition: {
120
+ name: 'github_dependabot_update_alert',
121
+ description: 'Update a Dependabot alert (dismiss or reopen)',
122
+ inputSchema: {
123
+ type: 'object',
124
+ properties: {
125
+ owner: {
126
+ type: 'string',
127
+ description: 'Repository owner',
128
+ },
129
+ repo: {
130
+ type: 'string',
131
+ description: 'Repository name',
132
+ },
133
+ alert_number: {
134
+ type: 'number',
135
+ description: 'The number that identifies the Dependabot alert',
136
+ },
137
+ state: {
138
+ type: 'string',
139
+ enum: ['dismissed', 'open'],
140
+ description: 'The state of the alert',
141
+ },
142
+ dismissed_reason: {
143
+ type: 'string',
144
+ enum: ['fix_started', 'inaccurate', 'no_bandwidth', 'not_used', 'tolerable_risk'],
145
+ description: 'Required when state is dismissed. Reason for dismissal.',
146
+ },
147
+ dismissed_comment: {
148
+ type: 'string',
149
+ description: 'Optional comment when dismissing the alert',
150
+ },
151
+ },
152
+ required: ['owner', 'repo', 'alert_number', 'state'],
153
+ },
154
+ },
155
+ handler: async (octokit, args) => {
156
+ const { data } = await octokit.dependabot.updateAlert({
157
+ owner: args.owner,
158
+ repo: args.repo,
159
+ alert_number: args.alert_number,
160
+ state: args.state,
161
+ dismissed_reason: args.dismissed_reason,
162
+ dismissed_comment: args.dismissed_comment,
163
+ });
164
+ return successResult(data);
165
+ },
166
+ },
167
+ // list_org_secrets - List organization secrets for Dependabot
168
+ {
169
+ definition: {
170
+ name: 'github_dependabot_list_org_secrets',
171
+ description: 'List all Dependabot secrets available in an organization (names only, not values)',
172
+ inputSchema: {
173
+ type: 'object',
174
+ properties: {
175
+ org: {
176
+ type: 'string',
177
+ description: 'Organization name',
178
+ },
179
+ per_page: {
180
+ type: 'number',
181
+ description: 'Results per page (max 100)',
182
+ },
183
+ page: {
184
+ type: 'number',
185
+ description: 'Page number',
186
+ },
187
+ },
188
+ required: ['org'],
189
+ },
190
+ },
191
+ handler: async (octokit, args) => {
192
+ const { data } = await octokit.dependabot.listOrgSecrets({
193
+ org: args.org,
194
+ per_page: args.per_page,
195
+ page: args.page,
196
+ });
197
+ return successResult(data);
198
+ },
199
+ },
200
+ // get_org_secret - Get an organization secret for Dependabot
201
+ {
202
+ definition: {
203
+ name: 'github_dependabot_get_org_secret',
204
+ description: 'Get metadata about an organization Dependabot secret (not the value)',
205
+ inputSchema: {
206
+ type: 'object',
207
+ properties: {
208
+ org: {
209
+ type: 'string',
210
+ description: 'Organization name',
211
+ },
212
+ secret_name: {
213
+ type: 'string',
214
+ description: 'The name of the secret',
215
+ },
216
+ },
217
+ required: ['org', 'secret_name'],
218
+ },
219
+ },
220
+ handler: async (octokit, args) => {
221
+ const { data } = await octokit.dependabot.getOrgSecret({
222
+ org: args.org,
223
+ secret_name: args.secret_name,
224
+ });
225
+ return successResult(data);
226
+ },
227
+ },
228
+ // create_or_update_org_secret - Create or update an organization secret for Dependabot
229
+ {
230
+ definition: {
231
+ name: 'github_dependabot_create_or_update_org_secret',
232
+ description: 'Create or update an organization Dependabot secret. Value must be encrypted with the organization public key.',
233
+ inputSchema: {
234
+ type: 'object',
235
+ properties: {
236
+ org: {
237
+ type: 'string',
238
+ description: 'Organization name',
239
+ },
240
+ secret_name: {
241
+ type: 'string',
242
+ description: 'The name of the secret',
243
+ },
244
+ encrypted_value: {
245
+ type: 'string',
246
+ description: 'Value for your secret, encrypted with LibSodium using the organization public key',
247
+ },
248
+ key_id: {
249
+ type: 'string',
250
+ description: 'ID of the key used to encrypt the secret',
251
+ },
252
+ visibility: {
253
+ type: 'string',
254
+ enum: ['all', 'private', 'selected'],
255
+ description: 'Which repositories can access the secret',
256
+ },
257
+ selected_repository_ids: {
258
+ type: 'array',
259
+ items: { type: 'number' },
260
+ description: 'Array of repository IDs that can access the secret (required when visibility is selected)',
261
+ },
262
+ },
263
+ required: ['org', 'secret_name', 'visibility'],
264
+ },
265
+ },
266
+ handler: async (octokit, args) => {
267
+ await octokit.dependabot.createOrUpdateOrgSecret({
268
+ org: args.org,
269
+ secret_name: args.secret_name,
270
+ encrypted_value: args.encrypted_value,
271
+ key_id: args.key_id,
272
+ visibility: args.visibility,
273
+ selected_repository_ids: args.selected_repository_ids,
274
+ });
275
+ return successResult({ success: true, message: 'Organization Dependabot secret created or updated' });
276
+ },
277
+ },
278
+ // delete_org_secret - Delete an organization secret for Dependabot
279
+ {
280
+ definition: {
281
+ name: 'github_dependabot_delete_org_secret',
282
+ description: 'Delete an organization Dependabot secret by name',
283
+ inputSchema: {
284
+ type: 'object',
285
+ properties: {
286
+ org: {
287
+ type: 'string',
288
+ description: 'Organization name',
289
+ },
290
+ secret_name: {
291
+ type: 'string',
292
+ description: 'The name of the secret',
293
+ },
294
+ },
295
+ required: ['org', 'secret_name'],
296
+ },
297
+ },
298
+ handler: async (octokit, args) => {
299
+ await octokit.dependabot.deleteOrgSecret({
300
+ org: args.org,
301
+ secret_name: args.secret_name,
302
+ });
303
+ return successResult({ success: true, message: 'Organization Dependabot secret deleted' });
304
+ },
305
+ },
306
+ // list_repo_secrets - List repository secrets for Dependabot
307
+ {
308
+ definition: {
309
+ name: 'github_dependabot_list_repo_secrets',
310
+ description: 'List all Dependabot secrets available in a repository (names only, not values)',
311
+ inputSchema: {
312
+ type: 'object',
313
+ properties: {
314
+ owner: {
315
+ type: 'string',
316
+ description: 'Repository owner',
317
+ },
318
+ repo: {
319
+ type: 'string',
320
+ description: 'Repository name',
321
+ },
322
+ per_page: {
323
+ type: 'number',
324
+ description: 'Results per page (max 100)',
325
+ },
326
+ page: {
327
+ type: 'number',
328
+ description: 'Page number',
329
+ },
330
+ },
331
+ required: ['owner', 'repo'],
332
+ },
333
+ },
334
+ handler: async (octokit, args) => {
335
+ const { data } = await octokit.dependabot.listRepoSecrets({
336
+ owner: args.owner,
337
+ repo: args.repo,
338
+ per_page: args.per_page,
339
+ page: args.page,
340
+ });
341
+ return successResult(data);
342
+ },
343
+ },
344
+ // get_repo_secret - Get a repository secret for Dependabot
345
+ {
346
+ definition: {
347
+ name: 'github_dependabot_get_repo_secret',
348
+ description: 'Get metadata about a repository Dependabot secret (not the value)',
349
+ inputSchema: {
350
+ type: 'object',
351
+ properties: {
352
+ owner: {
353
+ type: 'string',
354
+ description: 'Repository owner',
355
+ },
356
+ repo: {
357
+ type: 'string',
358
+ description: 'Repository name',
359
+ },
360
+ secret_name: {
361
+ type: 'string',
362
+ description: 'The name of the secret',
363
+ },
364
+ },
365
+ required: ['owner', 'repo', 'secret_name'],
366
+ },
367
+ },
368
+ handler: async (octokit, args) => {
369
+ const { data } = await octokit.dependabot.getRepoSecret({
370
+ owner: args.owner,
371
+ repo: args.repo,
372
+ secret_name: args.secret_name,
373
+ });
374
+ return successResult(data);
375
+ },
376
+ },
377
+ // create_or_update_repo_secret - Create or update a repository secret for Dependabot
378
+ {
379
+ definition: {
380
+ name: 'github_dependabot_create_or_update_repo_secret',
381
+ description: 'Create or update a repository Dependabot secret. Value must be encrypted with the repository public key.',
382
+ inputSchema: {
383
+ type: 'object',
384
+ properties: {
385
+ owner: {
386
+ type: 'string',
387
+ description: 'Repository owner',
388
+ },
389
+ repo: {
390
+ type: 'string',
391
+ description: 'Repository name',
392
+ },
393
+ secret_name: {
394
+ type: 'string',
395
+ description: 'The name of the secret',
396
+ },
397
+ encrypted_value: {
398
+ type: 'string',
399
+ description: 'Value for your secret, encrypted with LibSodium using the repository public key',
400
+ },
401
+ key_id: {
402
+ type: 'string',
403
+ description: 'ID of the key used to encrypt the secret',
404
+ },
405
+ },
406
+ required: ['owner', 'repo', 'secret_name', 'encrypted_value', 'key_id'],
407
+ },
408
+ },
409
+ handler: async (octokit, args) => {
410
+ await octokit.dependabot.createOrUpdateRepoSecret({
411
+ owner: args.owner,
412
+ repo: args.repo,
413
+ secret_name: args.secret_name,
414
+ encrypted_value: args.encrypted_value,
415
+ key_id: args.key_id,
416
+ });
417
+ return successResult({ success: true, message: 'Repository Dependabot secret created or updated' });
418
+ },
419
+ },
420
+ // delete_repo_secret - Delete a repository secret for Dependabot
421
+ {
422
+ definition: {
423
+ name: 'github_dependabot_delete_repo_secret',
424
+ description: 'Delete a repository Dependabot secret by name',
425
+ inputSchema: {
426
+ type: 'object',
427
+ properties: {
428
+ owner: {
429
+ type: 'string',
430
+ description: 'Repository owner',
431
+ },
432
+ repo: {
433
+ type: 'string',
434
+ description: 'Repository name',
435
+ },
436
+ secret_name: {
437
+ type: 'string',
438
+ description: 'The name of the secret',
439
+ },
440
+ },
441
+ required: ['owner', 'repo', 'secret_name'],
442
+ },
443
+ },
444
+ handler: async (octokit, args) => {
445
+ await octokit.dependabot.deleteRepoSecret({
446
+ owner: args.owner,
447
+ repo: args.repo,
448
+ secret_name: args.secret_name,
449
+ });
450
+ return successResult({ success: true, message: 'Repository Dependabot secret deleted' });
451
+ },
452
+ },
453
+ ],
454
+ };
@@ -0,0 +1,2 @@
1
+ import type { ToolCategory } from '../types.js';
2
+ export declare const emojisCategory: ToolCategory;
@@ -0,0 +1,22 @@
1
+ import { successResult } from '../types.js';
2
+ export const emojisCategory = {
3
+ name: 'emojis',
4
+ description: 'GitHub emojis tools',
5
+ tools: [
6
+ // get - List all available emojis
7
+ {
8
+ definition: {
9
+ name: 'github_emojis_get',
10
+ description: 'Get the list of all available GitHub emojis. Returns an object with emoji names as keys and their image URLs as values.',
11
+ inputSchema: {
12
+ type: 'object',
13
+ properties: {},
14
+ },
15
+ },
16
+ handler: async (octokit) => {
17
+ const { data } = await octokit.emojis.get();
18
+ return successResult(data);
19
+ },
20
+ },
21
+ ],
22
+ };
@@ -1,5 +1,2 @@
1
- import { Octokit } from '@octokit/rest';
2
- import { Tool } from '@modelcontextprotocol/sdk/types.js';
3
- export declare const gistsTools: Tool[];
4
- export declare function handleGistsTool(octokit: Octokit, args: Record<string, unknown>): Promise<unknown>;
5
- //# sourceMappingURL=gists.d.ts.map
1
+ import type { ToolCategory } from '../types.js';
2
+ export declare const gistsCategory: ToolCategory;