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,221 @@
1
+ # Working with Private Repositories
2
+
3
+ Use GitHub to MCP with private repositories using authentication.
4
+
5
+ ## GitHub Token Setup
6
+
7
+ To access private repositories, you need a GitHub Personal Access Token (PAT).
8
+
9
+ ### Creating a Token
10
+
11
+ 1. Go to [GitHub Settings → Developer Settings → Personal Access Tokens](https://github.com/settings/tokens)
12
+ 2. Click **"Generate new token (classic)"**
13
+ 3. Give it a descriptive name (e.g., "GitHub to MCP")
14
+ 4. Select scopes:
15
+ - `repo` - Full control of private repositories
16
+ - Or `read:packages` for read-only access
17
+ 5. Click **"Generate token"**
18
+ 6. **Copy the token immediately** (you won't see it again!)
19
+
20
+ ### Token Scopes
21
+
22
+ | Scope | Description | Use Case |
23
+ |-------|-------------|----------|
24
+ | `repo` | Full access to private repos | Read/write operations |
25
+ | `public_repo` | Access to public repos only | Higher rate limits |
26
+ | `read:packages` | Read packages | Package registries |
27
+
28
+ ## Using Your Token
29
+
30
+ ### Environment Variable (Recommended)
31
+
32
+ Set the `GITHUB_TOKEN` environment variable:
33
+
34
+ === "macOS/Linux"
35
+
36
+ ```bash
37
+ # Add to ~/.bashrc or ~/.zshrc
38
+ export GITHUB_TOKEN=ghp_xxxxxxxxxxxxx
39
+ ```
40
+
41
+ === "Windows PowerShell"
42
+
43
+ ```powershell
44
+ $env:GITHUB_TOKEN="ghp_xxxxxxxxxxxxx"
45
+ ```
46
+
47
+ === "Windows CMD"
48
+
49
+ ```cmd
50
+ set GITHUB_TOKEN=ghp_xxxxxxxxxxxxx
51
+ ```
52
+
53
+ Then use normally:
54
+
55
+ ```bash
56
+ npx @nirholas/github-to-mcp https://github.com/your-org/private-repo
57
+ ```
58
+
59
+ ### CLI Flag
60
+
61
+ Pass the token directly:
62
+
63
+ ```bash
64
+ npx @nirholas/github-to-mcp https://github.com/your-org/private-repo \
65
+ --token ghp_xxxxxxxxxxxxx
66
+ ```
67
+
68
+ !!! warning "Security Warning"
69
+ Don't commit tokens to version control or share them in logs.
70
+
71
+ ### Programmatic
72
+
73
+ ```typescript
74
+ import { generateFromGithub } from '@nirholas/github-to-mcp';
75
+
76
+ const result = await generateFromGithub(
77
+ 'https://github.com/your-org/private-repo',
78
+ { token: process.env.GITHUB_TOKEN }
79
+ );
80
+ ```
81
+
82
+ ## Web UI Authentication
83
+
84
+ On the [web interface](https://github-to-mcp.vercel.app):
85
+
86
+ 1. Click the **"Settings"** gear icon
87
+ 2. Enter your GitHub token in the **"GitHub Token"** field
88
+ 3. The token is stored locally in your browser (not sent to servers)
89
+ 4. Generate private repos normally
90
+
91
+ ## GitHub Enterprise
92
+
93
+ For GitHub Enterprise Server, use the full URL:
94
+
95
+ ```bash
96
+ npx @nirholas/github-to-mcp https://github.your-company.com/org/repo \
97
+ --token ghp_xxxxxxxxxxxxx
98
+ ```
99
+
100
+ ## Rate Limits
101
+
102
+ | Authentication | Rate Limit |
103
+ |---------------|------------|
104
+ | Anonymous | 60 requests/hour |
105
+ | With Token | 5,000 requests/hour |
106
+ | GitHub Enterprise | Varies by instance |
107
+
108
+ !!! tip "Always Use a Token"
109
+ Even for public repos, using a token gives you 83x more API calls.
110
+
111
+ ## Organization Repositories
112
+
113
+ ### SSO-Enabled Organizations
114
+
115
+ If your organization uses SAML SSO:
116
+
117
+ 1. Create your token normally
118
+ 2. Go to [Token Settings](https://github.com/settings/tokens)
119
+ 3. Find your token and click **"Enable SSO"**
120
+ 4. Authorize for your organization
121
+
122
+ ### Fine-Grained Tokens
123
+
124
+ For better security, use fine-grained tokens:
125
+
126
+ 1. Go to [Fine-grained tokens](https://github.com/settings/tokens?type=beta)
127
+ 2. Click **"Generate new token"**
128
+ 3. Select specific repositories
129
+ 4. Choose minimal permissions:
130
+ - `Contents: Read-only`
131
+ - `Metadata: Read-only`
132
+
133
+ ## Security Best Practices
134
+
135
+ ### 1. Rotate Tokens Regularly
136
+
137
+ Set a reminder to regenerate tokens every 90 days.
138
+
139
+ ### 2. Use Minimum Scopes
140
+
141
+ Only request the permissions you need.
142
+
143
+ ### 3. Never Commit Tokens
144
+
145
+ Add to `.gitignore`:
146
+
147
+ ```gitignore
148
+ .env
149
+ .env.local
150
+ *.token
151
+ ```
152
+
153
+ ### 4. Use Environment Variables
154
+
155
+ Never hardcode tokens in your code.
156
+
157
+ ### 5. Audit Token Usage
158
+
159
+ Check [Security Log](https://github.com/settings/security-log) for token activity.
160
+
161
+ ## Troubleshooting
162
+
163
+ ### "Bad credentials" Error
164
+
165
+ - Token may be expired
166
+ - Token may lack required scopes
167
+ - SSO may not be authorized
168
+
169
+ ### "Not Found" Error
170
+
171
+ - Repo doesn't exist or is private
172
+ - Token lacks `repo` scope
173
+ - Token not authorized for organization
174
+
175
+ ### Rate Limit Exceeded
176
+
177
+ - Wait for the limit to reset (usually 1 hour)
178
+ - Use a token if not already
179
+ - Check for API-heavy operations
180
+
181
+ ### Check Token Validity
182
+
183
+ ```bash
184
+ curl -H "Authorization: token ghp_xxxxx" \
185
+ https://api.github.com/user
186
+ ```
187
+
188
+ Should return your user information.
189
+
190
+ ---
191
+
192
+ ## Example: Private Repo Workflow
193
+
194
+ Complete workflow for a private repository:
195
+
196
+ ```bash
197
+ # 1. Set token
198
+ export GITHUB_TOKEN=ghp_xxxxxxxxxxxxx
199
+
200
+ # 2. Generate MCP server
201
+ npx @nirholas/github-to-mcp https://github.com/my-company/internal-api \
202
+ -o ~/mcp-servers/internal-api
203
+
204
+ # 3. Install dependencies
205
+ cd ~/mcp-servers/internal-api
206
+ npm install
207
+
208
+ # 4. Test the server
209
+ npm start
210
+
211
+ # 5. Add to Claude Desktop
212
+ # Edit claude_desktop_config.json
213
+ ```
214
+
215
+ ---
216
+
217
+ ## Next Steps
218
+
219
+ - [Custom Tools](custom-tools.md) - Extend your MCP server
220
+ - [Claude Desktop](claude-desktop.md) - Connect your server
221
+ - [Configuration](../getting-started/configuration.md) - More options
@@ -0,0 +1,247 @@
1
+ # VS Code Integration
2
+
3
+ Use GitHub to MCP with Visual Studio Code for enhanced AI-assisted development.
4
+
5
+ ## Overview
6
+
7
+ VS Code can use MCP servers through several methods:
8
+
9
+ 1. **GitHub Copilot Chat** - Native MCP support (coming soon)
10
+ 2. **Continue Extension** - MCP-enabled coding assistant
11
+ 3. **Custom Extensions** - Build your own integration
12
+
13
+ ## Method 1: Continue Extension
14
+
15
+ [Continue](https://continue.dev) is an open-source coding assistant that supports MCP.
16
+
17
+ ### Installation
18
+
19
+ 1. Install the [Continue extension](https://marketplace.visualstudio.com/items?itemName=Continue.continue)
20
+ 2. Open VS Code command palette: `Cmd/Ctrl + Shift + P`
21
+ 3. Search "Continue: Open Configuration"
22
+
23
+ ### Configuration
24
+
25
+ Edit `~/.continue/config.json`:
26
+
27
+ ```json
28
+ {
29
+ "models": [...],
30
+ "mcpServers": [
31
+ {
32
+ "name": "my-repo",
33
+ "command": "node",
34
+ "args": ["/path/to/my-repo-mcp/server.mjs"]
35
+ }
36
+ ]
37
+ }
38
+ ```
39
+
40
+ ### Usage
41
+
42
+ 1. Open Continue panel (`Cmd/Ctrl + L`)
43
+ 2. Ask questions referencing your MCP server
44
+ 3. Continue will use MCP tools automatically
45
+
46
+ ## Method 2: MCP Inspector
47
+
48
+ For testing and debugging MCP servers in VS Code:
49
+
50
+ ### Install MCP Inspector
51
+
52
+ ```bash
53
+ npm install -g @modelcontextprotocol/inspector
54
+ ```
55
+
56
+ ### Use with VS Code Terminal
57
+
58
+ ```bash
59
+ # Start your MCP server
60
+ cd ~/mcp-servers/my-repo
61
+ node server.mjs
62
+
63
+ # In another terminal, inspect
64
+ mcp-inspector ws://localhost:3000
65
+ ```
66
+
67
+ ## Method 3: Custom Task
68
+
69
+ Create a VS Code task to manage MCP servers:
70
+
71
+ ### .vscode/tasks.json
72
+
73
+ ```json
74
+ {
75
+ "version": "2.0.0",
76
+ "tasks": [
77
+ {
78
+ "label": "Start MCP Server",
79
+ "type": "shell",
80
+ "command": "node",
81
+ "args": ["${workspaceFolder}/mcp-server/server.mjs"],
82
+ "isBackground": true,
83
+ "problemMatcher": [],
84
+ "presentation": {
85
+ "reveal": "always",
86
+ "panel": "dedicated"
87
+ }
88
+ },
89
+ {
90
+ "label": "Generate MCP Server",
91
+ "type": "shell",
92
+ "command": "npx",
93
+ "args": [
94
+ "@nirholas/github-to-mcp",
95
+ "${input:repoUrl}",
96
+ "-o",
97
+ "${workspaceFolder}/mcp-server"
98
+ ]
99
+ }
100
+ ],
101
+ "inputs": [
102
+ {
103
+ "id": "repoUrl",
104
+ "type": "promptString",
105
+ "description": "GitHub repository URL"
106
+ }
107
+ ]
108
+ }
109
+ ```
110
+
111
+ ### Usage
112
+
113
+ 1. `Cmd/Ctrl + Shift + P` → "Tasks: Run Task"
114
+ 2. Select "Generate MCP Server" or "Start MCP Server"
115
+
116
+ ## Workspace Setup
117
+
118
+ ### Project Structure
119
+
120
+ Recommended structure for projects using MCP:
121
+
122
+ ```
123
+ my-project/
124
+ ├── src/
125
+ ├── .vscode/
126
+ │ ├── tasks.json # MCP server tasks
127
+ │ └── settings.json # Continue/MCP config
128
+ ├── mcp-server/ # Generated MCP server
129
+ │ ├── server.mjs
130
+ │ └── package.json
131
+ └── package.json
132
+ ```
133
+
134
+ ### Generate on Clone
135
+
136
+ Add a setup script to package.json:
137
+
138
+ ```json
139
+ {
140
+ "scripts": {
141
+ "setup:mcp": "npx @nirholas/github-to-mcp https://github.com/owner/repo -o ./mcp-server",
142
+ "mcp:start": "node ./mcp-server/server.mjs"
143
+ }
144
+ }
145
+ ```
146
+
147
+ ## GitHub Copilot Integration
148
+
149
+ !!! note "Coming Soon"
150
+ Native MCP support in GitHub Copilot Chat is planned. Until then, use Continue or custom integrations.
151
+
152
+ ### Current Workaround
153
+
154
+ Use MCP-generated code as context for Copilot:
155
+
156
+ 1. Generate server for a reference repo
157
+ 2. Keep the `tools/` directory open in VS Code
158
+ 3. Copilot will use it as context when generating code
159
+
160
+ ## Tips for VS Code Users
161
+
162
+ ### 1. Use Multi-Root Workspaces
163
+
164
+ Add MCP servers as workspace folders:
165
+
166
+ ```json
167
+ // my-project.code-workspace
168
+ {
169
+ "folders": [
170
+ { "path": "." },
171
+ { "path": "../mcp-servers/stripe", "name": "Stripe MCP" },
172
+ { "path": "../mcp-servers/openai", "name": "OpenAI MCP" }
173
+ ]
174
+ }
175
+ ```
176
+
177
+ ### 2. Create Snippets
178
+
179
+ Add snippets for MCP generation:
180
+
181
+ ```json
182
+ // .vscode/snippets/mcp.code-snippets
183
+ {
184
+ "Generate MCP": {
185
+ "prefix": "genmcp",
186
+ "body": [
187
+ "npx @nirholas/github-to-mcp $1 -o ./$2-mcp"
188
+ ],
189
+ "description": "Generate MCP server command"
190
+ }
191
+ }
192
+ ```
193
+
194
+ ### 3. Terminal Profiles
195
+
196
+ Add a profile for MCP development:
197
+
198
+ ```json
199
+ // settings.json
200
+ {
201
+ "terminal.integrated.profiles.osx": {
202
+ "MCP Dev": {
203
+ "path": "bash",
204
+ "args": ["-l"],
205
+ "env": {
206
+ "GITHUB_TOKEN": "${env:GITHUB_TOKEN}"
207
+ }
208
+ }
209
+ }
210
+ }
211
+ ```
212
+
213
+ ---
214
+
215
+ ## Troubleshooting
216
+
217
+ ### Extension Not Finding Server
218
+
219
+ Ensure the path is absolute and the server is executable:
220
+
221
+ ```bash
222
+ chmod +x /path/to/server.mjs
223
+ ```
224
+
225
+ ### Node Version Issues
226
+
227
+ Specify Node version in your launch config:
228
+
229
+ ```json
230
+ {
231
+ "mcpServers": [
232
+ {
233
+ "name": "my-repo",
234
+ "command": "/usr/local/bin/node",
235
+ "args": ["/path/to/server.mjs"]
236
+ }
237
+ ]
238
+ }
239
+ ```
240
+
241
+ ---
242
+
243
+ ## Next Steps
244
+
245
+ - [Private Repos](private-repos.md) - Work with authentication
246
+ - [Custom Tools](custom-tools.md) - Extend your MCP server
247
+ - [CLI Reference](../cli/index.md) - Command-line options
@@ -0,0 +1,175 @@
1
+ ---
2
+ hide:
3
+ - navigation
4
+ - toc
5
+ ---
6
+
7
+ <style>
8
+ .md-content__button {
9
+ display: none;
10
+ }
11
+ </style>
12
+
13
+ <div class="hero" markdown>
14
+
15
+ # GitHub to MCP 🚀
16
+
17
+ **Convert any GitHub repository into an MCP server in seconds**
18
+
19
+ Give Claude, ChatGPT, Cursor, Windsurf, Cline, and any AI assistant instant access to any codebase.
20
+
21
+ [Get Started](getting-started/index.md){ .md-button .md-button--primary }
22
+ [Try Web App](https://github-to-mcp.vercel.app){ .md-button }
23
+
24
+ </div>
25
+
26
+ ---
27
+
28
+ ## What is GitHub to MCP?
29
+
30
+ **GitHub to MCP** converts any GitHub repository into a [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server. MCP is the open standard that lets AI assistants like **Claude**, **ChatGPT**, **Cursor**, **Windsurf**, and **Cline** interact with external tools and data.
31
+
32
+ **In plain English:** Paste a GitHub URL → Get an MCP server → Your AI can now read files, search code, and use the repo's APIs.
33
+
34
+ ---
35
+
36
+ ## Why use this?
37
+
38
+ <div class="feature-grid" markdown>
39
+
40
+ <div class="feature-card" markdown>
41
+
42
+ ### 🚀 Instant Setup
43
+
44
+ No manual configuration required. Just paste a URL and you're ready to go.
45
+
46
+ </div>
47
+
48
+ <div class="feature-card" markdown>
49
+
50
+ ### 🤖 Works with Any AI
51
+
52
+ Claude Desktop, ChatGPT, Cursor, VS Code Copilot, Cline, Continue, and more.
53
+
54
+ </div>
55
+
56
+ <div class="feature-card" markdown>
57
+
58
+ ### 📦 Zero Config
59
+
60
+ Generates a complete, runnable MCP server with all dependencies included.
61
+
62
+ </div>
63
+
64
+ <div class="feature-card" markdown>
65
+
66
+ ### 🔍 Smart Extraction
67
+
68
+ Automatically finds APIs, tools, and functions from OpenAPI specs, code, and docs.
69
+
70
+ </div>
71
+
72
+ </div>
73
+
74
+ ---
75
+
76
+ ## Quick Start
77
+
78
+ ### Web UI (Easiest)
79
+
80
+ Visit **[github-to-mcp.vercel.app](https://github-to-mcp.vercel.app)** — Paste any GitHub URL, click Generate, download your MCP server.
81
+
82
+ ### CLI (One Command)
83
+
84
+ ```bash
85
+ npx @nirholas/github-to-mcp https://github.com/stripe/stripe-node
86
+ ```
87
+
88
+ ### Programmatic (For Automation)
89
+
90
+ ```typescript
91
+ import { generateFromGithub } from '@nirholas/github-to-mcp';
92
+
93
+ const result = await generateFromGithub('https://github.com/stripe/stripe-node');
94
+ console.log(`Generated ${result.tools.length} tools`);
95
+ await result.save('./my-mcp-server');
96
+ ```
97
+
98
+ ---
99
+
100
+ ## How It Works
101
+
102
+ ```
103
+ ┌─────────────────────────────────────────────────────────────┐
104
+ │ GitHub Repository │
105
+ └─────────────────────────────────────────────────────────────┘
106
+
107
+ ┌─────────────────────────────────────────────────────────────┐
108
+ │ 1. Fetch & Classify → Detect repo type (API/CLI/Lib) │
109
+ │ 2. Extract Tools → OpenAPI, GraphQL, Code, README │
110
+ │ 3. Generate Server → TypeScript or Python MCP server │
111
+ │ 4. Bundle Output → Complete package with dependencies │
112
+ └─────────────────────────────────────────────────────────────┘
113
+
114
+ ┌─────────────────────────────────────────────────────────────┐
115
+ │ Ready-to-use MCP Server + Config │
116
+ └─────────────────────────────────────────────────────────────┘
117
+ ```
118
+
119
+ ---
120
+
121
+ ## Features
122
+
123
+ | Feature | Description |
124
+ |---------|-------------|
125
+ | 🔄 **Universal Conversion** | Every repo gets 4 base tools: `read_file`, `list_files`, `search_code`, `get_readme` |
126
+ | 🔍 **Smart Detection** | Extracts tools from OpenAPI/Swagger specs, GraphQL schemas, Python decorators, and README docs |
127
+ | 🏷️ **Auto Classification** | Identifies repo type (API, MCP server, CLI, library, docs) to optimize extraction |
128
+ | 🐍 **Multi-language Output** | Generate TypeScript or Python MCP servers |
129
+ | ⚡ **Instant Deploy** | One-click Vercel deployment for hosted MCP servers |
130
+
131
+ ---
132
+
133
+ ## Use Cases
134
+
135
+ - **"I want Claude to understand my codebase"** → Generate an MCP server, add to Claude Desktop
136
+ - **"I want to query the Stripe API from ChatGPT"** → Convert stripe/stripe-node, get typed tools
137
+ - **"I want Cursor to use my internal SDK"** → Point at your private repo (with token)
138
+ - **"I want to wrap any REST API for AI"** → Convert any repo with an OpenAPI spec
139
+
140
+ ---
141
+
142
+ <div class="quick-links" markdown>
143
+
144
+ [:fontawesome-solid-rocket: **Getting Started**](getting-started/index.md)
145
+ Learn how to install and use GitHub to MCP
146
+
147
+ [:fontawesome-solid-book: **Guides**](guides/index.md)
148
+ Integration tutorials for Claude, Cursor, VS Code
149
+
150
+ [:fontawesome-solid-terminal: **CLI Reference**](cli/index.md)
151
+ Command-line tool documentation
152
+
153
+ [:fontawesome-solid-code: **API Reference**](api/index.md)
154
+ Programmatic API for automation
155
+
156
+ </div>
157
+
158
+ ---
159
+
160
+ ## Related Projects
161
+
162
+ - [Model Context Protocol](https://modelcontextprotocol.io) — The protocol specification
163
+ - [MCP Servers](https://github.com/modelcontextprotocol/servers) — Official MCP server examples
164
+ - [Claude Desktop](https://claude.ai/download) — AI assistant with MCP support
165
+
166
+ ---
167
+
168
+ <div style="text-align: center; margin-top: 3rem;" markdown>
169
+
170
+ **Built by [nirholas](https://github.com/nirholas)** • MIT License
171
+
172
+ [:fontawesome-brands-github: GitHub](https://github.com/nirholas/github-to-mcp){ .md-button }
173
+ [:fontawesome-brands-npm: npm](https://www.npmjs.com/package/@nirholas/github-to-mcp){ .md-button }
174
+
175
+ </div>