github-to-mcp-monorepo 1.0.0

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 (388) hide show
  1. package/.env.example +8 -0
  2. package/.github/CODEOWNERS +6 -0
  3. package/.husky/pre-commit +1 -0
  4. package/.nvmrc +1 -0
  5. package/.prettierignore +5 -0
  6. package/.prettierrc +7 -0
  7. package/.vscode/settings.json +4 -0
  8. package/ARCHITECTURE.md +1429 -0
  9. package/CHANGELOG.md +167 -0
  10. package/CONTRIBUTING.md +327 -0
  11. package/LICENSE +201 -0
  12. package/README.md +1028 -0
  13. package/SECURITY.md +248 -0
  14. package/VISUAL_GUIDE.md +437 -0
  15. package/apps/vscode/IMPLEMENTATION.md +480 -0
  16. package/apps/vscode/README.md +248 -0
  17. package/apps/vscode/package.json +381 -0
  18. package/apps/vscode/resources/icon.png +0 -0
  19. package/apps/vscode/resources/icon.svg +5 -0
  20. package/apps/vscode/src/commands/browseRegistry.ts +211 -0
  21. package/apps/vscode/src/commands/configureClaudeDesktop.ts +332 -0
  22. package/apps/vscode/src/commands/convert.ts +82 -0
  23. package/apps/vscode/src/commands/convertCurrentRepo.ts +109 -0
  24. package/apps/vscode/src/commands/convertFromUrl.ts +138 -0
  25. package/apps/vscode/src/commands/index.ts +121 -0
  26. package/apps/vscode/src/commands/validate.ts +197 -0
  27. package/apps/vscode/src/extension.ts +464 -0
  28. package/apps/vscode/src/global.d.ts +36 -0
  29. package/apps/vscode/src/test/extension.test.ts +73 -0
  30. package/apps/vscode/src/utils/file-generator.ts +529 -0
  31. package/apps/vscode/src/utils/github-api.ts +335 -0
  32. package/apps/vscode/src/utils/index.ts +29 -0
  33. package/apps/vscode/src/utils/mcp-config.ts +334 -0
  34. package/apps/vscode/src/utils/storage.ts +87 -0
  35. package/apps/vscode/src/views/McpServersTreeView.ts +160 -0
  36. package/apps/vscode/src/views/OutputChannelView.ts +195 -0
  37. package/apps/vscode/src/views/StatusBarItem.ts +251 -0
  38. package/apps/vscode/src/views/ToolsExplorerView.ts +314 -0
  39. package/apps/vscode/src/views/historyProvider.ts +75 -0
  40. package/apps/vscode/src/views/index.ts +12 -0
  41. package/apps/vscode/src/views/resultsPanel.ts +330 -0
  42. package/apps/vscode/src/webviews/ConversionPanel.ts +350 -0
  43. package/apps/vscode/src/webviews/ToolDetailsPanel.ts +448 -0
  44. package/apps/vscode/src/webviews/index.ts +9 -0
  45. package/apps/vscode/src/webviews/webview-ui/styles.ts +492 -0
  46. package/apps/vscode/tsconfig.json +20 -0
  47. package/apps/web/PLAYGROUND_GUIDE.md +499 -0
  48. package/apps/web/README.md +505 -0
  49. package/apps/web/app/api/convert/route.ts +100 -0
  50. package/apps/web/app/api/convert/stream/route.ts +198 -0
  51. package/apps/web/app/api/deploy/route.ts +157 -0
  52. package/apps/web/app/api/edge/route.ts +308 -0
  53. package/apps/web/app/api/export-docker/route.ts +284 -0
  54. package/apps/web/app/api/generate-openapi/route.ts +119 -0
  55. package/apps/web/app/api/mcp/[serverId]/route.ts +263 -0
  56. package/apps/web/app/api/playground/connect/route.ts +143 -0
  57. package/apps/web/app/api/playground/disconnect/route.ts +78 -0
  58. package/apps/web/app/api/playground/execute/route.ts +135 -0
  59. package/apps/web/app/api/playground/sessions/route.ts +103 -0
  60. package/apps/web/app/api/playground/tools/route.ts +117 -0
  61. package/apps/web/app/api/playground/v2/connect/route.ts +96 -0
  62. package/apps/web/app/api/playground/v2/disconnect/route.ts +88 -0
  63. package/apps/web/app/api/playground/v2/health/route.ts +80 -0
  64. package/apps/web/app/api/playground/v2/prompts/route.ts +160 -0
  65. package/apps/web/app/api/playground/v2/resources/route.ts +159 -0
  66. package/apps/web/app/api/playground/v2/sessions/route.ts +184 -0
  67. package/apps/web/app/api/playground/v2/tools/route.ts +167 -0
  68. package/apps/web/app/api/stream/route.ts +232 -0
  69. package/apps/web/app/batch/BatchConvertClient.tsx +190 -0
  70. package/apps/web/app/batch/page.tsx +37 -0
  71. package/apps/web/app/convert/page.tsx +269 -0
  72. package/apps/web/app/dashboard/page.tsx +380 -0
  73. package/apps/web/app/globals.css +622 -0
  74. package/apps/web/app/layout.tsx +120 -0
  75. package/apps/web/app/manifest.ts +31 -0
  76. package/apps/web/app/opengraph-image.tsx +112 -0
  77. package/apps/web/app/page.old.tsx +924 -0
  78. package/apps/web/app/page.tsx +77 -0
  79. package/apps/web/app/playground/page.tsx +306 -0
  80. package/apps/web/app/playground/v2/error.tsx +163 -0
  81. package/apps/web/app/playground/v2/layout.tsx +58 -0
  82. package/apps/web/app/playground/v2/loading.tsx +152 -0
  83. package/apps/web/app/playground/v2/page.tsx +644 -0
  84. package/apps/web/app/playground/v2/providers.tsx +214 -0
  85. package/apps/web/app/playground/v2/use-shortcuts.ts +209 -0
  86. package/apps/web/app/playground/v2/use-url-state.ts +296 -0
  87. package/apps/web/app/providers.tsx +22 -0
  88. package/apps/web/app/sitemap.ts +32 -0
  89. package/apps/web/app/twitter-image.tsx +112 -0
  90. package/apps/web/components/BranchSelector.tsx +401 -0
  91. package/apps/web/components/ClaudeConfigExport.tsx +226 -0
  92. package/apps/web/components/Features.tsx +84 -0
  93. package/apps/web/components/Footer.tsx +119 -0
  94. package/apps/web/components/GenerationProgress.tsx +248 -0
  95. package/apps/web/components/GithubUrlInput.tsx +483 -0
  96. package/apps/web/components/Header.tsx +175 -0
  97. package/apps/web/components/Hero.tsx +117 -0
  98. package/apps/web/components/HowItWorks.tsx +119 -0
  99. package/apps/web/components/InstallBanner.tsx +158 -0
  100. package/apps/web/components/Logo.tsx +116 -0
  101. package/apps/web/components/ParticleBackground.tsx +105 -0
  102. package/apps/web/components/Playground.tsx +472 -0
  103. package/apps/web/components/PlaygroundToolTester.tsx +410 -0
  104. package/apps/web/components/ProductCards.tsx +179 -0
  105. package/apps/web/components/SplitView.tsx +194 -0
  106. package/apps/web/components/ToolFilter.tsx +260 -0
  107. package/apps/web/components/ToolList.tsx +325 -0
  108. package/apps/web/components/batch/BatchConvert.tsx +785 -0
  109. package/apps/web/components/batch/index.ts +7 -0
  110. package/apps/web/components/convert/ConfigTabs.tsx +230 -0
  111. package/apps/web/components/convert/ConversionResult.tsx +482 -0
  112. package/apps/web/components/convert/InlinePlayground.tsx +259 -0
  113. package/apps/web/components/convert/LoadingSteps.tsx +311 -0
  114. package/apps/web/components/convert/OneClickInstall.tsx +224 -0
  115. package/apps/web/components/convert/ToolCard.tsx +189 -0
  116. package/apps/web/components/convert/TryInPlayground.tsx +242 -0
  117. package/apps/web/components/convert/index.ts +12 -0
  118. package/apps/web/components/deploy/DeployButton.tsx +369 -0
  119. package/apps/web/components/deploy/index.ts +7 -0
  120. package/apps/web/components/docker/DockerExport.tsx +690 -0
  121. package/apps/web/components/docker/index.ts +7 -0
  122. package/apps/web/components/install/OneClickInstall.tsx +676 -0
  123. package/apps/web/components/install/index.ts +7 -0
  124. package/apps/web/components/playground/CapabilityTabs.tsx +150 -0
  125. package/apps/web/components/playground/ConnectionStatusV2.tsx +322 -0
  126. package/apps/web/components/playground/EmptyStates.tsx +305 -0
  127. package/apps/web/components/playground/ExecutionLog.tsx +260 -0
  128. package/apps/web/components/playground/ExecutionLogV2.tsx +378 -0
  129. package/apps/web/components/playground/JsonViewer.tsx +388 -0
  130. package/apps/web/components/playground/PlaygroundLayout.tsx +244 -0
  131. package/apps/web/components/playground/PromptsPanel.tsx +385 -0
  132. package/apps/web/components/playground/ResourcesPanel.tsx +378 -0
  133. package/apps/web/components/playground/SchemaForm.tsx +477 -0
  134. package/apps/web/components/playground/ServerStatus.tsx +151 -0
  135. package/apps/web/components/playground/ShareButton.tsx +239 -0
  136. package/apps/web/components/playground/ToolsPanel.tsx +309 -0
  137. package/apps/web/components/playground/TransportConfigurator.tsx +563 -0
  138. package/apps/web/components/playground/index.ts +74 -0
  139. package/apps/web/components/playground/types.ts +202 -0
  140. package/apps/web/components/streaming/StreamingProgress.tsx +441 -0
  141. package/apps/web/components/streaming/index.ts +7 -0
  142. package/apps/web/components/ui/badge.tsx +42 -0
  143. package/apps/web/components/ui/button.tsx +88 -0
  144. package/apps/web/components/ui/card.tsx +75 -0
  145. package/apps/web/components/ui/code-block.tsx +122 -0
  146. package/apps/web/components/ui/index.ts +12 -0
  147. package/apps/web/components/ui/input.tsx +55 -0
  148. package/apps/web/components/ui/tabs.tsx +61 -0
  149. package/apps/web/hooks/index.ts +85 -0
  150. package/apps/web/hooks/types.ts +1173 -0
  151. package/apps/web/hooks/use-conversion.ts +133 -0
  152. package/apps/web/hooks/use-execution-history.ts +376 -0
  153. package/apps/web/hooks/use-generation-progress.ts +147 -0
  154. package/apps/web/hooks/use-local-storage.ts +88 -0
  155. package/apps/web/hooks/use-mcp-client.ts +623 -0
  156. package/apps/web/hooks/use-mcp-connection.ts +500 -0
  157. package/apps/web/hooks/use-mcp-execution.ts +282 -0
  158. package/apps/web/hooks/use-mcp-prompts.ts +441 -0
  159. package/apps/web/hooks/use-mcp-resources.ts +430 -0
  160. package/apps/web/hooks/use-mcp-tools.ts +540 -0
  161. package/apps/web/hooks/use-playground-store.ts +299 -0
  162. package/apps/web/hooks/use-playground.ts +184 -0
  163. package/apps/web/hooks/use-streaming-conversion.ts +227 -0
  164. package/apps/web/hooks/useBatchConversion.ts +271 -0
  165. package/apps/web/hooks/useDockerConfig.ts +161 -0
  166. package/apps/web/hooks/usePlatformDetection.ts +80 -0
  167. package/apps/web/hooks/useStreaming.ts +199 -0
  168. package/apps/web/lib/api/errors.ts +386 -0
  169. package/apps/web/lib/api/index.ts +137 -0
  170. package/apps/web/lib/api/logger.ts +187 -0
  171. package/apps/web/lib/api/middleware.ts +364 -0
  172. package/apps/web/lib/api/openapi.ts +977 -0
  173. package/apps/web/lib/api/session-manager.ts +594 -0
  174. package/apps/web/lib/api/types.ts +433 -0
  175. package/apps/web/lib/api/validation.ts +523 -0
  176. package/apps/web/lib/constants.ts +114 -0
  177. package/apps/web/lib/mcp/client.ts +1137 -0
  178. package/apps/web/lib/mcp/events.ts +651 -0
  179. package/apps/web/lib/mcp/index.ts +347 -0
  180. package/apps/web/lib/mcp/logger.ts +428 -0
  181. package/apps/web/lib/mcp/metrics.ts +703 -0
  182. package/apps/web/lib/mcp/retry.ts +616 -0
  183. package/apps/web/lib/mcp/session-manager.ts +779 -0
  184. package/apps/web/lib/mcp/transports.ts +988 -0
  185. package/apps/web/lib/mcp/types.ts +594 -0
  186. package/apps/web/lib/mcp-client-enhanced.ts +871 -0
  187. package/apps/web/lib/mcp-client.ts +778 -0
  188. package/apps/web/lib/mcp-errors.ts +489 -0
  189. package/apps/web/lib/mcp-sandbox.ts +593 -0
  190. package/apps/web/lib/mcp-testing.ts +428 -0
  191. package/apps/web/lib/mcp-types.ts +448 -0
  192. package/apps/web/lib/playground-store.tsx +1147 -0
  193. package/apps/web/lib/utils.ts +439 -0
  194. package/apps/web/next-env.d.ts +5 -0
  195. package/apps/web/next.config.js +23 -0
  196. package/apps/web/package.json +55 -0
  197. package/apps/web/postcss.config.js +6 -0
  198. package/apps/web/public/.well-known/ai-plugin.json +17 -0
  199. package/apps/web/public/logo.svg +6 -0
  200. package/apps/web/public/robots.txt +22 -0
  201. package/apps/web/public/schema.json +27 -0
  202. package/apps/web/tailwind.config.js +26 -0
  203. package/apps/web/tailwind.config.ts +123 -0
  204. package/apps/web/tsconfig.json +20 -0
  205. package/apps/web/types/deploy.ts +139 -0
  206. package/apps/web/types/index.ts +247 -0
  207. package/apps/web/vercel.json +39 -0
  208. package/eslint.config.mjs +23 -0
  209. package/llms.txt +102 -0
  210. package/mkdocs/docs/api/core.md +318 -0
  211. package/mkdocs/docs/api/index.md +128 -0
  212. package/mkdocs/docs/api/mcp-server.md +301 -0
  213. package/mkdocs/docs/api/openapi-parser.md +254 -0
  214. package/mkdocs/docs/assets/logo.svg +7 -0
  215. package/mkdocs/docs/changelog.md +118 -0
  216. package/mkdocs/docs/cli/generate.md +148 -0
  217. package/mkdocs/docs/cli/index.md +52 -0
  218. package/mkdocs/docs/cli/inspect.md +164 -0
  219. package/mkdocs/docs/cli/serve.md +136 -0
  220. package/mkdocs/docs/concepts/classification.md +254 -0
  221. package/mkdocs/docs/concepts/how-it-works.md +299 -0
  222. package/mkdocs/docs/concepts/index.md +77 -0
  223. package/mkdocs/docs/concepts/mcp-protocol.md +362 -0
  224. package/mkdocs/docs/concepts/tool-types.md +382 -0
  225. package/mkdocs/docs/contributing/architecture.md +262 -0
  226. package/mkdocs/docs/contributing/development.md +245 -0
  227. package/mkdocs/docs/contributing/index.md +73 -0
  228. package/mkdocs/docs/contributing/testing.md +320 -0
  229. package/mkdocs/docs/getting-started/configuration.md +235 -0
  230. package/mkdocs/docs/getting-started/index.md +54 -0
  231. package/mkdocs/docs/getting-started/installation.md +145 -0
  232. package/mkdocs/docs/getting-started/quickstart.md +160 -0
  233. package/mkdocs/docs/guides/batch.md +375 -0
  234. package/mkdocs/docs/guides/claude-desktop.md +227 -0
  235. package/mkdocs/docs/guides/cursor.md +188 -0
  236. package/mkdocs/docs/guides/custom-tools.md +367 -0
  237. package/mkdocs/docs/guides/index.md +78 -0
  238. package/mkdocs/docs/guides/private-repos.md +221 -0
  239. package/mkdocs/docs/guides/vscode.md +247 -0
  240. package/mkdocs/docs/index.md +175 -0
  241. package/mkdocs/docs/reference/config.md +223 -0
  242. package/mkdocs/docs/reference/env.md +192 -0
  243. package/mkdocs/docs/reference/index.md +102 -0
  244. package/mkdocs/docs/reference/tools.md +309 -0
  245. package/mkdocs/docs/stylesheets/extra.css +231 -0
  246. package/mkdocs/mkdocs.yml +204 -0
  247. package/mkdocs/overrides/.gitkeep +1 -0
  248. package/mkdocs/overrides/main.html +7 -0
  249. package/mkdocs/python-deps.txt +7 -0
  250. package/mkdocs/vercel.json +11 -0
  251. package/package.json +63 -0
  252. package/packages/core/package.json +61 -0
  253. package/packages/core/src/__tests__/bitbucket-client.test.ts +366 -0
  254. package/packages/core/src/__tests__/cli.test.ts +235 -0
  255. package/packages/core/src/__tests__/code-extractor.test.ts +378 -0
  256. package/packages/core/src/__tests__/docker-generator.test.ts +255 -0
  257. package/packages/core/src/__tests__/github-client.test.ts +390 -0
  258. package/packages/core/src/__tests__/gitlab-client.test.ts +319 -0
  259. package/packages/core/src/__tests__/go-extractor.test.ts +351 -0
  260. package/packages/core/src/__tests__/graphql-extractor.test.ts +330 -0
  261. package/packages/core/src/__tests__/java-extractor.test.ts +497 -0
  262. package/packages/core/src/__tests__/plugins.test.ts +467 -0
  263. package/packages/core/src/__tests__/readme-extractor.test.ts +258 -0
  264. package/packages/core/src/__tests__/redis-cache.test.ts +307 -0
  265. package/packages/core/src/__tests__/rust-extractor.test.ts +252 -0
  266. package/packages/core/src/__tests__/streaming.test.ts +251 -0
  267. package/packages/core/src/additional-extractors.ts +333 -0
  268. package/packages/core/src/cache/cache-interface.ts +179 -0
  269. package/packages/core/src/cache/index.ts +210 -0
  270. package/packages/core/src/cache/redis-cache.ts +291 -0
  271. package/packages/core/src/cache/upstash-cache.ts +379 -0
  272. package/packages/core/src/cache.ts +251 -0
  273. package/packages/core/src/cli.ts +822 -0
  274. package/packages/core/src/code-extractor.ts +696 -0
  275. package/packages/core/src/docker-generator.ts +470 -0
  276. package/packages/core/src/edge-compatible.ts +491 -0
  277. package/packages/core/src/extractors/go-extractor.ts +791 -0
  278. package/packages/core/src/extractors/index.ts +9 -0
  279. package/packages/core/src/extractors/java-extractor.ts +937 -0
  280. package/packages/core/src/extractors/rust-extractor.ts +744 -0
  281. package/packages/core/src/github-client.ts +319 -0
  282. package/packages/core/src/go-generator.ts +356 -0
  283. package/packages/core/src/graphql-extractor.ts +358 -0
  284. package/packages/core/src/index.ts +797 -0
  285. package/packages/core/src/langchain-exporter.ts +617 -0
  286. package/packages/core/src/language-parsers.ts +1114 -0
  287. package/packages/core/src/mcp-introspector.ts +279 -0
  288. package/packages/core/src/monorepo-detector.ts +378 -0
  289. package/packages/core/src/plugins/index.ts +370 -0
  290. package/packages/core/src/plugins/registry.ts +404 -0
  291. package/packages/core/src/plugins/types.ts +215 -0
  292. package/packages/core/src/providers/base-provider.ts +246 -0
  293. package/packages/core/src/providers/bitbucket-client.ts +464 -0
  294. package/packages/core/src/providers/gitlab-client.ts +388 -0
  295. package/packages/core/src/providers/index.ts +176 -0
  296. package/packages/core/src/python-generator.ts +260 -0
  297. package/packages/core/src/queue/index.ts +100 -0
  298. package/packages/core/src/queue/memory-queue.ts +445 -0
  299. package/packages/core/src/queue/redis-queue.ts +578 -0
  300. package/packages/core/src/queue/types.ts +251 -0
  301. package/packages/core/src/readme-extractor.ts +409 -0
  302. package/packages/core/src/schema-generator.ts +638 -0
  303. package/packages/core/src/streaming.ts +999 -0
  304. package/packages/core/src/types.ts +289 -0
  305. package/packages/core/tsconfig.json +9 -0
  306. package/packages/core/tsup.config.ts +25 -0
  307. package/packages/mcp-server/README.md +297 -0
  308. package/packages/mcp-server/package.json +55 -0
  309. package/packages/mcp-server/src/__tests__/mcp-server.test.ts +177 -0
  310. package/packages/mcp-server/src/__tests__/tools.test.ts +217 -0
  311. package/packages/mcp-server/src/index.ts +1206 -0
  312. package/packages/mcp-server/src/prompts/index.ts +601 -0
  313. package/packages/mcp-server/src/tools/export-docker.ts +362 -0
  314. package/packages/mcp-server/src/tools/generate-openapi.ts +162 -0
  315. package/packages/mcp-server/src/tools/monitor-mcp-server.ts +448 -0
  316. package/packages/mcp-server/src/tools/stream-convert.ts +398 -0
  317. package/packages/mcp-server/src/tools/test-mcp-tool.ts +531 -0
  318. package/packages/mcp-server/tsconfig.json +12 -0
  319. package/packages/mcp-server/tsup.config.ts +14 -0
  320. package/packages/openapi-parser/package-lock.json +3028 -0
  321. package/packages/openapi-parser/package.json +41 -0
  322. package/packages/openapi-parser/src/analyzer.ts +700 -0
  323. package/packages/openapi-parser/src/asyncapi-parser.ts +475 -0
  324. package/packages/openapi-parser/src/cli.ts +302 -0
  325. package/packages/openapi-parser/src/generator.ts +570 -0
  326. package/packages/openapi-parser/src/generators/express-analyzer.ts +649 -0
  327. package/packages/openapi-parser/src/generators/fastapi-analyzer.ts +960 -0
  328. package/packages/openapi-parser/src/generators/index.ts +200 -0
  329. package/packages/openapi-parser/src/generators/nextjs-analyzer.ts +768 -0
  330. package/packages/openapi-parser/src/generators/openapi-builder.ts +527 -0
  331. package/packages/openapi-parser/src/generators/types.ts +298 -0
  332. package/packages/openapi-parser/src/graphql-parser.ts +462 -0
  333. package/packages/openapi-parser/src/grpc-parser.ts +649 -0
  334. package/packages/openapi-parser/src/har-parser.ts +723 -0
  335. package/packages/openapi-parser/src/index.ts +635 -0
  336. package/packages/openapi-parser/src/insomnia-parser.ts +614 -0
  337. package/packages/openapi-parser/src/parser.ts +231 -0
  338. package/packages/openapi-parser/src/postman-parser.ts +611 -0
  339. package/packages/openapi-parser/src/ref-resolver.ts +313 -0
  340. package/packages/openapi-parser/src/transformer.ts +459 -0
  341. package/packages/openapi-parser/tests/generators/express.test.ts +209 -0
  342. package/packages/openapi-parser/tests/generators/fastapi.test.ts +236 -0
  343. package/packages/openapi-parser/tests/generators/nextjs.test.ts +273 -0
  344. package/packages/openapi-parser/tests/parsers.test.ts +847 -0
  345. package/packages/openapi-parser/tsconfig.json +9 -0
  346. package/packages/openapi-parser/tsup.config.ts +11 -0
  347. package/packages/registry/package.json +59 -0
  348. package/packages/registry/src/cli.ts +456 -0
  349. package/packages/registry/src/index.ts +44 -0
  350. package/packages/registry/src/popular/github.json +47 -0
  351. package/packages/registry/src/popular/index.ts +55 -0
  352. package/packages/registry/src/popular/linear.json +42 -0
  353. package/packages/registry/src/popular/notion.json +42 -0
  354. package/packages/registry/src/popular/openai.json +40 -0
  355. package/packages/registry/src/popular/resend.json +38 -0
  356. package/packages/registry/src/popular/slack.json +42 -0
  357. package/packages/registry/src/popular/stripe.json +163 -0
  358. package/packages/registry/src/popular/supabase.json +42 -0
  359. package/packages/registry/src/popular/twilio.json +40 -0
  360. package/packages/registry/src/popular/vercel.json +40 -0
  361. package/packages/registry/src/registry.ts +492 -0
  362. package/packages/registry/src/storage.ts +334 -0
  363. package/packages/registry/src/types.ts +275 -0
  364. package/packages/registry/src/updater.ts +208 -0
  365. package/packages/registry/tsconfig.json +10 -0
  366. package/packages/registry/tsup.config.ts +11 -0
  367. package/pnpm-workspace.yaml +3 -0
  368. package/scripts/build-docs.sh +16 -0
  369. package/server.json +9 -0
  370. package/templates/Dockerfile.python.template +60 -0
  371. package/templates/Dockerfile.typescript.template +60 -0
  372. package/templates/docker-compose.template.yml +68 -0
  373. package/tests/fixtures/express-app/index.js +34 -0
  374. package/tests/fixtures/express-app/routes/posts.js +43 -0
  375. package/tests/fixtures/express-app/routes/users.js +58 -0
  376. package/tests/fixtures/fastapi-app/main.py +125 -0
  377. package/tests/fixtures/fastapi-app/routes/admin.py +42 -0
  378. package/tests/fixtures/graphql/simple-schema.graphql +65 -0
  379. package/tests/fixtures/mocks/github-api-responses.json +63 -0
  380. package/tests/fixtures/nextjs-app/app/api/posts/route.ts +55 -0
  381. package/tests/fixtures/nextjs-app/app/api/users/[id]/route.ts +63 -0
  382. package/tests/fixtures/nextjs-app/app/api/users/route.ts +44 -0
  383. package/tests/fixtures/nextjs-app/pages/api/health.ts +28 -0
  384. package/tests/fixtures/openapi/petstore.yaml +179 -0
  385. package/tests/integration/langchain-export.test.ts +405 -0
  386. package/tests/integration/openapi-conversion.test.ts +221 -0
  387. package/tsconfig.json +18 -0
  388. package/vitest.config.ts +32 -0
@@ -0,0 +1,248 @@
1
+ # GitHub to MCP VS Code Extension
2
+
3
+ Convert GitHub repositories to MCP (Model Context Protocol) servers directly from VS Code. Generate ready-to-use MCP tools from any GitHub repository's APIs, documentation, and code.
4
+
5
+ ![GitHub to MCP](https://img.shields.io/badge/VS%20Code-Extension-blue) ![License](https://img.shields.io/badge/license-MIT-green)
6
+
7
+ ## Features
8
+
9
+ ### 🔄 Multiple Conversion Methods
10
+
11
+ #### Convert from URL
12
+ Enter any GitHub repository URL to convert:
13
+ - Press `Ctrl+Shift+M` (or `Cmd+Shift+M` on Mac)
14
+ - Or use Command Palette: "GitHub to MCP: Convert from URL"
15
+
16
+ ![Convert from URL Screenshot](resources/screenshots/convert-url.png)
17
+
18
+ #### Convert Current Workspace
19
+ Convert the currently open GitHub repository:
20
+ - Press `Ctrl+Shift+Alt+M` (or `Cmd+Shift+Alt+M` on Mac)
21
+ - Or use Command Palette: "GitHub to MCP: Convert Current Workspace"
22
+
23
+ #### Convert from Clipboard
24
+ Quickly convert a GitHub URL from your clipboard:
25
+ - Run "GitHub to MCP: Convert from Clipboard"
26
+
27
+ ### 📚 Server Registry
28
+ Browse and convert from a curated list of popular repositories:
29
+ - Run "GitHub to MCP: Browse Server Registry"
30
+ - Filter by category (AI Tools, Frameworks, APIs, etc.)
31
+ - Search by name or description
32
+
33
+ ![Registry Screenshot](resources/screenshots/registry.png)
34
+
35
+ ### 🖥️ Activity Bar Views
36
+
37
+ #### MCP Servers View
38
+ See all your converted MCP servers at a glance:
39
+ - Expandable tree showing servers and their tools
40
+ - Click to view details
41
+ - Right-click for quick actions
42
+
43
+ #### Tools Explorer
44
+ Explore all extracted tools across servers:
45
+ - Grouped by category
46
+ - Filter/search capability
47
+ - View tool parameters and descriptions
48
+
49
+ #### Conversion History
50
+ Track your conversion history:
51
+ - See recent conversions
52
+ - Quick access to results
53
+ - Remove or clear history
54
+
55
+ ![Sidebar Screenshot](resources/screenshots/sidebar.png)
56
+
57
+ ### 🎨 Webview Panels
58
+
59
+ #### Results Panel
60
+ Beautiful webview showing conversion results:
61
+ - Overview with statistics
62
+ - List of extracted tools with details
63
+ - Generated MCP server code
64
+ - Ready-to-use configuration snippets
65
+
66
+ #### Tool Details Panel
67
+ Inspect individual tools:
68
+ - Full description and parameters
69
+ - Parameter input fields for testing
70
+ - Copy tool definition
71
+
72
+ ### ⚙️ Claude Desktop Integration
73
+
74
+ #### Auto-Configure Claude Desktop
75
+ Automatically add converted servers to your Claude Desktop config:
76
+ - Run "GitHub to MCP: Configure Claude Desktop"
77
+ - Select servers to add
78
+ - Choose output directory
79
+ - Config file updated automatically
80
+
81
+ #### Open Claude Config
82
+ Quickly access your Claude Desktop configuration file:
83
+ - Run "GitHub to MCP: Open Claude Desktop Config"
84
+
85
+ ### 📊 Status Bar
86
+ - Shows when you're in a GitHub repository
87
+ - Click for quick actions menu
88
+ - Progress indicator during conversion
89
+
90
+ ### 🔍 Auto-Detection
91
+ When you open a GitHub repository folder:
92
+ - The extension detects it automatically
93
+ - Offers to convert it to an MCP server
94
+ - Can be disabled in settings
95
+
96
+ ## Commands
97
+
98
+ | Command | Keybinding | Description |
99
+ |---------|------------|-------------|
100
+ | Convert from URL | `Ctrl+Shift+M` | Enter a GitHub URL to convert |
101
+ | Convert Current Workspace | `Ctrl+Shift+Alt+M` | Convert the open repository |
102
+ | Convert from Clipboard | - | Convert URL from clipboard |
103
+ | Browse Server Registry | - | Browse popular repositories |
104
+ | Configure Claude Desktop | - | Auto-configure Claude Desktop |
105
+ | Open Claude Desktop Config | - | Open config file in editor |
106
+ | Copy MCP Config | - | Copy config for Claude/Cursor |
107
+ | Validate MCP Server | - | Validate a generated server file |
108
+ | Show Output | - | Show extension logs |
109
+ | Open Conversion Panel | `Ctrl+K Ctrl+M` | Open the conversion webview |
110
+
111
+ ## Settings
112
+
113
+ | Setting | Type | Default | Description |
114
+ |---------|------|---------|-------------|
115
+ | `github-to-mcp.defaultPlatform` | string | `"claude"` | Default platform for config output |
116
+ | `github-to-mcp.autoDetect` | boolean | `true` | Auto-detect GitHub repos when opening |
117
+ | `github-to-mcp.historyLimit` | number | `20` | Maximum items in history |
118
+ | `github-to-mcp.alwaysShowStatusBar` | boolean | `false` | Always show status bar item |
119
+ | `github-to-mcp.githubToken` | string | `""` | GitHub token for higher API limits |
120
+ | `github-to-mcp.defaultOutputDirectory` | string | `""` | Default directory for server files |
121
+ | `github-to-mcp.defaultRuntime` | string | `"node"` | Default runtime (node/typescript/python) |
122
+ | `github-to-mcp.autoConfigureClaude` | boolean | `false` | Auto-add servers to Claude config |
123
+ | `github-to-mcp.showToolParameters` | boolean | `true` | Show parameters in Tools Explorer |
124
+ | `github-to-mcp.logLevel` | string | `"info"` | Logging level (debug/info/warn/error) |
125
+
126
+ ## Installation
127
+
128
+ ### From VS Code Marketplace
129
+ 1. Open VS Code
130
+ 2. Go to Extensions (`Ctrl+Shift+X`)
131
+ 3. Search for "GitHub to MCP"
132
+ 4. Click Install
133
+
134
+ ### From VSIX File
135
+ 1. Download the `.vsix` file from [Releases](https://github.com/nirholas/github-to-mcp/releases)
136
+ 2. In VS Code, run "Extensions: Install from VSIX..."
137
+ 3. Select the downloaded file
138
+
139
+ ### From Source
140
+ 1. Clone the repository:
141
+ ```bash
142
+ git clone https://github.com/nirholas/github-to-mcp.git
143
+ cd github-to-mcp
144
+ ```
145
+ 2. Install dependencies:
146
+ ```bash
147
+ pnpm install
148
+ ```
149
+ 3. Build the extension:
150
+ ```bash
151
+ cd apps/vscode
152
+ pnpm run build
153
+ ```
154
+ 4. Press `F5` to launch in debug mode
155
+
156
+ ## Usage Guide
157
+
158
+ ### Quick Start
159
+
160
+ 1. **Install the extension** from the VS Code Marketplace
161
+
162
+ 2. **Convert a repository:**
163
+ - Press `Ctrl+Shift+M`
164
+ - Enter a GitHub URL like `https://github.com/stripe/stripe-node`
165
+ - Wait for analysis to complete
166
+
167
+ 3. **View results:**
168
+ - Results panel opens automatically
169
+ - See extracted tools and generated code
170
+ - Copy configuration for your AI assistant
171
+
172
+ 4. **Configure Claude Desktop:**
173
+ - Run "GitHub to MCP: Configure Claude Desktop"
174
+ - Select servers to add
175
+ - Restart Claude Desktop
176
+
177
+ ### Example Workflow
178
+
179
+ ```
180
+ 1. Find an interesting GitHub repo (e.g., an API client library)
181
+ 2. Copy the URL: https://github.com/openai/openai-node
182
+ 3. In VS Code, press Ctrl+Shift+M
183
+ 4. Paste the URL and press Enter
184
+ 5. View the extracted tools in the results panel
185
+ 6. Click "Configure Claude Desktop" to add to your config
186
+ 7. Restart Claude Desktop
187
+ 8. Start using the new tools in Claude!
188
+ ```
189
+
190
+ ### Working with Generated Servers
191
+
192
+ The extension generates MCP server code that you can:
193
+ - **Export** to a directory for customization
194
+ - **Copy** the configuration snippet
195
+ - **Run** directly with Node.js or Python
196
+
197
+ Generated files include:
198
+ - `index.js` - Main server file
199
+ - `package.json` - Dependencies
200
+ - `README.md` - Documentation
201
+
202
+ ## API Reference
203
+
204
+ The extension uses the `@nirholas/github-to-mcp` core library which:
205
+ - Analyzes GitHub repositories
206
+ - Extracts OpenAPI/Swagger specs
207
+ - Parses README documentation
208
+ - Identifies code patterns
209
+ - Generates MCP-compatible tool definitions
210
+
211
+ ## Troubleshooting
212
+
213
+ ### GitHub API Rate Limiting
214
+ If you see rate limit errors:
215
+ 1. Go to Settings > GitHub to MCP
216
+ 2. Add your GitHub Personal Access Token
217
+ 3. This increases your rate limit from 60 to 5000 requests/hour
218
+
219
+ ### Claude Desktop Not Detecting Servers
220
+ 1. Ensure the config file path is correct for your OS
221
+ 2. Check that the server file path in config is absolute
222
+ 3. Restart Claude Desktop after config changes
223
+ 4. Check the MCP server logs for errors
224
+
225
+ ### Extension Not Activating
226
+ 1. Ensure you have VS Code 1.85.0 or higher
227
+ 2. Check the Output panel for error messages
228
+ 3. Try reloading the window (`Ctrl+Shift+P` > "Reload Window")
229
+
230
+ ## Contributing
231
+
232
+ Contributions are welcome! See [CONTRIBUTING.md](../../CONTRIBUTING.md) for guidelines.
233
+
234
+ ## Requirements
235
+
236
+ - VS Code 1.85.0 or higher
237
+ - Node.js 18 or higher (for running generated servers)
238
+
239
+ ## License
240
+
241
+ MIT License - see [LICENSE](../../LICENSE) for details.
242
+
243
+ ## Links
244
+
245
+ - [GitHub Repository](https://github.com/nirholas/github-to-mcp)
246
+ - [Issue Tracker](https://github.com/nirholas/github-to-mcp/issues)
247
+ - [Documentation](https://github-to-mcp.dev/docs)
248
+ - [MCP Protocol Specification](https://modelcontextprotocol.io)
@@ -0,0 +1,381 @@
1
+ {
2
+ "name": "github-to-mcp",
3
+ "displayName": "GitHub to MCP",
4
+ "description": "Convert GitHub repositories to MCP servers for use with Claude Desktop and other AI assistants",
5
+ "version": "1.0.0",
6
+ "publisher": "nirholas",
7
+ "engines": {
8
+ "vscode": "^1.85.0"
9
+ },
10
+ "categories": [
11
+ "Other",
12
+ "Machine Learning",
13
+ "Programming Languages"
14
+ ],
15
+ "keywords": [
16
+ "mcp",
17
+ "model-context-protocol",
18
+ "github",
19
+ "ai",
20
+ "tools",
21
+ "claude",
22
+ "anthropic",
23
+ "openapi",
24
+ "api"
25
+ ],
26
+ "activationEvents": [
27
+ "onStartupFinished",
28
+ "workspaceContains:.git/config"
29
+ ],
30
+ "main": "./dist/extension.js",
31
+ "icon": "resources/icon.png",
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "https://github.com/nirholas/github-to-mcp"
35
+ },
36
+ "contributes": {
37
+ "commands": [
38
+ {
39
+ "command": "github-to-mcp.convert",
40
+ "title": "GitHub to MCP: Convert Repository",
41
+ "icon": "$(github)"
42
+ },
43
+ {
44
+ "command": "github-to-mcp.convertFromUrl",
45
+ "title": "GitHub to MCP: Convert from URL",
46
+ "icon": "$(link)"
47
+ },
48
+ {
49
+ "command": "github-to-mcp.convertCurrentRepo",
50
+ "title": "GitHub to MCP: Convert Current Workspace",
51
+ "icon": "$(folder)"
52
+ },
53
+ {
54
+ "command": "github-to-mcp.convertFromClipboard",
55
+ "title": "GitHub to MCP: Convert from Clipboard",
56
+ "icon": "$(clippy)"
57
+ },
58
+ {
59
+ "command": "github-to-mcp.browseRegistry",
60
+ "title": "GitHub to MCP: Browse Server Registry",
61
+ "icon": "$(library)"
62
+ },
63
+ {
64
+ "command": "github-to-mcp.configureClaudeDesktop",
65
+ "title": "GitHub to MCP: Configure Claude Desktop",
66
+ "icon": "$(gear)"
67
+ },
68
+ {
69
+ "command": "github-to-mcp.openClaudeConfig",
70
+ "title": "GitHub to MCP: Open Claude Desktop Config",
71
+ "icon": "$(file-code)"
72
+ },
73
+ {
74
+ "command": "github-to-mcp.copyConfig",
75
+ "title": "GitHub to MCP: Copy MCP Config",
76
+ "icon": "$(copy)"
77
+ },
78
+ {
79
+ "command": "github-to-mcp.viewDetails",
80
+ "title": "View Details",
81
+ "icon": "$(eye)"
82
+ },
83
+ {
84
+ "command": "github-to-mcp.showToolDetails",
85
+ "title": "Show Tool Details",
86
+ "icon": "$(symbol-method)"
87
+ },
88
+ {
89
+ "command": "github-to-mcp.removeHistoryItem",
90
+ "title": "Remove from History",
91
+ "icon": "$(trash)"
92
+ },
93
+ {
94
+ "command": "github-to-mcp.clearHistory",
95
+ "title": "Clear History",
96
+ "icon": "$(clear-all)"
97
+ },
98
+ {
99
+ "command": "github-to-mcp.refreshHistory",
100
+ "title": "Refresh",
101
+ "icon": "$(refresh)"
102
+ },
103
+ {
104
+ "command": "github-to-mcp.openInBrowser",
105
+ "title": "Open in Browser",
106
+ "icon": "$(link-external)"
107
+ },
108
+ {
109
+ "command": "github-to-mcp.exportServer",
110
+ "title": "Export Server Files",
111
+ "icon": "$(export)"
112
+ },
113
+ {
114
+ "command": "github-to-mcp.validate",
115
+ "title": "GitHub to MCP: Validate MCP Server",
116
+ "icon": "$(check)"
117
+ },
118
+ {
119
+ "command": "github-to-mcp.showOutput",
120
+ "title": "GitHub to MCP: Show Output",
121
+ "icon": "$(output)"
122
+ },
123
+ {
124
+ "command": "github-to-mcp.showConversionPanel",
125
+ "title": "GitHub to MCP: Open Conversion Panel",
126
+ "icon": "$(window)"
127
+ },
128
+ {
129
+ "command": "github-to-mcp.showQuickActions",
130
+ "title": "GitHub to MCP: Quick Actions",
131
+ "icon": "$(zap)"
132
+ },
133
+ {
134
+ "command": "github-to-mcp.filterTools",
135
+ "title": "Filter Tools",
136
+ "icon": "$(filter)"
137
+ }
138
+ ],
139
+ "viewsContainers": {
140
+ "activitybar": [
141
+ {
142
+ "id": "github-to-mcp",
143
+ "title": "GitHub to MCP",
144
+ "icon": "resources/icon.svg"
145
+ }
146
+ ]
147
+ },
148
+ "views": {
149
+ "github-to-mcp": [
150
+ {
151
+ "id": "github-to-mcp.servers",
152
+ "name": "MCP Servers",
153
+ "icon": "$(server)"
154
+ },
155
+ {
156
+ "id": "github-to-mcp.tools",
157
+ "name": "Tools Explorer",
158
+ "icon": "$(symbol-method)"
159
+ },
160
+ {
161
+ "id": "github-to-mcp.history",
162
+ "name": "Conversion History",
163
+ "icon": "$(history)"
164
+ }
165
+ ]
166
+ },
167
+ "viewsWelcome": [
168
+ {
169
+ "view": "github-to-mcp.servers",
170
+ "contents": "No MCP servers yet.\n[Convert a Repository](command:github-to-mcp.convertFromUrl)\n[Browse Registry](command:github-to-mcp.browseRegistry)"
171
+ },
172
+ {
173
+ "view": "github-to-mcp.history",
174
+ "contents": "No conversion history.\n[Convert from URL](command:github-to-mcp.convertFromUrl)\n[Convert Current Workspace](command:github-to-mcp.convertCurrentRepo)"
175
+ }
176
+ ],
177
+ "menus": {
178
+ "view/title": [
179
+ {
180
+ "command": "github-to-mcp.refreshHistory",
181
+ "when": "view == github-to-mcp.history",
182
+ "group": "navigation"
183
+ },
184
+ {
185
+ "command": "github-to-mcp.clearHistory",
186
+ "when": "view == github-to-mcp.history",
187
+ "group": "navigation"
188
+ },
189
+ {
190
+ "command": "github-to-mcp.convertFromUrl",
191
+ "when": "view == github-to-mcp.servers",
192
+ "group": "navigation"
193
+ },
194
+ {
195
+ "command": "github-to-mcp.filterTools",
196
+ "when": "view == github-to-mcp.tools",
197
+ "group": "navigation"
198
+ }
199
+ ],
200
+ "view/item/context": [
201
+ {
202
+ "command": "github-to-mcp.viewDetails",
203
+ "when": "view == github-to-mcp.history && viewItem == historyItem",
204
+ "group": "inline"
205
+ },
206
+ {
207
+ "command": "github-to-mcp.openInBrowser",
208
+ "when": "view == github-to-mcp.history && viewItem == historyItem",
209
+ "group": "inline"
210
+ },
211
+ {
212
+ "command": "github-to-mcp.removeHistoryItem",
213
+ "when": "view == github-to-mcp.history && viewItem == historyItem",
214
+ "group": "inline"
215
+ },
216
+ {
217
+ "command": "github-to-mcp.exportServer",
218
+ "when": "viewItem == mcpServer || viewItem == historyItem"
219
+ },
220
+ {
221
+ "command": "github-to-mcp.copyConfig",
222
+ "when": "viewItem == mcpServer || viewItem == historyItem"
223
+ },
224
+ {
225
+ "command": "github-to-mcp.showToolDetails",
226
+ "when": "viewItem == mcpTool || viewItem == tool",
227
+ "group": "inline"
228
+ }
229
+ ],
230
+ "explorer/context": [
231
+ {
232
+ "command": "github-to-mcp.validate",
233
+ "when": "resourceExtname == .js || resourceExtname == .ts || resourceExtname == .py",
234
+ "group": "github-to-mcp@1"
235
+ }
236
+ ],
237
+ "editor/title": [
238
+ {
239
+ "command": "github-to-mcp.convertCurrentRepo",
240
+ "when": "gitOpenRepositoryCount > 0",
241
+ "group": "navigation"
242
+ }
243
+ ],
244
+ "commandPalette": [
245
+ {
246
+ "command": "github-to-mcp.viewDetails",
247
+ "when": "false"
248
+ },
249
+ {
250
+ "command": "github-to-mcp.showToolDetails",
251
+ "when": "false"
252
+ },
253
+ {
254
+ "command": "github-to-mcp.removeHistoryItem",
255
+ "when": "false"
256
+ },
257
+ {
258
+ "command": "github-to-mcp.openInBrowser",
259
+ "when": "false"
260
+ },
261
+ {
262
+ "command": "github-to-mcp.exportServer",
263
+ "when": "false"
264
+ },
265
+ {
266
+ "command": "github-to-mcp.filterTools",
267
+ "when": "false"
268
+ }
269
+ ]
270
+ },
271
+ "keybindings": [
272
+ {
273
+ "command": "github-to-mcp.convertFromUrl",
274
+ "key": "ctrl+shift+m",
275
+ "mac": "cmd+shift+m"
276
+ },
277
+ {
278
+ "command": "github-to-mcp.convertCurrentRepo",
279
+ "key": "ctrl+shift+alt+m",
280
+ "mac": "cmd+shift+alt+m"
281
+ },
282
+ {
283
+ "command": "github-to-mcp.showConversionPanel",
284
+ "key": "ctrl+k ctrl+m",
285
+ "mac": "cmd+k cmd+m"
286
+ }
287
+ ],
288
+ "configuration": {
289
+ "title": "GitHub to MCP",
290
+ "properties": {
291
+ "github-to-mcp.defaultPlatform": {
292
+ "type": "string",
293
+ "enum": [
294
+ "claude",
295
+ "cursor",
296
+ "json"
297
+ ],
298
+ "default": "claude",
299
+ "description": "Default platform for MCP config output"
300
+ },
301
+ "github-to-mcp.autoDetect": {
302
+ "type": "boolean",
303
+ "default": true,
304
+ "description": "Automatically detect GitHub repositories and offer to convert"
305
+ },
306
+ "github-to-mcp.historyLimit": {
307
+ "type": "number",
308
+ "default": 20,
309
+ "minimum": 1,
310
+ "maximum": 100,
311
+ "description": "Maximum number of conversions to keep in history"
312
+ },
313
+ "github-to-mcp.alwaysShowStatusBar": {
314
+ "type": "boolean",
315
+ "default": false,
316
+ "description": "Always show the status bar item, even when not in a GitHub repository"
317
+ },
318
+ "github-to-mcp.githubToken": {
319
+ "type": "string",
320
+ "default": "",
321
+ "description": "GitHub Personal Access Token for higher API rate limits"
322
+ },
323
+ "github-to-mcp.defaultOutputDirectory": {
324
+ "type": "string",
325
+ "default": "",
326
+ "description": "Default directory for generated MCP server files"
327
+ },
328
+ "github-to-mcp.defaultRuntime": {
329
+ "type": "string",
330
+ "enum": [
331
+ "node",
332
+ "typescript",
333
+ "python"
334
+ ],
335
+ "default": "node",
336
+ "description": "Default runtime for generated MCP servers"
337
+ },
338
+ "github-to-mcp.autoConfigureClaude": {
339
+ "type": "boolean",
340
+ "default": false,
341
+ "description": "Automatically add converted servers to Claude Desktop config"
342
+ },
343
+ "github-to-mcp.showToolParameters": {
344
+ "type": "boolean",
345
+ "default": true,
346
+ "description": "Show tool parameters in the Tools Explorer view"
347
+ },
348
+ "github-to-mcp.logLevel": {
349
+ "type": "string",
350
+ "enum": [
351
+ "debug",
352
+ "info",
353
+ "warn",
354
+ "error"
355
+ ],
356
+ "default": "info",
357
+ "description": "Logging level for the output channel"
358
+ }
359
+ }
360
+ }
361
+ },
362
+ "scripts": {
363
+ "vscode:prepublish": "pnpm run build",
364
+ "build": "esbuild ./src/extension.ts --bundle --outfile=dist/extension.js --external:vscode --format=cjs --platform=node",
365
+ "watch": "pnpm run build -- --watch",
366
+ "lint": "eslint src",
367
+ "test": "vscode-test"
368
+ },
369
+ "devDependencies": {
370
+ "@types/mocha": "^10.0.6",
371
+ "@types/node": "^20.0.0",
372
+ "@types/vscode": "^1.85.0",
373
+ "@vscode/test-electron": "^2.3.8",
374
+ "esbuild": "^0.20.0",
375
+ "eslint": "^8.56.0",
376
+ "typescript": "^5.4.0"
377
+ },
378
+ "dependencies": {
379
+ "@nirholas/github-to-mcp": "workspace:*"
380
+ }
381
+ }
Binary file
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
2
+ <path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"/>
3
+ <circle cx="18" cy="18" r="3" fill="currentColor" stroke="none"/>
4
+ <path d="M18 16v4M16 18h4" stroke-width="1.5"/>
5
+ </svg>