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,223 @@
1
+ # Configuration Options
2
+
3
+ Complete reference for all configuration options.
4
+
5
+ ## CLI Options
6
+
7
+ | Option | Type | Default | Description |
8
+ |--------|------|---------|-------------|
9
+ | `-o, --output` | `string` | `./output` | Output directory |
10
+ | `-l, --language` | `'typescript' \| 'python'` | `'typescript'` | Output language |
11
+ | `-t, --token` | `string` | `$GITHUB_TOKEN` | GitHub token |
12
+ | `--include-tools` | `string` | All | Comma-separated tools to include |
13
+ | `--exclude-tools` | `string` | None | Comma-separated tools to exclude |
14
+ | `--no-universal` | `boolean` | `false` | Skip universal tools |
15
+ | `--force` | `boolean` | `false` | Overwrite existing output |
16
+ | `--dry-run` | `boolean` | `false` | Preview without writing |
17
+ | `--verbose` | `boolean` | `false` | Verbose output |
18
+ | `--quiet` | `boolean` | `false` | Suppress non-error output |
19
+
20
+ ## Programmatic Options
21
+
22
+ ### GeneratorOptions
23
+
24
+ ```typescript
25
+ interface GeneratorOptions {
26
+ // Authentication
27
+ token?: string;
28
+
29
+ // Output
30
+ language?: 'typescript' | 'python';
31
+
32
+ // Tool filtering
33
+ includeTools?: string[];
34
+ excludeTools?: string[];
35
+ includeUniversalTools?: boolean;
36
+
37
+ // Extraction sources
38
+ extractFromOpenAPI?: boolean;
39
+ extractFromGraphQL?: boolean;
40
+ extractFromCode?: boolean;
41
+ extractFromReadme?: boolean;
42
+
43
+ // Performance
44
+ maxDepth?: number;
45
+ maxFileSize?: number;
46
+ maxFiles?: number;
47
+ timeout?: number;
48
+
49
+ // Advanced
50
+ forceType?: RepositoryType;
51
+ baseUrl?: string;
52
+ userAgent?: string;
53
+ }
54
+ ```
55
+
56
+ ### Option Details
57
+
58
+ #### token
59
+
60
+ GitHub personal access token for authentication.
61
+
62
+ - Increases rate limit from 60 to 5000 requests/hour
63
+ - Required for private repositories
64
+ - Can be set via `GITHUB_TOKEN` environment variable
65
+
66
+ #### language
67
+
68
+ Output language for the generated server.
69
+
70
+ | Value | Description |
71
+ |-------|-------------|
72
+ | `'typescript'` | Generate TypeScript server (default) |
73
+ | `'python'` | Generate Python server |
74
+
75
+ #### includeTools
76
+
77
+ Array of tool names to include. If specified, only these tools are generated.
78
+
79
+ ```typescript
80
+ {
81
+ includeTools: ['read_file', 'search_code', 'create_customer']
82
+ }
83
+ ```
84
+
85
+ #### excludeTools
86
+
87
+ Array of tool names to exclude from generation.
88
+
89
+ ```typescript
90
+ {
91
+ excludeTools: ['get_readme'] // Skip README tool
92
+ }
93
+ ```
94
+
95
+ #### includeUniversalTools
96
+
97
+ Whether to include universal tools (`read_file`, `list_files`, etc.).
98
+
99
+ | Value | Description |
100
+ |-------|-------------|
101
+ | `true` | Include universal tools (default) |
102
+ | `false` | Only include extracted tools |
103
+
104
+ #### extractFromOpenAPI
105
+
106
+ Enable extraction from OpenAPI/Swagger specifications.
107
+
108
+ | Value | Description |
109
+ |-------|-------------|
110
+ | `true` | Parse OpenAPI specs (default) |
111
+ | `false` | Skip OpenAPI extraction |
112
+
113
+ #### extractFromGraphQL
114
+
115
+ Enable extraction from GraphQL schemas.
116
+
117
+ | Value | Description |
118
+ |-------|-------------|
119
+ | `true` | Parse GraphQL schemas (default) |
120
+ | `false` | Skip GraphQL extraction |
121
+
122
+ #### extractFromCode
123
+
124
+ Enable extraction from source code analysis.
125
+
126
+ | Value | Description |
127
+ |-------|-------------|
128
+ | `true` | Analyze source code (default) |
129
+ | `false` | Skip code analysis |
130
+
131
+ #### extractFromReadme
132
+
133
+ Enable extraction from README documentation.
134
+
135
+ | Value | Description |
136
+ |-------|-------------|
137
+ | `true` | Parse README (default) |
138
+ | `false` | Skip README parsing |
139
+
140
+ #### maxDepth
141
+
142
+ Maximum directory depth to scan.
143
+
144
+ | Value | Description |
145
+ |-------|-------------|
146
+ | `3` | Default depth |
147
+ | `1` | Only root directory |
148
+ | `10` | Deep scanning (slower) |
149
+
150
+ #### maxFileSize
151
+
152
+ Maximum file size to read (in bytes).
153
+
154
+ | Value | Description |
155
+ |-------|-------------|
156
+ | `100000` | 100KB (default) |
157
+ | `50000` | 50KB (for faster processing) |
158
+ | `500000` | 500KB (for larger files) |
159
+
160
+ #### maxFiles
161
+
162
+ Maximum number of files to process.
163
+
164
+ | Value | Description |
165
+ |-------|-------------|
166
+ | `1000` | Default limit |
167
+ | `100` | Faster processing |
168
+ | `5000` | Large repos |
169
+
170
+ #### timeout
171
+
172
+ Request timeout in milliseconds.
173
+
174
+ | Value | Description |
175
+ |-------|-------------|
176
+ | `30000` | 30 seconds (default) |
177
+ | `60000` | 60 seconds (for slow connections) |
178
+
179
+ #### forceType
180
+
181
+ Override automatic repository classification.
182
+
183
+ ```typescript
184
+ {
185
+ forceType: 'api-sdk' // Force API SDK classification
186
+ }
187
+ ```
188
+
189
+ Values: `'mcp-server'`, `'api-sdk'`, `'cli-tool'`, `'library'`, `'documentation'`, `'data'`
190
+
191
+ ---
192
+
193
+ ## Configuration File
194
+
195
+ You can create a configuration file for repeated use:
196
+
197
+ ### github-to-mcp.config.js
198
+
199
+ ```javascript
200
+ module.exports = {
201
+ token: process.env.GITHUB_TOKEN,
202
+ language: 'typescript',
203
+ includeUniversalTools: true,
204
+ extractFromOpenAPI: true,
205
+ extractFromGraphQL: true,
206
+ maxDepth: 3,
207
+ maxFileSize: 100000,
208
+ };
209
+ ```
210
+
211
+ ### Usage
212
+
213
+ ```bash
214
+ github-to-mcp <url> --config ./github-to-mcp.config.js
215
+ ```
216
+
217
+ ---
218
+
219
+ ## See Also
220
+
221
+ - [Environment Variables](env.md) - Environment configuration
222
+ - [CLI Reference](../cli/index.md) - Command-line usage
223
+ - [API Reference](../api/core.md) - Programmatic API
@@ -0,0 +1,192 @@
1
+ # Environment Variables
2
+
3
+ Configure GitHub to MCP using environment variables.
4
+
5
+ ## Required Variables
6
+
7
+ None! All environment variables are optional, but some are highly recommended.
8
+
9
+ ## Recommended Variables
10
+
11
+ ### GITHUB_TOKEN
12
+
13
+ GitHub personal access token for API authentication.
14
+
15
+ ```bash
16
+ export GITHUB_TOKEN=ghp_xxxxxxxxxxxxx
17
+ ```
18
+
19
+ | Without Token | With Token |
20
+ |---------------|------------|
21
+ | 60 requests/hour | 5,000 requests/hour |
22
+ | Public repos only | Private repos accessible |
23
+ | Basic metadata | Full repository access |
24
+
25
+ **Creating a Token:**
26
+
27
+ 1. Go to [GitHub Settings → Developer Settings → Personal Access Tokens](https://github.com/settings/tokens)
28
+ 2. Generate new token (classic)
29
+ 3. Select scopes: `repo` (private) or `public_repo` (public only)
30
+ 4. Copy the token
31
+
32
+ ---
33
+
34
+ ## Optional Variables
35
+
36
+ ### LOG_LEVEL
37
+
38
+ Control logging verbosity.
39
+
40
+ ```bash
41
+ export LOG_LEVEL=debug
42
+ ```
43
+
44
+ | Value | Description |
45
+ |-------|-------------|
46
+ | `debug` | All messages including debug |
47
+ | `info` | Informational messages (default) |
48
+ | `warn` | Warnings and errors only |
49
+ | `error` | Errors only |
50
+ | `silent` | No output |
51
+
52
+ ---
53
+
54
+ ### OPENAI_API_KEY
55
+
56
+ OpenAI API key for enhanced extraction (experimental).
57
+
58
+ ```bash
59
+ export OPENAI_API_KEY=sk-xxxxxxxxxxxxx
60
+ ```
61
+
62
+ Used for:
63
+ - Improved tool descriptions
64
+ - Better README parsing
65
+ - Code understanding
66
+
67
+ ---
68
+
69
+ ### GITHUB_API_URL
70
+
71
+ Custom GitHub API URL for GitHub Enterprise.
72
+
73
+ ```bash
74
+ export GITHUB_API_URL=https://github.mycompany.com/api/v3
75
+ ```
76
+
77
+ Default: `https://api.github.com`
78
+
79
+ ---
80
+
81
+ ### HTTP_PROXY / HTTPS_PROXY
82
+
83
+ Proxy server for HTTP requests.
84
+
85
+ ```bash
86
+ export HTTP_PROXY=http://proxy.example.com:8080
87
+ export HTTPS_PROXY=http://proxy.example.com:8080
88
+ ```
89
+
90
+ ---
91
+
92
+ ### NO_COLOR
93
+
94
+ Disable colored output.
95
+
96
+ ```bash
97
+ export NO_COLOR=1
98
+ ```
99
+
100
+ ---
101
+
102
+ ## Setting Environment Variables
103
+
104
+ ### Temporary (Current Session)
105
+
106
+ === "macOS/Linux"
107
+
108
+ ```bash
109
+ export GITHUB_TOKEN=ghp_xxxxx
110
+ ```
111
+
112
+ === "Windows PowerShell"
113
+
114
+ ```powershell
115
+ $env:GITHUB_TOKEN="ghp_xxxxx"
116
+ ```
117
+
118
+ === "Windows CMD"
119
+
120
+ ```cmd
121
+ set GITHUB_TOKEN=ghp_xxxxx
122
+ ```
123
+
124
+ ### Permanent
125
+
126
+ === "macOS/Linux"
127
+
128
+ Add to `~/.bashrc` or `~/.zshrc`:
129
+ ```bash
130
+ export GITHUB_TOKEN=ghp_xxxxx
131
+ export LOG_LEVEL=info
132
+ ```
133
+
134
+ === "Windows"
135
+
136
+ Use System Properties → Environment Variables
137
+
138
+ ### Per-Project
139
+
140
+ Create a `.env` file:
141
+
142
+ ```bash title=".env"
143
+ GITHUB_TOKEN=ghp_xxxxx
144
+ LOG_LEVEL=debug
145
+ ```
146
+
147
+ !!! warning "Security"
148
+ Add `.env` to `.gitignore` to avoid committing secrets.
149
+
150
+ ---
151
+
152
+ ## Using with Claude Desktop
153
+
154
+ Pass environment variables to MCP servers:
155
+
156
+ ```json title="claude_desktop_config.json"
157
+ {
158
+ "mcpServers": {
159
+ "my-repo": {
160
+ "command": "node",
161
+ "args": ["/path/to/server.mjs"],
162
+ "env": {
163
+ "GITHUB_TOKEN": "ghp_xxxxx",
164
+ "LOG_LEVEL": "debug"
165
+ }
166
+ }
167
+ }
168
+ }
169
+ ```
170
+
171
+ ---
172
+
173
+ ## Variable Precedence
174
+
175
+ 1. CLI flags (highest priority)
176
+ 2. Environment variables
177
+ 3. Config file
178
+ 4. Defaults (lowest priority)
179
+
180
+ ```bash
181
+ # CLI flag overrides environment variable
182
+ export LOG_LEVEL=error
183
+ github-to-mcp <url> --verbose # Uses verbose, not error
184
+ ```
185
+
186
+ ---
187
+
188
+ ## See Also
189
+
190
+ - [Configuration Options](config.md) - All options
191
+ - [Private Repos](../guides/private-repos.md) - Token setup
192
+ - [CLI Reference](../cli/index.md) - Command-line usage
@@ -0,0 +1,102 @@
1
+ # Reference
2
+
3
+ Quick reference documentation for GitHub to MCP.
4
+
5
+ ## Quick Links
6
+
7
+ - [Generated Tools](tools.md) - All tool definitions
8
+ - [Configuration Options](config.md) - Full options reference
9
+ - [Environment Variables](env.md) - Environment configuration
10
+
11
+ ## FAQ
12
+
13
+ ### General
14
+
15
+ <details>
16
+ <summary><strong>What is GitHub to MCP?</strong></summary>
17
+
18
+ GitHub to MCP is a tool that converts any GitHub repository into a Model Context Protocol (MCP) server, enabling AI assistants to interact with the codebase.
19
+ </details>
20
+
21
+ <details>
22
+ <summary><strong>What AI assistants support MCP?</strong></summary>
23
+
24
+ - Claude Desktop
25
+ - Cursor
26
+ - Cline
27
+ - Continue
28
+ - Windsurf
29
+ - Any tool implementing the MCP specification
30
+ </details>
31
+
32
+ <details>
33
+ <summary><strong>Is this free to use?</strong></summary>
34
+
35
+ Yes! GitHub to MCP is open source under the MIT license. The web app is free, and you can self-host.
36
+ </details>
37
+
38
+ ### Technical
39
+
40
+ <details>
41
+ <summary><strong>Does this work with private repositories?</strong></summary>
42
+
43
+ Yes! Set the `GITHUB_TOKEN` environment variable with a token that has access to your private repos. See [Private Repos Guide](../guides/private-repos.md).
44
+ </details>
45
+
46
+ <details>
47
+ <summary><strong>What languages can the generated server be?</strong></summary>
48
+
49
+ TypeScript (default) or Python. Use the `-l python` flag for Python output.
50
+ </details>
51
+
52
+ <details>
53
+ <summary><strong>Can I customize the generated tools?</strong></summary>
54
+
55
+ Yes! The generated code is plain TypeScript/Python — edit it however you want. See [Custom Tools Guide](../guides/custom-tools.md).
56
+ </details>
57
+
58
+ <details>
59
+ <summary><strong>What's the difference between tools and resources?</strong></summary>
60
+
61
+ **Tools** are callable functions with parameters (like `read_file`). **Resources** are static data the AI can access. GitHub to MCP generates tools, not resources.
62
+ </details>
63
+
64
+ ### Troubleshooting
65
+
66
+ <details>
67
+ <summary><strong>I'm getting rate limit errors</strong></summary>
68
+
69
+ Set a GitHub token for 5000 requests/hour instead of 60:
70
+
71
+ ```bash
72
+ export GITHUB_TOKEN=ghp_xxxxx
73
+ ```
74
+ </details>
75
+
76
+ <details>
77
+ <summary><strong>The server won't start</strong></summary>
78
+
79
+ 1. Make sure you ran `npm install` in the output directory
80
+ 2. Check Node.js version (18+ required)
81
+ 3. Verify the path to `server.mjs` is correct
82
+ </details>
83
+
84
+ <details>
85
+ <summary><strong>Claude doesn't see my tools</strong></summary>
86
+
87
+ 1. Check config file location and JSON syntax
88
+ 2. Use absolute paths, not relative
89
+ 3. Restart Claude Desktop completely
90
+ 4. Enable MCP logs in Claude settings
91
+ </details>
92
+
93
+ <details>
94
+ <summary><strong>No tools were extracted</strong></summary>
95
+
96
+ The repo may not have detectable patterns. Check:
97
+ - Is there an OpenAPI spec?
98
+ - Is there a GraphQL schema?
99
+ - For MCP servers, are tools registered correctly?
100
+
101
+ Use `--verbose` to see what was analyzed.
102
+ </details>