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,148 @@
1
+ # generate
2
+
3
+ Generate an MCP server from a GitHub repository.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ github-to-mcp generate <url> [options]
9
+ # or shorthand
10
+ github-to-mcp <url> [options]
11
+ ```
12
+
13
+ ## Arguments
14
+
15
+ | Argument | Description | Required |
16
+ |----------|-------------|----------|
17
+ | `url` | GitHub repository URL | Yes |
18
+
19
+ ## Options
20
+
21
+ | Option | Description | Default |
22
+ |--------|-------------|---------|
23
+ | `-o, --output <dir>` | Output directory | `./output` |
24
+ | `-l, --language <lang>` | Output language (`typescript` \| `python`) | `typescript` |
25
+ | `-t, --token <token>` | GitHub personal access token | `$GITHUB_TOKEN` |
26
+ | `--include-tools <tools>` | Comma-separated tools to include | All |
27
+ | `--exclude-tools <tools>` | Comma-separated tools to exclude | None |
28
+ | `--no-universal` | Skip universal tools | `false` |
29
+ | `--force` | Overwrite existing output | `false` |
30
+ | `--dry-run` | Preview without writing files | `false` |
31
+
32
+ ## Examples
33
+
34
+ ### Basic Generation
35
+
36
+ ```bash
37
+ github-to-mcp https://github.com/stripe/stripe-node
38
+ ```
39
+
40
+ ### Specify Output Directory
41
+
42
+ ```bash
43
+ github-to-mcp https://github.com/stripe/stripe-node -o ./stripe-mcp
44
+ ```
45
+
46
+ ### Generate Python Server
47
+
48
+ ```bash
49
+ github-to-mcp https://github.com/openai/openai-python -l python -o ./openai-mcp
50
+ ```
51
+
52
+ ### Private Repository
53
+
54
+ ```bash
55
+ github-to-mcp https://github.com/my-org/private-repo -t ghp_xxxxx
56
+ ```
57
+
58
+ Or using environment variable:
59
+
60
+ ```bash
61
+ export GITHUB_TOKEN=ghp_xxxxx
62
+ github-to-mcp https://github.com/my-org/private-repo
63
+ ```
64
+
65
+ ### Filter Tools
66
+
67
+ Only include specific tools:
68
+
69
+ ```bash
70
+ github-to-mcp https://github.com/stripe/stripe-node \
71
+ --include-tools read_file,search_code,create_customer
72
+ ```
73
+
74
+ Exclude specific tools:
75
+
76
+ ```bash
77
+ github-to-mcp https://github.com/stripe/stripe-node \
78
+ --exclude-tools get_readme
79
+ ```
80
+
81
+ ### Dry Run
82
+
83
+ Preview what would be generated:
84
+
85
+ ```bash
86
+ github-to-mcp https://github.com/stripe/stripe-node --dry-run
87
+ ```
88
+
89
+ Output:
90
+
91
+ ```
92
+ Dry run - would generate:
93
+ Output: ./output
94
+ Language: typescript
95
+ Tools: 12
96
+ - get_readme
97
+ - list_files
98
+ - read_file
99
+ - search_code
100
+ - create_customer
101
+ - list_customers
102
+ ...
103
+ ```
104
+
105
+ ## Output Structure
106
+
107
+ ### TypeScript Output
108
+
109
+ ```
110
+ output/
111
+ ├── package.json
112
+ ├── tsconfig.json
113
+ ├── server.ts
114
+ ├── server.mjs # Compiled
115
+ └── tools/
116
+ ├── index.ts
117
+ ├── read_file.ts
118
+ ├── list_files.ts
119
+ └── ...
120
+ ```
121
+
122
+ ### Python Output
123
+
124
+ ```
125
+ output/
126
+ ├── pyproject.toml
127
+ ├── requirements.txt
128
+ ├── server.py
129
+ └── tools/
130
+ ├── __init__.py
131
+ ├── read_file.py
132
+ └── ...
133
+ ```
134
+
135
+ ## Exit Codes
136
+
137
+ | Code | Description |
138
+ |------|-------------|
139
+ | `0` | Success |
140
+ | `1` | General error |
141
+ | `2` | Invalid arguments |
142
+ | `3` | GitHub API error |
143
+ | `4` | File system error |
144
+
145
+ ## See Also
146
+
147
+ - [`inspect`](inspect.md) - Preview tools without generating
148
+ - [`serve`](serve.md) - Run a generated server
@@ -0,0 +1,52 @@
1
+ # CLI Reference
2
+
3
+ Command-line interface for GitHub to MCP.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ # Use directly with npx
9
+ npx @nirholas/github-to-mcp <command>
10
+
11
+ # Or install globally
12
+ npm install -g @nirholas/github-to-mcp
13
+ ```
14
+
15
+ ## Commands
16
+
17
+ | Command | Description |
18
+ |---------|-------------|
19
+ | [`generate`](generate.md) | Generate MCP server from a repository |
20
+ | [`inspect`](inspect.md) | Inspect a repository without generating |
21
+ | [`serve`](serve.md) | Start a generated MCP server |
22
+
23
+ ## Global Options
24
+
25
+ These options work with all commands:
26
+
27
+ | Option | Description |
28
+ |--------|-------------|
29
+ | `-v, --version` | Show version number |
30
+ | `-h, --help` | Show help |
31
+ | `--verbose` | Enable verbose output |
32
+ | `--quiet` | Suppress non-error output |
33
+
34
+ ## Quick Examples
35
+
36
+ ```bash
37
+ # Generate MCP server
38
+ npx @nirholas/github-to-mcp generate https://github.com/stripe/stripe-node
39
+
40
+ # Inspect without generating
41
+ npx @nirholas/github-to-mcp inspect https://github.com/openai/openai-node
42
+
43
+ # Start a generated server
44
+ npx @nirholas/github-to-mcp serve ./my-mcp-server
45
+ ```
46
+
47
+ ## Environment Variables
48
+
49
+ | Variable | Description |
50
+ |----------|-------------|
51
+ | `GITHUB_TOKEN` | GitHub authentication token |
52
+ | `LOG_LEVEL` | Logging verbosity (debug, info, warn, error) |
@@ -0,0 +1,164 @@
1
+ # inspect
2
+
3
+ Inspect a repository and preview extracted tools without generating a server.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ github-to-mcp inspect <url> [options]
9
+ ```
10
+
11
+ ## Arguments
12
+
13
+ | Argument | Description | Required |
14
+ |----------|-------------|----------|
15
+ | `url` | GitHub repository URL | Yes |
16
+
17
+ ## Options
18
+
19
+ | Option | Description | Default |
20
+ |--------|-------------|---------|
21
+ | `-t, --token <token>` | GitHub personal access token | `$GITHUB_TOKEN` |
22
+ | `--format <format>` | Output format (`table` \| `json` \| `yaml`) | `table` |
23
+ | `--verbose` | Show detailed extraction info | `false` |
24
+
25
+ ## Examples
26
+
27
+ ### Basic Inspection
28
+
29
+ ```bash
30
+ github-to-mcp inspect https://github.com/stripe/stripe-node
31
+ ```
32
+
33
+ Output:
34
+
35
+ ```
36
+ Repository: stripe/stripe-node
37
+ Type: api-sdk
38
+ Stars: 3,456
39
+ Language: TypeScript
40
+
41
+ Extracted Tools (15):
42
+ ┌─────────────────────┬─────────────────────────────────────┬──────────┐
43
+ │ Name │ Description │ Source │
44
+ ├─────────────────────┼─────────────────────────────────────┼──────────┤
45
+ │ get_readme │ Get the repository README │ universal│
46
+ │ list_files │ List files in a directory │ universal│
47
+ │ read_file │ Read file contents │ universal│
48
+ │ search_code │ Search for code patterns │ universal│
49
+ │ create_customer │ Create a new Stripe customer │ openapi │
50
+ │ list_charges │ List all charges │ openapi │
51
+ │ create_payment_int… │ Create a payment intent │ openapi │
52
+ └─────────────────────┴─────────────────────────────────────┴──────────┘
53
+ ```
54
+
55
+ ### JSON Output
56
+
57
+ ```bash
58
+ github-to-mcp inspect https://github.com/stripe/stripe-node --format json
59
+ ```
60
+
61
+ ```json
62
+ {
63
+ "repository": {
64
+ "owner": "stripe",
65
+ "name": "stripe-node",
66
+ "url": "https://github.com/stripe/stripe-node",
67
+ "type": "api-sdk",
68
+ "stars": 3456,
69
+ "language": "TypeScript"
70
+ },
71
+ "tools": [
72
+ {
73
+ "name": "get_readme",
74
+ "description": "Get the repository README",
75
+ "source": "universal",
76
+ "inputSchema": {...}
77
+ },
78
+ ...
79
+ ],
80
+ "sources": {
81
+ "universal": 4,
82
+ "openapi": 11
83
+ }
84
+ }
85
+ ```
86
+
87
+ ### Verbose Mode
88
+
89
+ ```bash
90
+ github-to-mcp inspect https://github.com/stripe/stripe-node --verbose
91
+ ```
92
+
93
+ Shows additional details:
94
+
95
+ - Files scanned
96
+ - OpenAPI specs found
97
+ - GraphQL schemas detected
98
+ - Extraction time per source
99
+
100
+ ## Use Cases
101
+
102
+ ### Preview Before Generating
103
+
104
+ Check what tools will be created:
105
+
106
+ ```bash
107
+ # Inspect first
108
+ github-to-mcp inspect https://github.com/owner/repo
109
+
110
+ # If satisfied, generate
111
+ github-to-mcp generate https://github.com/owner/repo
112
+ ```
113
+
114
+ ### Compare Repositories
115
+
116
+ ```bash
117
+ # Inspect multiple repos
118
+ github-to-mcp inspect https://github.com/stripe/stripe-node --format json > stripe.json
119
+ github-to-mcp inspect https://github.com/openai/openai-node --format json > openai.json
120
+
121
+ # Compare tool counts
122
+ jq '.tools | length' stripe.json openai.json
123
+ ```
124
+
125
+ ### CI/CD Validation
126
+
127
+ ```bash
128
+ # Ensure a repo has expected tools
129
+ tools=$(github-to-mcp inspect $REPO_URL --format json | jq '.tools | length')
130
+ if [ "$tools" -lt 4 ]; then
131
+ echo "Error: Expected at least 4 tools"
132
+ exit 1
133
+ fi
134
+ ```
135
+
136
+ ## Output Formats
137
+
138
+ ### Table (Default)
139
+
140
+ Human-readable tabular format for terminal viewing.
141
+
142
+ ### JSON
143
+
144
+ Machine-readable JSON for scripting and automation.
145
+
146
+ ### YAML
147
+
148
+ YAML format for configuration files:
149
+
150
+ ```yaml
151
+ repository:
152
+ owner: stripe
153
+ name: stripe-node
154
+ type: api-sdk
155
+ tools:
156
+ - name: get_readme
157
+ description: Get the repository README
158
+ source: universal
159
+ ```
160
+
161
+ ## See Also
162
+
163
+ - [`generate`](generate.md) - Generate MCP server
164
+ - [Repository Classification](../concepts/classification.md) - How repos are classified
@@ -0,0 +1,136 @@
1
+ # serve
2
+
3
+ Start a generated MCP server.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ github-to-mcp serve <path> [options]
9
+ ```
10
+
11
+ ## Arguments
12
+
13
+ | Argument | Description | Required |
14
+ |----------|-------------|----------|
15
+ | `path` | Path to generated MCP server | Yes |
16
+
17
+ ## Options
18
+
19
+ | Option | Description | Default |
20
+ |--------|-------------|---------|
21
+ | `-p, --port <port>` | Port to listen on | `3000` |
22
+ | `--stdio` | Use stdio transport instead of HTTP | `false` |
23
+ | `--verbose` | Enable verbose logging | `false` |
24
+
25
+ ## Examples
26
+
27
+ ### Start Server
28
+
29
+ ```bash
30
+ github-to-mcp serve ./my-mcp-server
31
+ ```
32
+
33
+ Output:
34
+
35
+ ```
36
+ MCP Server started
37
+ Transport: HTTP
38
+ Port: 3000
39
+ Tools: 12
40
+ URL: http://localhost:3000
41
+
42
+ Press Ctrl+C to stop
43
+ ```
44
+
45
+ ### Custom Port
46
+
47
+ ```bash
48
+ github-to-mcp serve ./my-mcp-server -p 8080
49
+ ```
50
+
51
+ ### Stdio Mode
52
+
53
+ For direct integration with clients that support stdio:
54
+
55
+ ```bash
56
+ github-to-mcp serve ./my-mcp-server --stdio
57
+ ```
58
+
59
+ This mode reads from stdin and writes to stdout, compatible with Claude Desktop's config.
60
+
61
+ ## Transport Modes
62
+
63
+ ### HTTP (Default)
64
+
65
+ Starts an HTTP server that accepts MCP JSON-RPC requests:
66
+
67
+ ```bash
68
+ # Start server
69
+ github-to-mcp serve ./my-mcp-server -p 3000
70
+
71
+ # Test with curl
72
+ curl -X POST http://localhost:3000 \
73
+ -H "Content-Type: application/json" \
74
+ -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
75
+ ```
76
+
77
+ ### Stdio
78
+
79
+ For direct process communication:
80
+
81
+ ```bash
82
+ # Start in stdio mode
83
+ github-to-mcp serve ./my-mcp-server --stdio
84
+
85
+ # Claude Desktop config
86
+ {
87
+ "mcpServers": {
88
+ "my-repo": {
89
+ "command": "github-to-mcp",
90
+ "args": ["serve", "/path/to/my-mcp-server", "--stdio"]
91
+ }
92
+ }
93
+ }
94
+ ```
95
+
96
+ ## Health Check
97
+
98
+ When running in HTTP mode, the server provides a health endpoint:
99
+
100
+ ```bash
101
+ curl http://localhost:3000/health
102
+ ```
103
+
104
+ Response:
105
+
106
+ ```json
107
+ {
108
+ "status": "ok",
109
+ "server": "my-repo-mcp",
110
+ "tools": 12,
111
+ "uptime": 123.45
112
+ }
113
+ ```
114
+
115
+ ## Alternative: Direct Node
116
+
117
+ You can also run the server directly:
118
+
119
+ ```bash
120
+ cd ./my-mcp-server
121
+ npm install
122
+ node server.mjs
123
+ ```
124
+
125
+ Or for Python servers:
126
+
127
+ ```bash
128
+ cd ./my-mcp-server
129
+ pip install -r requirements.txt
130
+ python server.py
131
+ ```
132
+
133
+ ## See Also
134
+
135
+ - [`generate`](generate.md) - Generate MCP server
136
+ - [Claude Desktop Integration](../guides/claude-desktop.md) - Connect to Claude