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,448 @@
1
+ /**
2
+ * MCP Protocol Type Definitions
3
+ * Types matching the Model Context Protocol specification
4
+ * @see https://spec.modelcontextprotocol.io/
5
+ * @author nich (x.com/nichxbt | github.com/nirholas)
6
+ * @copyright 2024-2026 nich (nirholas)
7
+ * @license MIT
8
+ */
9
+
10
+ // ============================================================================
11
+ // JSON-RPC 2.0 Base Types
12
+ // ============================================================================
13
+
14
+ /**
15
+ * JSON-RPC 2.0 Request
16
+ */
17
+ export interface JsonRpcRequest {
18
+ jsonrpc: '2.0';
19
+ id: number | string;
20
+ method: string;
21
+ params?: Record<string, unknown>;
22
+ }
23
+
24
+ /**
25
+ * JSON-RPC 2.0 Success Response
26
+ */
27
+ export interface JsonRpcSuccessResponse<T = unknown> {
28
+ jsonrpc: '2.0';
29
+ id: number | string;
30
+ result: T;
31
+ }
32
+
33
+ /**
34
+ * JSON-RPC 2.0 Error Response
35
+ */
36
+ export interface JsonRpcErrorResponse {
37
+ jsonrpc: '2.0';
38
+ id: number | string | null;
39
+ error: JsonRpcError;
40
+ }
41
+
42
+ /**
43
+ * JSON-RPC 2.0 Error Object
44
+ */
45
+ export interface JsonRpcError {
46
+ code: number;
47
+ message: string;
48
+ data?: unknown;
49
+ }
50
+
51
+ /**
52
+ * Combined JSON-RPC Response type
53
+ */
54
+ export type JsonRpcResponse<T = unknown> = JsonRpcSuccessResponse<T> | JsonRpcErrorResponse;
55
+
56
+ /**
57
+ * JSON-RPC 2.0 Notification (no id, no response expected)
58
+ */
59
+ export interface JsonRpcNotification {
60
+ jsonrpc: '2.0';
61
+ method: string;
62
+ params?: Record<string, unknown>;
63
+ }
64
+
65
+ // ============================================================================
66
+ // MCP Protocol Messages
67
+ // ============================================================================
68
+
69
+ /**
70
+ * MCP Request wrapper with typed params
71
+ */
72
+ export type McpRequest<T extends Record<string, unknown> = Record<string, unknown>> = JsonRpcRequest & {
73
+ params?: T;
74
+ };
75
+
76
+ /**
77
+ * MCP Response wrapper
78
+ */
79
+ export type McpResponse<T = unknown> = JsonRpcResponse<T>;
80
+
81
+ // ============================================================================
82
+ // MCP Tool Types
83
+ // ============================================================================
84
+
85
+ /**
86
+ * JSON Schema for tool input validation
87
+ */
88
+ export interface ToolInputSchema {
89
+ type: 'object';
90
+ properties?: Record<string, JsonSchemaProperty>;
91
+ required?: string[];
92
+ additionalProperties?: boolean;
93
+ }
94
+
95
+ /**
96
+ * JSON Schema property definition
97
+ */
98
+ export interface JsonSchemaProperty {
99
+ type: string;
100
+ description?: string;
101
+ enum?: (string | number | boolean)[];
102
+ default?: unknown;
103
+ items?: JsonSchemaProperty;
104
+ properties?: Record<string, JsonSchemaProperty>;
105
+ required?: string[];
106
+ minimum?: number;
107
+ maximum?: number;
108
+ minLength?: number;
109
+ maxLength?: number;
110
+ pattern?: string;
111
+ format?: string;
112
+ }
113
+
114
+ /**
115
+ * MCP Tool Definition
116
+ */
117
+ export interface McpTool {
118
+ name: string;
119
+ description?: string;
120
+ inputSchema: ToolInputSchema;
121
+ }
122
+
123
+ /**
124
+ * MCP tools/list response
125
+ */
126
+ export interface ListToolsResult {
127
+ tools: McpTool[];
128
+ }
129
+
130
+ // ============================================================================
131
+ // MCP Tool Call Types
132
+ // ============================================================================
133
+
134
+ /**
135
+ * MCP tools/call request parameters
136
+ */
137
+ export interface CallToolParams {
138
+ name: string;
139
+ arguments?: Record<string, unknown>;
140
+ }
141
+
142
+ /**
143
+ * Text content in tool response
144
+ */
145
+ export interface TextContent {
146
+ type: 'text';
147
+ text: string;
148
+ }
149
+
150
+ /**
151
+ * Image content in tool response
152
+ */
153
+ export interface ImageContent {
154
+ type: 'image';
155
+ data: string;
156
+ mimeType: string;
157
+ }
158
+
159
+ /**
160
+ * Resource content embedded in tool response
161
+ */
162
+ export interface EmbeddedResourceContent {
163
+ type: 'resource';
164
+ resource: {
165
+ uri: string;
166
+ mimeType?: string;
167
+ text?: string;
168
+ blob?: string;
169
+ };
170
+ }
171
+
172
+ /**
173
+ * Tool content types
174
+ */
175
+ export type ToolContent = TextContent | ImageContent | EmbeddedResourceContent;
176
+
177
+ /**
178
+ * MCP tools/call response
179
+ */
180
+ export interface CallToolResult {
181
+ content: ToolContent[];
182
+ isError?: boolean;
183
+ }
184
+
185
+ // ============================================================================
186
+ // MCP Resource Types
187
+ // ============================================================================
188
+
189
+ /**
190
+ * MCP Resource Definition
191
+ */
192
+ export interface McpResource {
193
+ uri: string;
194
+ name: string;
195
+ description?: string;
196
+ mimeType?: string;
197
+ }
198
+
199
+ /**
200
+ * MCP resources/list response
201
+ */
202
+ export interface ListResourcesResult {
203
+ resources: McpResource[];
204
+ }
205
+
206
+ /**
207
+ * MCP resources/read response
208
+ */
209
+ export interface ReadResourceResult {
210
+ contents: ResourceContent[];
211
+ }
212
+
213
+ /**
214
+ * Resource content
215
+ */
216
+ export interface ResourceContent {
217
+ uri: string;
218
+ mimeType?: string;
219
+ text?: string;
220
+ blob?: string;
221
+ }
222
+
223
+ // ============================================================================
224
+ // MCP Prompt Types
225
+ // ============================================================================
226
+
227
+ /**
228
+ * MCP Prompt Argument
229
+ */
230
+ export interface PromptArgument {
231
+ name: string;
232
+ description?: string;
233
+ required?: boolean;
234
+ }
235
+
236
+ /**
237
+ * MCP Prompt Definition
238
+ */
239
+ export interface McpPrompt {
240
+ name: string;
241
+ description?: string;
242
+ arguments?: PromptArgument[];
243
+ }
244
+
245
+ /**
246
+ * MCP prompts/list response
247
+ */
248
+ export interface ListPromptsResult {
249
+ prompts: McpPrompt[];
250
+ }
251
+
252
+ /**
253
+ * Prompt message role
254
+ */
255
+ export type PromptMessageRole = 'user' | 'assistant';
256
+
257
+ /**
258
+ * Prompt message content
259
+ */
260
+ export interface PromptMessage {
261
+ role: PromptMessageRole;
262
+ content: TextContent | ImageContent | EmbeddedResourceContent;
263
+ }
264
+
265
+ /**
266
+ * MCP prompts/get response
267
+ */
268
+ export interface GetPromptResult {
269
+ description?: string;
270
+ messages: PromptMessage[];
271
+ }
272
+
273
+ // ============================================================================
274
+ // MCP Initialization Types
275
+ // ============================================================================
276
+
277
+ /**
278
+ * Client capabilities sent during initialization
279
+ */
280
+ export interface ClientCapabilities {
281
+ experimental?: Record<string, unknown>;
282
+ sampling?: Record<string, unknown>;
283
+ roots?: {
284
+ listChanged?: boolean;
285
+ };
286
+ }
287
+
288
+ /**
289
+ * Server capabilities received during initialization
290
+ */
291
+ export interface ServerCapabilities {
292
+ experimental?: Record<string, unknown>;
293
+ logging?: Record<string, unknown>;
294
+ prompts?: {
295
+ listChanged?: boolean;
296
+ };
297
+ resources?: {
298
+ subscribe?: boolean;
299
+ listChanged?: boolean;
300
+ };
301
+ tools?: {
302
+ listChanged?: boolean;
303
+ };
304
+ }
305
+
306
+ /**
307
+ * Client info sent during initialization
308
+ */
309
+ export interface ClientInfo {
310
+ name: string;
311
+ version: string;
312
+ }
313
+
314
+ /**
315
+ * Server info received during initialization
316
+ */
317
+ export interface ServerInfo {
318
+ name: string;
319
+ version: string;
320
+ }
321
+
322
+ /**
323
+ * MCP initialize request parameters
324
+ */
325
+ export interface InitializeParams {
326
+ protocolVersion: string;
327
+ capabilities: ClientCapabilities;
328
+ clientInfo: ClientInfo;
329
+ }
330
+
331
+ /**
332
+ * MCP initialize response
333
+ */
334
+ export interface InitializeResult {
335
+ protocolVersion: string;
336
+ capabilities: ServerCapabilities;
337
+ serverInfo: ServerInfo;
338
+ instructions?: string;
339
+ }
340
+
341
+ // ============================================================================
342
+ // MCP Method Names (Constants)
343
+ // ============================================================================
344
+
345
+ export const MCP_METHODS = {
346
+ // Lifecycle
347
+ INITIALIZE: 'initialize',
348
+ INITIALIZED: 'notifications/initialized',
349
+ SHUTDOWN: 'shutdown',
350
+
351
+ // Tools
352
+ TOOLS_LIST: 'tools/list',
353
+ TOOLS_CALL: 'tools/call',
354
+
355
+ // Resources
356
+ RESOURCES_LIST: 'resources/list',
357
+ RESOURCES_READ: 'resources/read',
358
+ RESOURCES_SUBSCRIBE: 'resources/subscribe',
359
+ RESOURCES_UNSUBSCRIBE: 'resources/unsubscribe',
360
+
361
+ // Prompts
362
+ PROMPTS_LIST: 'prompts/list',
363
+ PROMPTS_GET: 'prompts/get',
364
+
365
+ // Logging
366
+ LOGGING_SET_LEVEL: 'logging/setLevel',
367
+
368
+ // Notifications
369
+ NOTIFICATION_CANCELLED: 'notifications/cancelled',
370
+ NOTIFICATION_PROGRESS: 'notifications/progress',
371
+ NOTIFICATION_MESSAGE: 'notifications/message',
372
+ NOTIFICATION_RESOURCES_UPDATED: 'notifications/resources/updated',
373
+ NOTIFICATION_RESOURCES_LIST_CHANGED: 'notifications/resources/list_changed',
374
+ NOTIFICATION_TOOLS_LIST_CHANGED: 'notifications/tools/list_changed',
375
+ NOTIFICATION_PROMPTS_LIST_CHANGED: 'notifications/prompts/list_changed',
376
+ } as const;
377
+
378
+ // ============================================================================
379
+ // Protocol Version
380
+ // ============================================================================
381
+
382
+ export const MCP_PROTOCOL_VERSION = '2024-11-05';
383
+
384
+ /**
385
+ * Library metadata - nich (x.com/nichxbt | github.com/nirholas)
386
+ */
387
+ export const _MCP_LIB_META = {
388
+ author: 'nich',
389
+ github: 'github.com/nirholas',
390
+ twitter: 'x.com/nichxbt',
391
+ project: 'github-to-mcp',
392
+ } as const;
393
+
394
+ // ============================================================================
395
+ // Standard JSON-RPC Error Codes
396
+ // ============================================================================
397
+
398
+ export const JSON_RPC_ERROR_CODES = {
399
+ // Standard JSON-RPC errors
400
+ PARSE_ERROR: -32700,
401
+ INVALID_REQUEST: -32600,
402
+ METHOD_NOT_FOUND: -32601,
403
+ INVALID_PARAMS: -32602,
404
+ INTERNAL_ERROR: -32603,
405
+
406
+ // Server errors (reserved range: -32000 to -32099)
407
+ SERVER_ERROR_START: -32099,
408
+ SERVER_ERROR_END: -32000,
409
+ } as const;
410
+
411
+ // ============================================================================
412
+ // Type Guards
413
+ // ============================================================================
414
+
415
+ /**
416
+ * Check if response is an error response
417
+ */
418
+ export function isJsonRpcError(response: JsonRpcResponse): response is JsonRpcErrorResponse {
419
+ return 'error' in response;
420
+ }
421
+
422
+ /**
423
+ * Check if response is a success response
424
+ */
425
+ export function isJsonRpcSuccess<T>(response: JsonRpcResponse<T>): response is JsonRpcSuccessResponse<T> {
426
+ return 'result' in response;
427
+ }
428
+
429
+ /**
430
+ * Check if content is text content
431
+ */
432
+ export function isTextContent(content: ToolContent): content is TextContent {
433
+ return content.type === 'text';
434
+ }
435
+
436
+ /**
437
+ * Check if content is image content
438
+ */
439
+ export function isImageContent(content: ToolContent): content is ImageContent {
440
+ return content.type === 'image';
441
+ }
442
+
443
+ /**
444
+ * Check if content is embedded resource content
445
+ */
446
+ export function isResourceContent(content: ToolContent): content is EmbeddedResourceContent {
447
+ return content.type === 'resource';
448
+ }