github-rest-mcp 1.0.2

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 (190) hide show
  1. package/README.md +123 -0
  2. package/dist/client.d.ts +2 -0
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/client.js +55 -0
  5. package/dist/client.js.map +1 -0
  6. package/dist/index.d.ts +3 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +133 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/tools/actions.d.ts +25 -0
  11. package/dist/tools/actions.d.ts.map +1 -0
  12. package/dist/tools/actions.js +2202 -0
  13. package/dist/tools/actions.js.map +1 -0
  14. package/dist/tools/activity.d.ts +8 -0
  15. package/dist/tools/activity.d.ts.map +1 -0
  16. package/dist/tools/activity.js +385 -0
  17. package/dist/tools/activity.js.map +1 -0
  18. package/dist/tools/agent-tasks.d.ts +38 -0
  19. package/dist/tools/agent-tasks.d.ts.map +1 -0
  20. package/dist/tools/agent-tasks.js +78 -0
  21. package/dist/tools/agent-tasks.js.map +1 -0
  22. package/dist/tools/apps.d.ts +8 -0
  23. package/dist/tools/apps.d.ts.map +1 -0
  24. package/dist/tools/apps.js +402 -0
  25. package/dist/tools/apps.js.map +1 -0
  26. package/dist/tools/billing.d.ts +46 -0
  27. package/dist/tools/billing.d.ts.map +1 -0
  28. package/dist/tools/billing.js +145 -0
  29. package/dist/tools/billing.js.map +1 -0
  30. package/dist/tools/campaigns.d.ts +39 -0
  31. package/dist/tools/campaigns.d.ts.map +1 -0
  32. package/dist/tools/campaigns.js +69 -0
  33. package/dist/tools/campaigns.js.map +1 -0
  34. package/dist/tools/checks.d.ts +43 -0
  35. package/dist/tools/checks.d.ts.map +1 -0
  36. package/dist/tools/checks.js +171 -0
  37. package/dist/tools/checks.js.map +1 -0
  38. package/dist/tools/classroom.d.ts +25 -0
  39. package/dist/tools/classroom.d.ts.map +1 -0
  40. package/dist/tools/classroom.js +74 -0
  41. package/dist/tools/classroom.js.map +1 -0
  42. package/dist/tools/code-scanning.d.ts +35 -0
  43. package/dist/tools/code-scanning.d.ts.map +1 -0
  44. package/dist/tools/code-scanning.js +297 -0
  45. package/dist/tools/code-scanning.js.map +1 -0
  46. package/dist/tools/code-security.d.ts +25 -0
  47. package/dist/tools/code-security.d.ts.map +1 -0
  48. package/dist/tools/code-security.js +245 -0
  49. package/dist/tools/code-security.js.map +1 -0
  50. package/dist/tools/codes-of-conduct.d.ts +8 -0
  51. package/dist/tools/codes-of-conduct.d.ts.map +1 -0
  52. package/dist/tools/codes-of-conduct.js +27 -0
  53. package/dist/tools/codes-of-conduct.js.map +1 -0
  54. package/dist/tools/codespaces.d.ts +8 -0
  55. package/dist/tools/codespaces.d.ts.map +1 -0
  56. package/dist/tools/codespaces.js +555 -0
  57. package/dist/tools/codespaces.js.map +1 -0
  58. package/dist/tools/copilot.d.ts +17 -0
  59. package/dist/tools/copilot.d.ts.map +1 -0
  60. package/dist/tools/copilot.js +284 -0
  61. package/dist/tools/copilot.js.map +1 -0
  62. package/dist/tools/credentials.d.ts +10 -0
  63. package/dist/tools/credentials.d.ts.map +1 -0
  64. package/dist/tools/credentials.js +19 -0
  65. package/dist/tools/credentials.js.map +1 -0
  66. package/dist/tools/dependabot.d.ts +49 -0
  67. package/dist/tools/dependabot.d.ts.map +1 -0
  68. package/dist/tools/dependabot.js +311 -0
  69. package/dist/tools/dependabot.js.map +1 -0
  70. package/dist/tools/dependency-graph.d.ts +11 -0
  71. package/dist/tools/dependency-graph.d.ts.map +1 -0
  72. package/dist/tools/dependency-graph.js +45 -0
  73. package/dist/tools/dependency-graph.js.map +1 -0
  74. package/dist/tools/emojis.d.ts +8 -0
  75. package/dist/tools/emojis.d.ts.map +1 -0
  76. package/dist/tools/emojis.js +17 -0
  77. package/dist/tools/emojis.js.map +1 -0
  78. package/dist/tools/enterprise-team-memberships.d.ts +31 -0
  79. package/dist/tools/enterprise-team-memberships.d.ts.map +1 -0
  80. package/dist/tools/enterprise-team-memberships.js +82 -0
  81. package/dist/tools/enterprise-team-memberships.js.map +1 -0
  82. package/dist/tools/enterprise-team-organizations.d.ts +31 -0
  83. package/dist/tools/enterprise-team-organizations.d.ts.map +1 -0
  84. package/dist/tools/enterprise-team-organizations.js +82 -0
  85. package/dist/tools/enterprise-team-organizations.js.map +1 -0
  86. package/dist/tools/enterprise-teams.d.ts +28 -0
  87. package/dist/tools/enterprise-teams.d.ts.map +1 -0
  88. package/dist/tools/enterprise-teams.js +66 -0
  89. package/dist/tools/enterprise-teams.js.map +1 -0
  90. package/dist/tools/gists.d.ts +26 -0
  91. package/dist/tools/gists.d.ts.map +1 -0
  92. package/dist/tools/gists.js +231 -0
  93. package/dist/tools/gists.js.map +1 -0
  94. package/dist/tools/git.d.ts +58 -0
  95. package/dist/tools/git.d.ts.map +1 -0
  96. package/dist/tools/git.js +167 -0
  97. package/dist/tools/git.js.map +1 -0
  98. package/dist/tools/gitignore.d.ts +8 -0
  99. package/dist/tools/gitignore.d.ts.map +1 -0
  100. package/dist/tools/gitignore.js +27 -0
  101. package/dist/tools/gitignore.js.map +1 -0
  102. package/dist/tools/hosted-compute.d.ts +36 -0
  103. package/dist/tools/hosted-compute.d.ts.map +1 -0
  104. package/dist/tools/hosted-compute.js +77 -0
  105. package/dist/tools/hosted-compute.js.map +1 -0
  106. package/dist/tools/index.d.ts +45 -0
  107. package/dist/tools/index.d.ts.map +1 -0
  108. package/dist/tools/index.js +93 -0
  109. package/dist/tools/index.js.map +1 -0
  110. package/dist/tools/interactions.d.ts +8 -0
  111. package/dist/tools/interactions.d.ts.map +1 -0
  112. package/dist/tools/interactions.js +100 -0
  113. package/dist/tools/interactions.js.map +1 -0
  114. package/dist/tools/issues.d.ts +126 -0
  115. package/dist/tools/issues.d.ts.map +1 -0
  116. package/dist/tools/issues.js +746 -0
  117. package/dist/tools/issues.js.map +1 -0
  118. package/dist/tools/licenses.d.ts +28 -0
  119. package/dist/tools/licenses.d.ts.map +1 -0
  120. package/dist/tools/licenses.js +43 -0
  121. package/dist/tools/licenses.js.map +1 -0
  122. package/dist/tools/markdown.d.ts +10 -0
  123. package/dist/tools/markdown.d.ts.map +1 -0
  124. package/dist/tools/markdown.js +29 -0
  125. package/dist/tools/markdown.js.map +1 -0
  126. package/dist/tools/meta.d.ts +8 -0
  127. package/dist/tools/meta.d.ts.map +1 -0
  128. package/dist/tools/meta.js +51 -0
  129. package/dist/tools/meta.js.map +1 -0
  130. package/dist/tools/migrations.d.ts +33 -0
  131. package/dist/tools/migrations.d.ts.map +1 -0
  132. package/dist/tools/migrations.js +261 -0
  133. package/dist/tools/migrations.js.map +1 -0
  134. package/dist/tools/oidc.d.ts +17 -0
  135. package/dist/tools/oidc.d.ts.map +1 -0
  136. package/dist/tools/oidc.js +94 -0
  137. package/dist/tools/oidc.js.map +1 -0
  138. package/dist/tools/orgs.d.ts +26 -0
  139. package/dist/tools/orgs.d.ts.map +1 -0
  140. package/dist/tools/orgs.js +1304 -0
  141. package/dist/tools/orgs.js.map +1 -0
  142. package/dist/tools/packages.d.ts +8 -0
  143. package/dist/tools/packages.d.ts.map +1 -0
  144. package/dist/tools/packages.js +341 -0
  145. package/dist/tools/packages.js.map +1 -0
  146. package/dist/tools/private-registries.d.ts +10 -0
  147. package/dist/tools/private-registries.d.ts.map +1 -0
  148. package/dist/tools/private-registries.js +76 -0
  149. package/dist/tools/private-registries.js.map +1 -0
  150. package/dist/tools/projects.d.ts +50 -0
  151. package/dist/tools/projects.d.ts.map +1 -0
  152. package/dist/tools/projects.js +347 -0
  153. package/dist/tools/projects.js.map +1 -0
  154. package/dist/tools/pulls.d.ts +77 -0
  155. package/dist/tools/pulls.d.ts.map +1 -0
  156. package/dist/tools/pulls.js +374 -0
  157. package/dist/tools/pulls.js.map +1 -0
  158. package/dist/tools/rate-limit.d.ts +8 -0
  159. package/dist/tools/rate-limit.d.ts.map +1 -0
  160. package/dist/tools/rate-limit.js +17 -0
  161. package/dist/tools/rate-limit.js.map +1 -0
  162. package/dist/tools/reactions.d.ts +124 -0
  163. package/dist/tools/reactions.d.ts.map +1 -0
  164. package/dist/tools/reactions.js +214 -0
  165. package/dist/tools/reactions.js.map +1 -0
  166. package/dist/tools/repos.d.ts +56 -0
  167. package/dist/tools/repos.d.ts.map +1 -0
  168. package/dist/tools/repos.js +2514 -0
  169. package/dist/tools/repos.js.map +1 -0
  170. package/dist/tools/search.d.ts +12 -0
  171. package/dist/tools/search.d.ts.map +1 -0
  172. package/dist/tools/search.js +108 -0
  173. package/dist/tools/search.js.map +1 -0
  174. package/dist/tools/secret-scanning.d.ts +18 -0
  175. package/dist/tools/secret-scanning.d.ts.map +1 -0
  176. package/dist/tools/secret-scanning.js +148 -0
  177. package/dist/tools/secret-scanning.js.map +1 -0
  178. package/dist/tools/security-advisories.d.ts +112 -0
  179. package/dist/tools/security-advisories.d.ts.map +1 -0
  180. package/dist/tools/security-advisories.js +152 -0
  181. package/dist/tools/security-advisories.js.map +1 -0
  182. package/dist/tools/teams.d.ts +34 -0
  183. package/dist/tools/teams.d.ts.map +1 -0
  184. package/dist/tools/teams.js +392 -0
  185. package/dist/tools/teams.js.map +1 -0
  186. package/dist/tools/users.d.ts +8 -0
  187. package/dist/tools/users.d.ts.map +1 -0
  188. package/dist/tools/users.js +510 -0
  189. package/dist/tools/users.js.map +1 -0
  190. package/package.json +50 -0
package/README.md ADDED
@@ -0,0 +1,123 @@
1
+ # github-mcp
2
+
3
+ MCP server for the GitHub REST API — 1,112 tools covering all 44 API categories.
4
+
5
+ Auto-generated from [GitHub's OpenAPI spec](https://github.com/github/rest-api-description) using a code generator that produces typed tool definitions with Zod validation.
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ npm install github-rest-mcp
11
+ ```
12
+
13
+ Or from GitHub Packages:
14
+
15
+ ```bash
16
+ npm install @eyalm321/github-mcp
17
+ ```
18
+
19
+ ## Configuration
20
+
21
+ Set your GitHub Personal Access Token:
22
+
23
+ ```bash
24
+ export GITHUB_TOKEN=ghp_your_token_here
25
+ ```
26
+
27
+ ### Category Filter
28
+
29
+ By default all 1,112 tools are registered. To enable only specific categories:
30
+
31
+ ```bash
32
+ export GITHUB_MCP_CATEGORIES=repos,issues,pulls,actions
33
+ ```
34
+
35
+ ### Claude Desktop
36
+
37
+ Add to your `claude_desktop_config.json`:
38
+
39
+ ```json
40
+ {
41
+ "mcpServers": {
42
+ "github": {
43
+ "command": "npx",
44
+ "args": ["-y", "github-rest-mcp"],
45
+ "env": {
46
+ "GITHUB_TOKEN": "ghp_your_token_here",
47
+ "GITHUB_MCP_CATEGORIES": "repos,issues,pulls,actions,users,orgs,git,search"
48
+ }
49
+ }
50
+ }
51
+ }
52
+ ```
53
+
54
+ ## API Categories
55
+
56
+ | Category | Tools | Category | Tools |
57
+ |----------|-------|----------|-------|
58
+ | actions | 184 | activity | 32 |
59
+ | agent-tasks | 5 | apps | 37 |
60
+ | billing | 10 | campaigns | 5 |
61
+ | checks | 12 | classroom | 6 |
62
+ | code-scanning | 21 | code-security | 20 |
63
+ | codes-of-conduct | 2 | codespaces | 48 |
64
+ | copilot | 25 | credentials | 1 |
65
+ | dependabot | 22 | dependency-graph | 3 |
66
+ | emojis | 1 | enterprise-team-memberships | 6 |
67
+ | enterprise-team-organizations | 6 | enterprise-teams | 5 |
68
+ | gists | 20 | git | 13 |
69
+ | gitignore | 2 | hosted-compute | 6 |
70
+ | interactions | 9 | issues | 55 |
71
+ | licenses | 3 | markdown | 2 |
72
+ | meta | 5 | migrations | 22 |
73
+ | oidc | 8 | orgs | 108 |
74
+ | packages | 27 | private-registries | 6 |
75
+ | projects | 26 | pulls | 27 |
76
+ | rate-limit | 1 | reactions | 15 |
77
+ | repos | 201 | search | 7 |
78
+ | secret-scanning | 9 | security-advisories | 10 |
79
+ | teams | 32 | users | 47 |
80
+
81
+ ## Tool Naming
82
+
83
+ Tools follow the pattern `github_{category}_{action}`, derived from GitHub's operation IDs:
84
+
85
+ - `github_repos_get` — Get a repository
86
+ - `github_issues_create` — Create an issue
87
+ - `github_pulls_list` — List pull requests
88
+ - `github_actions_list_workflow_runs` — List workflow runs
89
+
90
+ ## Development
91
+
92
+ ```bash
93
+ # Install dependencies
94
+ npm install
95
+
96
+ # Regenerate tools from OpenAPI spec
97
+ npm run generate
98
+
99
+ # Build
100
+ npm run build
101
+
102
+ # Run tests
103
+ npm test
104
+
105
+ # Start the server
106
+ npm start
107
+ ```
108
+
109
+ ## Regenerating Tools
110
+
111
+ The tool files in `src/tools/` are auto-generated from GitHub's OpenAPI spec. To update:
112
+
113
+ ```bash
114
+ # Delete cached spec to force re-download
115
+ rm -f api-description.json
116
+
117
+ # Regenerate
118
+ npm run generate
119
+ ```
120
+
121
+ ## License
122
+
123
+ MIT
@@ -0,0 +1,2 @@
1
+ export declare function githubRequest<T>(method: string, path: string, body?: Record<string, unknown>, params?: Record<string, string | number | boolean | string[] | undefined>): Promise<T>;
2
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAQA,wBAAsB,aAAa,CAAC,CAAC,EACnC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GACxE,OAAO,CAAC,CAAC,CAAC,CA6CZ"}
package/dist/client.js ADDED
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.githubRequest = githubRequest;
4
+ const BASE_URL = "https://api.github.com";
5
+ function getToken() {
6
+ const token = process.env.GITHUB_TOKEN;
7
+ if (!token)
8
+ throw new Error("GITHUB_TOKEN environment variable is not set");
9
+ return token;
10
+ }
11
+ async function githubRequest(method, path, body, params) {
12
+ const url = new URL(`${BASE_URL}${path}`);
13
+ if (params) {
14
+ for (const [key, value] of Object.entries(params)) {
15
+ if (value === undefined || value === null || value === "")
16
+ continue;
17
+ if (Array.isArray(value)) {
18
+ url.searchParams.set(key, value.join(","));
19
+ }
20
+ else {
21
+ url.searchParams.set(key, String(value));
22
+ }
23
+ }
24
+ }
25
+ const headers = {
26
+ Authorization: `Bearer ${getToken()}`,
27
+ Accept: "application/vnd.github+json",
28
+ "X-GitHub-Api-Version": "2022-11-28",
29
+ "User-Agent": "github-mcp/1.0.0",
30
+ };
31
+ if (body) {
32
+ headers["Content-Type"] = "application/json";
33
+ }
34
+ const res = await fetch(url.toString(), {
35
+ method,
36
+ headers,
37
+ body: body ? JSON.stringify(body) : undefined,
38
+ });
39
+ if (!res.ok) {
40
+ const text = await res.text().catch(() => "");
41
+ let detail = text;
42
+ try {
43
+ const json = JSON.parse(text);
44
+ detail = json.message || text;
45
+ if (json.errors)
46
+ detail += ` -- ${JSON.stringify(json.errors)}`;
47
+ }
48
+ catch { }
49
+ throw new Error(`GitHub API error ${res.status}: ${detail}`);
50
+ }
51
+ if (res.status === 204)
52
+ return {};
53
+ return res.json();
54
+ }
55
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;AAQA,sCAkDC;AA1DD,MAAM,QAAQ,GAAG,wBAAwB,CAAC;AAE1C,SAAS,QAAQ;IACf,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACvC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC5E,OAAO,KAAK,CAAC;AACf,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,MAAc,EACd,IAAY,EACZ,IAA8B,EAC9B,MAAyE;IAEzE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC,CAAC;IAE1C,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;gBAAE,SAAS;YACpE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAA2B;QACtC,aAAa,EAAE,UAAU,QAAQ,EAAE,EAAE;QACrC,MAAM,EAAE,6BAA6B;QACrC,sBAAsB,EAAE,YAAY;QACpC,YAAY,EAAE,kBAAkB;KACjC,CAAC;IAEF,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;IAC/C,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;QACtC,MAAM;QACN,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9C,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;YAC9B,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;QAAE,OAAO,EAAO,CAAC;IAEvC,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAC;AAClC,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,133 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ // AUTO-GENERATED by scripts/generate.ts — DO NOT EDIT
5
+ const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
6
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
7
+ const actions_js_1 = require("./tools/actions.js");
8
+ const activity_js_1 = require("./tools/activity.js");
9
+ const agent_tasks_js_1 = require("./tools/agent-tasks.js");
10
+ const apps_js_1 = require("./tools/apps.js");
11
+ const billing_js_1 = require("./tools/billing.js");
12
+ const campaigns_js_1 = require("./tools/campaigns.js");
13
+ const checks_js_1 = require("./tools/checks.js");
14
+ const classroom_js_1 = require("./tools/classroom.js");
15
+ const code_scanning_js_1 = require("./tools/code-scanning.js");
16
+ const code_security_js_1 = require("./tools/code-security.js");
17
+ const codes_of_conduct_js_1 = require("./tools/codes-of-conduct.js");
18
+ const codespaces_js_1 = require("./tools/codespaces.js");
19
+ const copilot_js_1 = require("./tools/copilot.js");
20
+ const credentials_js_1 = require("./tools/credentials.js");
21
+ const dependabot_js_1 = require("./tools/dependabot.js");
22
+ const dependency_graph_js_1 = require("./tools/dependency-graph.js");
23
+ const emojis_js_1 = require("./tools/emojis.js");
24
+ const enterprise_team_memberships_js_1 = require("./tools/enterprise-team-memberships.js");
25
+ const enterprise_team_organizations_js_1 = require("./tools/enterprise-team-organizations.js");
26
+ const enterprise_teams_js_1 = require("./tools/enterprise-teams.js");
27
+ const gists_js_1 = require("./tools/gists.js");
28
+ const git_js_1 = require("./tools/git.js");
29
+ const gitignore_js_1 = require("./tools/gitignore.js");
30
+ const hosted_compute_js_1 = require("./tools/hosted-compute.js");
31
+ const interactions_js_1 = require("./tools/interactions.js");
32
+ const issues_js_1 = require("./tools/issues.js");
33
+ const licenses_js_1 = require("./tools/licenses.js");
34
+ const markdown_js_1 = require("./tools/markdown.js");
35
+ const meta_js_1 = require("./tools/meta.js");
36
+ const migrations_js_1 = require("./tools/migrations.js");
37
+ const oidc_js_1 = require("./tools/oidc.js");
38
+ const orgs_js_1 = require("./tools/orgs.js");
39
+ const packages_js_1 = require("./tools/packages.js");
40
+ const private_registries_js_1 = require("./tools/private-registries.js");
41
+ const projects_js_1 = require("./tools/projects.js");
42
+ const pulls_js_1 = require("./tools/pulls.js");
43
+ const rate_limit_js_1 = require("./tools/rate-limit.js");
44
+ const reactions_js_1 = require("./tools/reactions.js");
45
+ const repos_js_1 = require("./tools/repos.js");
46
+ const search_js_1 = require("./tools/search.js");
47
+ const secret_scanning_js_1 = require("./tools/secret-scanning.js");
48
+ const security_advisories_js_1 = require("./tools/security-advisories.js");
49
+ const teams_js_1 = require("./tools/teams.js");
50
+ const users_js_1 = require("./tools/users.js");
51
+ const server = new mcp_js_1.McpServer({
52
+ name: "github-mcp",
53
+ version: "1.0.2",
54
+ });
55
+ const allToolModules = [
56
+ { category: "actions", tools: actions_js_1.actionsTools },
57
+ { category: "activity", tools: activity_js_1.activityTools },
58
+ { category: "agent-tasks", tools: agent_tasks_js_1.agentTasksTools },
59
+ { category: "apps", tools: apps_js_1.appsTools },
60
+ { category: "billing", tools: billing_js_1.billingTools },
61
+ { category: "campaigns", tools: campaigns_js_1.campaignsTools },
62
+ { category: "checks", tools: checks_js_1.checksTools },
63
+ { category: "classroom", tools: classroom_js_1.classroomTools },
64
+ { category: "code-scanning", tools: code_scanning_js_1.codeScanningTools },
65
+ { category: "code-security", tools: code_security_js_1.codeSecurityTools },
66
+ { category: "codes-of-conduct", tools: codes_of_conduct_js_1.codesOfConductTools },
67
+ { category: "codespaces", tools: codespaces_js_1.codespacesTools },
68
+ { category: "copilot", tools: copilot_js_1.copilotTools },
69
+ { category: "credentials", tools: credentials_js_1.credentialsTools },
70
+ { category: "dependabot", tools: dependabot_js_1.dependabotTools },
71
+ { category: "dependency-graph", tools: dependency_graph_js_1.dependencyGraphTools },
72
+ { category: "emojis", tools: emojis_js_1.emojisTools },
73
+ { category: "enterprise-team-memberships", tools: enterprise_team_memberships_js_1.enterpriseTeamMembershipsTools },
74
+ { category: "enterprise-team-organizations", tools: enterprise_team_organizations_js_1.enterpriseTeamOrganizationsTools },
75
+ { category: "enterprise-teams", tools: enterprise_teams_js_1.enterpriseTeamsTools },
76
+ { category: "gists", tools: gists_js_1.gistsTools },
77
+ { category: "git", tools: git_js_1.gitTools },
78
+ { category: "gitignore", tools: gitignore_js_1.gitignoreTools },
79
+ { category: "hosted-compute", tools: hosted_compute_js_1.hostedComputeTools },
80
+ { category: "interactions", tools: interactions_js_1.interactionsTools },
81
+ { category: "issues", tools: issues_js_1.issuesTools },
82
+ { category: "licenses", tools: licenses_js_1.licensesTools },
83
+ { category: "markdown", tools: markdown_js_1.markdownTools },
84
+ { category: "meta", tools: meta_js_1.metaTools },
85
+ { category: "migrations", tools: migrations_js_1.migrationsTools },
86
+ { category: "oidc", tools: oidc_js_1.oidcTools },
87
+ { category: "orgs", tools: orgs_js_1.orgsTools },
88
+ { category: "packages", tools: packages_js_1.packagesTools },
89
+ { category: "private-registries", tools: private_registries_js_1.privateRegistriesTools },
90
+ { category: "projects", tools: projects_js_1.projectsTools },
91
+ { category: "pulls", tools: pulls_js_1.pullsTools },
92
+ { category: "rate-limit", tools: rate_limit_js_1.rateLimitTools },
93
+ { category: "reactions", tools: reactions_js_1.reactionsTools },
94
+ { category: "repos", tools: repos_js_1.reposTools },
95
+ { category: "search", tools: search_js_1.searchTools },
96
+ { category: "secret-scanning", tools: secret_scanning_js_1.secretScanningTools },
97
+ { category: "security-advisories", tools: security_advisories_js_1.securityAdvisoriesTools },
98
+ { category: "teams", tools: teams_js_1.teamsTools },
99
+ { category: "users", tools: users_js_1.usersTools },
100
+ ];
101
+ const enabledCategories = process.env.GITHUB_MCP_CATEGORIES
102
+ ? new Set(process.env.GITHUB_MCP_CATEGORIES.split(",").map((s) => s.trim()))
103
+ : null;
104
+ const allTools = allToolModules
105
+ .filter((m) => !enabledCategories || enabledCategories.has(m.category))
106
+ .flatMap((m) => m.tools);
107
+ for (const tool of allTools) {
108
+ server.tool(tool.name, tool.description, tool.inputSchema.shape, async (args) => {
109
+ try {
110
+ const result = await tool.handler(args);
111
+ return {
112
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
113
+ };
114
+ }
115
+ catch (err) {
116
+ const message = err instanceof Error ? err.message : String(err);
117
+ return {
118
+ content: [{ type: "text", text: `Error: ${message}` }],
119
+ isError: true,
120
+ };
121
+ }
122
+ });
123
+ }
124
+ async function main() {
125
+ const transport = new stdio_js_1.StdioServerTransport();
126
+ await server.connect(transport);
127
+ console.error(`GitHub MCP server running (${allTools.length} tools registered)`);
128
+ }
129
+ main().catch((err) => {
130
+ console.error("Fatal error:", err);
131
+ process.exit(1);
132
+ });
133
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { z } from "zod";
2
+ export declare const actionsTools: ({
3
+ name: string;
4
+ description: string;
5
+ inputSchema: z.ZodObject<{
6
+ enterprise: z.ZodString;
7
+ }, z.core.$strip>;
8
+ handler: (args: Record<string, any>) => Promise<unknown>;
9
+ } | {
10
+ name: string;
11
+ description: string;
12
+ inputSchema: z.ZodObject<{
13
+ org: z.ZodString;
14
+ }, z.core.$strip>;
15
+ handler: (args: Record<string, any>) => Promise<unknown>;
16
+ } | {
17
+ name: string;
18
+ description: string;
19
+ inputSchema: z.ZodObject<{
20
+ owner: z.ZodString;
21
+ repo: z.ZodString;
22
+ }, z.core.$strip>;
23
+ handler: (args: Record<string, any>) => Promise<unknown>;
24
+ })[];
25
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/tools/actions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,YAAY;;;;;;oBAOC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;;;;oBA0CnB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;;;;;oBAihCnB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAglC5C,CAAC"}