@redocly/revel-reef 0.126.0-next.14 → 0.126.0-next.16

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 (253) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/bin.js +1 -1
  4. package/dist/bin.js.map +1 -1
  5. package/dist/cli/prepare/analytics/collect-analytics.d.ts +1 -8
  6. package/dist/cli/prepare/analytics/collect-analytics.d.ts.map +1 -1
  7. package/dist/cli/prepare/analytics/collect-analytics.js +1 -1
  8. package/dist/cli/prepare/analytics/collect-analytics.js.map +1 -1
  9. package/dist/cli/prepare/index.d.ts.map +1 -1
  10. package/dist/cli/prepare/index.js +1 -1
  11. package/dist/cli/prepare/index.js.map +1 -1
  12. package/dist/client/App.d.ts.map +1 -1
  13. package/dist/client/App.js +1 -1
  14. package/dist/client/App.js.map +1 -1
  15. package/dist/client/app/pages/CompilationError/CompilationError.js +2 -2
  16. package/dist/client/app/pages/CompilationError/CompilationError.js.map +1 -1
  17. package/dist/client/runtime/errors/page-missing-default-export-error.d.ts +4 -0
  18. package/dist/client/runtime/errors/page-missing-default-export-error.d.ts.map +1 -0
  19. package/dist/client/runtime/errors/page-missing-default-export-error.js +1 -0
  20. package/dist/client/runtime/errors/page-missing-default-export-error.js.map +1 -0
  21. package/dist/client/runtime/loader.d.ts.map +1 -1
  22. package/dist/client/runtime/loader.js +1 -1
  23. package/dist/client/runtime/loader.js.map +1 -1
  24. package/dist/constants/common.d.ts +8 -1
  25. package/dist/constants/common.d.ts.map +1 -1
  26. package/dist/constants/common.js +1 -1
  27. package/dist/constants/common.js.map +1 -1
  28. package/dist/server/api-routes/run-api-routes-worker.d.ts.map +1 -1
  29. package/dist/server/api-routes/run-api-routes-worker.js.map +1 -1
  30. package/dist/server/constants/entitlements.d.ts.map +1 -1
  31. package/dist/server/constants/entitlements.js +1 -1
  32. package/dist/server/constants/entitlements.js.map +1 -1
  33. package/dist/server/constants/plugins/search.d.ts +1 -2
  34. package/dist/server/constants/plugins/search.d.ts.map +1 -1
  35. package/dist/server/constants/plugins/search.js.map +1 -1
  36. package/dist/server/esbuild/esbuild-logger.js +2 -2
  37. package/dist/server/esbuild/esbuild-logger.js.map +1 -1
  38. package/dist/server/fs/utils/is-loader-cache-enabled.d.ts.map +1 -1
  39. package/dist/server/fs/utils/is-loader-cache-enabled.js +1 -1
  40. package/dist/server/fs/utils/is-loader-cache-enabled.js.map +1 -1
  41. package/dist/server/node-bundle-entry.d.ts +1 -1
  42. package/dist/server/node-bundle-entry.d.ts.map +1 -1
  43. package/dist/server/node-bundle-entry.js +1 -1
  44. package/dist/server/node-bundle-entry.js.map +1 -1
  45. package/dist/server/plugins/asyncapi-docs/search/search-resolver.d.ts +1 -2
  46. package/dist/server/plugins/asyncapi-docs/search/search-resolver.d.ts.map +1 -1
  47. package/dist/server/plugins/asyncapi-docs/search/search-resolver.js.map +1 -1
  48. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-read-repository.d.ts.map +1 -1
  49. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-read-repository.js +11 -11
  50. package/dist/server/plugins/catalog-entities/database/repositories/local/catalog-entities-local-read-repository.js.map +1 -1
  51. package/dist/server/plugins/catalog-entities/database/repositories/utils.d.ts +46 -6
  52. package/dist/server/plugins/catalog-entities/database/repositories/utils.d.ts.map +1 -1
  53. package/dist/server/plugins/catalog-entities/database/repositories/utils.js +1 -1
  54. package/dist/server/plugins/catalog-entities/database/repositories/utils.js.map +1 -1
  55. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/arazzo-entities-extractor.d.ts +3 -1
  56. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/arazzo-entities-extractor.d.ts.map +1 -1
  57. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/arazzo-entities-extractor.js +1 -1
  58. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/arazzo-entities-extractor.js.map +1 -1
  59. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/asyncapi-entities-extractor.d.ts +0 -1
  60. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/asyncapi-entities-extractor.d.ts.map +1 -1
  61. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/asyncapi-entities-extractor.js +1 -1
  62. package/dist/server/plugins/catalog-entities/extensions/extractors/api-description/asyncapi-entities-extractor.js.map +1 -1
  63. package/dist/server/plugins/catalog-entities/plugin.d.ts.map +1 -1
  64. package/dist/server/plugins/catalog-entities/plugin.js +1 -1
  65. package/dist/server/plugins/catalog-entities/plugin.js.map +1 -1
  66. package/dist/server/plugins/graphql-docs/search/search-resolver.d.ts +1 -2
  67. package/dist/server/plugins/graphql-docs/search/search-resolver.d.ts.map +1 -1
  68. package/dist/server/plugins/graphql-docs/search/search-resolver.js.map +1 -1
  69. package/dist/server/plugins/lifecycle.d.ts.map +1 -1
  70. package/dist/server/plugins/lifecycle.js +2 -2
  71. package/dist/server/plugins/lifecycle.js.map +1 -1
  72. package/dist/server/plugins/markdown/search/md-search-document.d.ts +1 -1
  73. package/dist/server/plugins/markdown/search/md-search-document.d.ts.map +1 -1
  74. package/dist/server/plugins/markdown/search/md-search-document.js.map +1 -1
  75. package/dist/server/plugins/markdown/search/search-resolver.d.ts +2 -2
  76. package/dist/server/plugins/markdown/search/search-resolver.d.ts.map +1 -1
  77. package/dist/server/plugins/markdown/search/search-resolver.js.map +1 -1
  78. package/dist/server/plugins/mcp/auth/auth-handlers.d.ts +10 -0
  79. package/dist/server/plugins/mcp/auth/auth-handlers.d.ts.map +1 -0
  80. package/dist/server/plugins/mcp/auth/auth-handlers.js +1 -0
  81. package/dist/server/plugins/mcp/auth/auth-handlers.js.map +1 -0
  82. package/dist/server/plugins/mcp/constants.d.ts +13 -0
  83. package/dist/server/plugins/mcp/constants.d.ts.map +1 -0
  84. package/dist/server/plugins/mcp/constants.js +1 -0
  85. package/dist/server/plugins/mcp/constants.js.map +1 -0
  86. package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoint-info.d.ts +4 -0
  87. package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoint-info.d.ts.map +1 -0
  88. package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoint-info.js +1 -0
  89. package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoint-info.js.map +1 -0
  90. package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoints.d.ts +4 -0
  91. package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoints.d.ts.map +1 -0
  92. package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoints.js +1 -0
  93. package/dist/server/plugins/mcp/docs-mcp/tools/get-endpoints.js.map +1 -0
  94. package/dist/server/plugins/mcp/docs-mcp/tools/get-full-definition.d.ts +4 -0
  95. package/dist/server/plugins/mcp/docs-mcp/tools/get-full-definition.d.ts.map +1 -0
  96. package/dist/server/plugins/mcp/docs-mcp/tools/get-full-definition.js +1 -0
  97. package/dist/server/plugins/mcp/docs-mcp/tools/get-full-definition.js.map +1 -0
  98. package/dist/server/plugins/mcp/docs-mcp/tools/get-security-schemes.d.ts +4 -0
  99. package/dist/server/plugins/mcp/docs-mcp/tools/get-security-schemes.d.ts.map +1 -0
  100. package/dist/server/plugins/mcp/docs-mcp/tools/get-security-schemes.js +1 -0
  101. package/dist/server/plugins/mcp/docs-mcp/tools/get-security-schemes.js.map +1 -0
  102. package/dist/server/plugins/mcp/docs-mcp/tools/index.d.ts +13 -0
  103. package/dist/server/plugins/mcp/docs-mcp/tools/index.d.ts.map +1 -0
  104. package/dist/server/plugins/mcp/docs-mcp/tools/index.js +1 -0
  105. package/dist/server/plugins/mcp/docs-mcp/tools/index.js.map +1 -0
  106. package/dist/server/plugins/mcp/docs-mcp/tools/list-apis.d.ts +4 -0
  107. package/dist/server/plugins/mcp/docs-mcp/tools/list-apis.d.ts.map +1 -0
  108. package/dist/server/plugins/mcp/docs-mcp/tools/list-apis.js +1 -0
  109. package/dist/server/plugins/mcp/docs-mcp/tools/list-apis.js.map +1 -0
  110. package/dist/server/plugins/mcp/docs-mcp/tools/search.d.ts +3 -0
  111. package/dist/server/plugins/mcp/docs-mcp/tools/search.d.ts.map +1 -0
  112. package/dist/server/plugins/mcp/docs-mcp/tools/search.js +1 -0
  113. package/dist/server/plugins/mcp/docs-mcp/tools/search.js.map +1 -0
  114. package/dist/server/plugins/mcp/docs-mcp/tools/utils.d.ts +10 -0
  115. package/dist/server/plugins/mcp/docs-mcp/tools/utils.d.ts.map +1 -0
  116. package/dist/server/plugins/mcp/docs-mcp/tools/utils.js +11 -0
  117. package/dist/server/plugins/mcp/docs-mcp/tools/utils.js.map +1 -0
  118. package/dist/server/plugins/mcp/docs-mcp/tools/whoami.d.ts +3 -0
  119. package/dist/server/plugins/mcp/docs-mcp/tools/whoami.d.ts.map +1 -0
  120. package/dist/server/plugins/mcp/docs-mcp/tools/whoami.js +1 -0
  121. package/dist/server/plugins/mcp/docs-mcp/tools/whoami.js.map +1 -0
  122. package/dist/server/plugins/mcp/docs-mcp/utils.d.ts +23 -0
  123. package/dist/server/plugins/mcp/docs-mcp/utils.d.ts.map +1 -0
  124. package/dist/server/plugins/mcp/docs-mcp/utils.js +1 -0
  125. package/dist/server/plugins/mcp/docs-mcp/utils.js.map +1 -0
  126. package/dist/server/plugins/mcp/handlers/docs-mcp-handler.d.ts +4 -0
  127. package/dist/server/plugins/mcp/handlers/docs-mcp-handler.d.ts.map +1 -0
  128. package/dist/server/plugins/mcp/handlers/docs-mcp-handler.js +1 -0
  129. package/dist/server/plugins/mcp/handlers/docs-mcp-handler.js.map +1 -0
  130. package/dist/server/plugins/mcp/handlers/errors.d.ts +38 -0
  131. package/dist/server/plugins/mcp/handlers/errors.d.ts.map +1 -0
  132. package/dist/server/plugins/mcp/handlers/errors.js +1 -0
  133. package/dist/server/plugins/mcp/handlers/errors.js.map +1 -0
  134. package/dist/server/plugins/mcp/handlers/mcp-request-handler.d.ts +12 -0
  135. package/dist/server/plugins/mcp/handlers/mcp-request-handler.d.ts.map +1 -0
  136. package/dist/server/plugins/mcp/handlers/mcp-request-handler.js +1 -0
  137. package/dist/server/plugins/mcp/handlers/mcp-request-handler.js.map +1 -0
  138. package/dist/server/plugins/mcp/index.d.ts +5 -0
  139. package/dist/server/plugins/mcp/index.d.ts.map +1 -0
  140. package/dist/server/plugins/mcp/index.js +1 -0
  141. package/dist/server/plugins/mcp/index.js.map +1 -0
  142. package/dist/server/plugins/mcp/servers/base-server.d.ts +19 -0
  143. package/dist/server/plugins/mcp/servers/base-server.d.ts.map +1 -0
  144. package/dist/server/plugins/mcp/servers/base-server.js +1 -0
  145. package/dist/server/plugins/mcp/servers/base-server.js.map +1 -0
  146. package/dist/server/plugins/mcp/servers/docs-server.d.ts +15 -0
  147. package/dist/server/plugins/mcp/servers/docs-server.d.ts.map +1 -0
  148. package/dist/server/plugins/mcp/servers/docs-server.js +1 -0
  149. package/dist/server/plugins/mcp/servers/docs-server.js.map +1 -0
  150. package/dist/server/plugins/mcp/types.d.ts +50 -0
  151. package/dist/server/plugins/mcp/types.d.ts.map +1 -0
  152. package/dist/server/plugins/mcp/types.js +0 -0
  153. package/dist/server/plugins/mcp/types.js.map +1 -0
  154. package/dist/server/plugins/mcp/utils/jwt.d.ts +14 -0
  155. package/dist/server/plugins/mcp/utils/jwt.d.ts.map +1 -0
  156. package/dist/server/plugins/mcp/utils/jwt.js +1 -0
  157. package/dist/server/plugins/mcp/utils/jwt.js.map +1 -0
  158. package/dist/server/plugins/mcp/utils/xmcp-utils.d.ts +62 -0
  159. package/dist/server/plugins/mcp/utils/xmcp-utils.d.ts.map +1 -0
  160. package/dist/server/plugins/mcp/utils/xmcp-utils.js +1 -0
  161. package/dist/server/plugins/mcp/utils/xmcp-utils.js.map +1 -0
  162. package/dist/server/plugins/mcp/utils.d.ts +55 -0
  163. package/dist/server/plugins/mcp/utils.d.ts.map +1 -0
  164. package/dist/server/plugins/mcp/utils.js +1 -0
  165. package/dist/server/plugins/mcp/utils.js.map +1 -0
  166. package/dist/server/plugins/mcp/workers/run-api-routes-worker.d.ts +5 -0
  167. package/dist/server/plugins/mcp/workers/run-api-routes-worker.d.ts.map +1 -0
  168. package/dist/server/plugins/mcp/workers/run-api-routes-worker.js +1 -0
  169. package/dist/server/plugins/mcp/workers/run-api-routes-worker.js.map +1 -0
  170. package/dist/server/plugins/openapi-docs/load-definition.d.ts.map +1 -1
  171. package/dist/server/plugins/openapi-docs/load-definition.js +3 -3
  172. package/dist/server/plugins/openapi-docs/load-definition.js.map +1 -1
  173. package/dist/server/plugins/openapi-docs/search/get-ai-search-documents.d.ts.map +1 -1
  174. package/dist/server/plugins/openapi-docs/search/get-ai-search-documents.js.map +1 -1
  175. package/dist/server/plugins/openapi-docs/search/search-resolver.d.ts +0 -1
  176. package/dist/server/plugins/openapi-docs/search/search-resolver.d.ts.map +1 -1
  177. package/dist/server/plugins/openapi-docs/search-indexer.d.ts +1 -1
  178. package/dist/server/plugins/openapi-docs/search-indexer.d.ts.map +1 -1
  179. package/dist/server/plugins/openapi-docs/search-indexer.js.map +1 -1
  180. package/dist/server/plugins/openapi-docs/utils.d.ts.map +1 -1
  181. package/dist/server/plugins/openapi-docs/utils.js +1 -1
  182. package/dist/server/plugins/openapi-docs/utils.js.map +1 -1
  183. package/dist/server/plugins/search/documents/search-documents.d.ts.map +1 -1
  184. package/dist/server/plugins/search/documents/search-documents.js.map +1 -1
  185. package/dist/server/plugins/search/engines/flexsearch/index.d.ts +2 -2
  186. package/dist/server/plugins/search/engines/flexsearch/index.d.ts.map +1 -1
  187. package/dist/server/plugins/search/engines/flexsearch/index.js.map +1 -1
  188. package/dist/server/plugins/search/engines/flexsearch/search-index.d.ts +1 -2
  189. package/dist/server/plugins/search/engines/flexsearch/search-index.d.ts.map +1 -1
  190. package/dist/server/plugins/search/engines/search-engine.d.ts +2 -2
  191. package/dist/server/plugins/search/engines/search-engine.d.ts.map +1 -1
  192. package/dist/server/plugins/search/engines/search-engine.js.map +1 -1
  193. package/dist/server/plugins/search/engines/typesense/index.d.ts +2 -2
  194. package/dist/server/plugins/search/engines/typesense/index.d.ts.map +1 -1
  195. package/dist/server/ssr/index.d.ts +2 -1
  196. package/dist/server/ssr/index.d.ts.map +1 -1
  197. package/dist/server/ssr/index.js +1 -1
  198. package/dist/server/ssr/index.js.map +1 -1
  199. package/dist/server/ssr/render.d.ts +1 -0
  200. package/dist/server/ssr/render.d.ts.map +1 -1
  201. package/dist/server/ssr/render.js +1 -1
  202. package/dist/server/ssr/render.js.map +1 -1
  203. package/dist/server/types/plugins/common.d.ts +2 -1
  204. package/dist/server/types/plugins/common.d.ts.map +1 -1
  205. package/dist/server/types/plugins/search.d.ts +29 -1
  206. package/dist/server/types/plugins/search.d.ts.map +1 -1
  207. package/dist/server/utils/rbac.d.ts.map +1 -1
  208. package/dist/server/utils/rbac.js +1 -1
  209. package/dist/server/utils/rbac.js.map +1 -1
  210. package/dist/server/utils/report-all-errors.d.ts.map +1 -1
  211. package/dist/server/utils/report-all-errors.js +1 -1
  212. package/dist/server/utils/report-all-errors.js.map +1 -1
  213. package/dist/server/utils/reporter/reporter.d.ts +12 -7
  214. package/dist/server/utils/reporter/reporter.d.ts.map +1 -1
  215. package/dist/server/utils/reporter/reporter.js +7 -7
  216. package/dist/server/utils/reporter/reporter.js.map +1 -1
  217. package/dist/server/utils/reporter/validate-react-pages.d.ts +4 -0
  218. package/dist/server/utils/reporter/validate-react-pages.d.ts.map +1 -0
  219. package/dist/server/utils/reporter/validate-react-pages.js +1 -0
  220. package/dist/server/utils/reporter/validate-react-pages.js.map +1 -0
  221. package/dist/server/web-server/auth.d.ts +20 -1
  222. package/dist/server/web-server/auth.d.ts.map +1 -1
  223. package/dist/server/web-server/auth.js +4 -4
  224. package/dist/server/web-server/auth.js.map +1 -1
  225. package/dist/server/web-server/handle-api-route-request.d.ts.map +1 -1
  226. package/dist/server/web-server/handle-api-route-request.js +1 -1
  227. package/dist/server/web-server/handle-api-route-request.js.map +1 -1
  228. package/dist/server/web-server/routes/auth.d.ts.map +1 -1
  229. package/dist/server/web-server/routes/auth.js +1 -1
  230. package/dist/server/web-server/routes/auth.js.map +1 -1
  231. package/dist/server/web-server/routes/error.d.ts.map +1 -1
  232. package/dist/server/web-server/routes/error.js +1 -1
  233. package/dist/server/web-server/routes/error.js.map +1 -1
  234. package/dist/server/web-server/routes/index.d.ts.map +1 -1
  235. package/dist/server/web-server/routes/index.js +1 -1
  236. package/dist/server/web-server/routes/index.js.map +1 -1
  237. package/dist/server/web-server/routes/mcp-oauth.d.ts +12 -0
  238. package/dist/server/web-server/routes/mcp-oauth.d.ts.map +1 -0
  239. package/dist/server/web-server/routes/mcp-oauth.js +1 -0
  240. package/dist/server/web-server/routes/mcp-oauth.js.map +1 -0
  241. package/dist/server/workers/mcp-worker-pool.d.ts +4 -0
  242. package/dist/server/workers/mcp-worker-pool.d.ts.map +1 -0
  243. package/dist/server/workers/mcp-worker-pool.js +1 -0
  244. package/dist/server/workers/mcp-worker-pool.js.map +1 -0
  245. package/dist/server/workers/types.d.ts +1 -0
  246. package/dist/server/workers/types.d.ts.map +1 -1
  247. package/dist/types/entitlements.d.ts +1 -0
  248. package/dist/types/entitlements.d.ts.map +1 -1
  249. package/dist/types/errors.d.ts +6 -0
  250. package/dist/types/errors.d.ts.map +1 -1
  251. package/dist/types/ssr.d.ts +1 -0
  252. package/dist/types/ssr.d.ts.map +1 -1
  253. package/package.json +7 -5
@@ -0,0 +1,10 @@
1
+ import { SearchItemData } from '@redocly/theme';
2
+ import { OpenAPIDefinition, OpenAPIOperation } from '@redocly/openapi-docs';
3
+ type EndpointInfo = Pick<OpenAPIOperation, 'summary' | 'description' | 'security'> & {
4
+ method: string;
5
+ path: string;
6
+ };
7
+ export declare function getEndpointsFromPaths(def: OpenAPIDefinition): EndpointInfo[];
8
+ export declare function processDocuments(documents: Record<string, SearchItemData[]>, outdir: string): string;
9
+ export {};
10
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../../../src/server/plugins/mcp/docs-mcp/tools/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAO5E,KAAK,YAAY,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC,GAAG;IACnF,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,iBAAiB,GAAG,YAAY,EAAE,CAuB5E;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,EAC3C,MAAM,EAAE,MAAM,GACb,MAAM,CAkER"}
@@ -0,0 +1,11 @@
1
+ import u from"node:fs";import y from"node:path";import{checkEndpointAndDeleteXMcp as x}from"../../utils/xmcp-utils.js";import{MAX_DOCUMENTS_PER_CATEGORY as O}from"../../constants.js";function E(s){const{paths:c={}}=s,a=[];for(const[l,n]of Object.entries(c)){const f=!x(n,"docs");for(const[m,t]of Object.entries(n))f||!x(t,"docs")||a.push({path:l,method:m.toUpperCase(),summary:t.summary,description:t.description,security:t.security})}return a}function k(s,c){return Object.entries(s).map(([l,n])=>{if(!n||n.length===0)return"";const f=n.slice(0,O).map(m=>{const{document:t,highlight:p}=m,g=p?.title||(Array.isArray(t.title)?t.title[0]:t.title);let r=`Document: ${t.title}`;r+=`### [${g}](${t.url})
2
+
3
+ `;let i;if(t.url)try{let e=t.url.startsWith("/")?t.url.slice(1):t.url;const o=e.indexOf("#");o!==-1&&(e=e.substring(0,o));const d=y.extname(e);d&&(e=e.slice(0,-d.length));let A=e+".md";const h=y.join(c,A);u.existsSync(h)&&(i=u.readFileSync(h,"utf8"))}catch{}return i||(i=p?.text||(Array.isArray(t.text)?t.text[0]:t.text)),r+=i,t.facets&&(r+=`
4
+
5
+ **Categories:**
6
+ `,Object.entries(t.facets).forEach(([e,o])=>{r+=`- ${e}: ${o}
7
+ `})),r});return`## ${l}
8
+
9
+ ${f}`}).join(`
10
+
11
+ `).trim()}export{E as getEndpointsFromPaths,k as processDocuments};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../../../src/server/plugins/mcp/docs-mcp/tools/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from '@redocly/mcp-typescript-sdk/server/mcp.js';
2
+ export declare function registerWhoAmITool(server: McpServer, headers?: Record<string, string | string[] | undefined>): void;
3
+ //# sourceMappingURL=whoami.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../../../../../../../src/server/plugins/mcp/docs-mcp/tools/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAQtE,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,SAAS,EACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GACtD,IAAI,CA+DN"}
@@ -0,0 +1 @@
1
+ import{telemetry as r}from"../../../../telemetry/index";import{getUserInfoFromHeaders as s}from"../../utils/jwt";const t="whoami";function c(o,n){o.tool(t,"Get information about the currently authenticated user",()=>{try{const e=s(n||{});return e?(r.sendMcpToolCalledMessage({server_type:"docs",tool:t}),{content:[{type:"text",text:JSON.stringify({email:e.email,name:e.name,subject:e.sub,clientId:e.client_id,scope:e.scope,issuedAt:e.iat?new Date(e.iat*1e3).toISOString():void 0,expiresAt:e.exp?new Date(e.exp*1e3).toISOString():void 0})}],isError:!1}):{content:[{type:"text",text:JSON.stringify({error:"Not authenticated",message:"No valid authentication token found. Please authenticate first."})}],isError:!0}}catch(e){return r.sendMcpErrorMessage({server_type:"docs",tool:t,message:e?.message||"Failed to get user info",stack:e?.stack||""}),{content:[{type:"text",text:JSON.stringify({error:"Failed to get user info",details:e instanceof Error?e.message:String(e)})}],isError:!0}}})}export{c as registerWhoAmITool};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../../../../../../../src/server/plugins/mcp/docs-mcp/tools/whoami.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,SAAS,GAAG,QAAQ,CAAC;AAE3B,MAAM,UAAU,kBAAkB,CAChC,MAAiB,EACjB,OAAuD;IAEvD,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,wDAAwD,EAAE,GAAG,EAAE;QACpF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAEvD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,KAAK,EAAE,mBAAmB;gCAC1B,OAAO,EAAE,iEAAiE;6BAC3E,CAAC;yBACH;qBACF;oBACD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,SAAS,CAAC,wBAAwB,CAAC;gBACjC,WAAW,EAAE,MAAM;gBACnB,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;4BACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;4BACnB,OAAO,EAAE,QAAQ,CAAC,GAAG;4BACrB,QAAQ,EAAE,QAAQ,CAAC,SAAS;4BAC5B,KAAK,EAAE,QAAQ,CAAC,KAAK;4BACrB,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;4BAChF,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;yBAClF,CAAC;qBACH;iBACF;gBACD,OAAO,EAAE,KAAK;aACf,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,CAAC,mBAAmB,CAAC;gBAC5B,WAAW,EAAE,MAAM;gBACnB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,yBAAyB;gBACpD,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE;aAC1B,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,KAAK,EAAE,yBAAyB;4BAChC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;yBAChE,CAAC;qBACH;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { OpenAPISchema, OpenAPIParameter, OpenAPIResponse, OpenAPIRequestBody, Referenced, OpenAPIDefinition } from '@redocly/openapi-docs/lib/types/open-api.js';
2
+ import { McpServerType } from '../types';
3
+ export declare function findDefinitionByName(openapiDefinitions: OpenAPIDefinition[], name: string, serverType?: McpServerType): OpenAPIDefinition | undefined;
4
+ export declare function findAllDefinitionsByName(openapiDefinitions: OpenAPIDefinition[], name: string, serverType?: McpServerType): OpenAPIDefinition[];
5
+ export declare function resolveRef<T>(ref: string, def?: OpenAPIDefinition): T | undefined;
6
+ type ResolveSchemaRefsParams = {
7
+ schema: Referenced<OpenAPISchema> | undefined;
8
+ definition: OpenAPIDefinition;
9
+ visitedRefs?: Set<string>;
10
+ maxDepth?: number;
11
+ currentDepth?: number;
12
+ };
13
+ export declare function resolveSchemaRefs({ schema, definition, visitedRefs, maxDepth, currentDepth, }: ResolveSchemaRefsParams): OpenAPISchema | undefined;
14
+ type ResolveParametersParams = {
15
+ pathParams: Referenced<OpenAPIParameter>[];
16
+ opParams: Referenced<OpenAPIParameter>[];
17
+ definition: OpenAPIDefinition;
18
+ };
19
+ export declare function resolveParameters({ pathParams, opParams, definition, }: ResolveParametersParams): OpenAPIParameter[];
20
+ export declare function resolveRequestBody(requestBody: Referenced<OpenAPIRequestBody> | undefined, definition: OpenAPIDefinition): OpenAPIRequestBody | undefined;
21
+ export declare function resolveResponses(responses: Record<string, Referenced<OpenAPIResponse>>, definition: OpenAPIDefinition): Record<string, OpenAPIResponse>;
22
+ export {};
23
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/plugins/mcp/docs-mcp/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,UAAU,EAGV,iBAAiB,EAClB,MAAM,6CAA6C,CAAC;AAGrD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,wBAAgB,oBAAoB,CAClC,kBAAkB,EAAE,iBAAiB,EAAE,EACvC,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,aAAsB,GACjC,iBAAiB,GAAG,SAAS,CAM/B;AAED,wBAAgB,wBAAwB,CACtC,kBAAkB,EAAE,iBAAiB,EAAE,EACvC,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,aAAsB,GACjC,iBAAiB,EAAE,CAMrB;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,iBAAiB,GAAG,CAAC,GAAG,SAAS,CAcjF;AAED,KAAK,uBAAuB,GAAG;IAC7B,MAAM,EAAE,UAAU,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IAC9C,UAAU,EAAE,iBAAiB,CAAC;IAC9B,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,UAAU,EACV,WAAuB,EACvB,QAAa,EACb,YAAgB,GACjB,EAAE,uBAAuB,GAAG,aAAa,GAAG,SAAS,CAyGrD;AAED,KAAK,uBAAuB,GAAG;IAC7B,UAAU,EAAE,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAC3C,QAAQ,EAAE,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;IACzC,UAAU,EAAE,iBAAiB,CAAC;CAC/B,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAChC,UAAU,EACV,QAAQ,EACR,UAAU,GACX,EAAE,uBAAuB,GAAG,gBAAgB,EAAE,CA0B9C;AAgCD,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,UAAU,CAAC,kBAAkB,CAAC,GAAG,SAAS,EACvD,UAAU,EAAE,iBAAiB,GAC5B,kBAAkB,GAAG,SAAS,CA0BhC;AAED,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,EACtD,UAAU,EAAE,iBAAiB,GAC5B,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CA8BjC"}
@@ -0,0 +1 @@
1
+ import{isDefinitionHidden as $}from"../utils/xmcp-utils";function h(t,o,r="docs"){return t.find(({info:e})=>e?.title?.toLowerCase().includes(o.toLowerCase())&&!$(e,r))}function x(t,o,r="docs"){return t.filter(({info:e})=>e?.title?.toLowerCase().includes(o.toLowerCase())&&!$(e,r))}function d(t,o){if(!o||!t?.startsWith("#/"))return;const r=t.slice(2).split("/");let e=o;for(const s of r)if(typeof e=="object"&&e!==null&&s in e)e=e[s];else return;return e}function l({schema:t,definition:o,visitedRefs:r=new Set,maxDepth:e=50,currentDepth:s=0}){if(!t)return;if(s>=e)return{type:"object",description:`Maximum resolution depth exceeded (${e})`};if("$ref"in t&&t.$ref){if(r.has(t.$ref))return{type:"object",description:`Circular reference detected: ${t.$ref}`,"x-circular-ref":t.$ref};const f=new Set(r);f.add(t.$ref);const u=d(t.$ref,o);return u?l({schema:u,definition:o,visitedRefs:f,maxDepth:e,currentDepth:s+1}):{type:"object",description:`Could not resolve reference: ${t.$ref}`,"x-unresolved-ref":t.$ref}}const n={...t};if(n.properties){const f={};for(const[u,i]of Object.entries(n.properties)){const m=l({schema:i,definition:o,visitedRefs:new Set(r),maxDepth:e,currentDepth:s+1});f[u]=m||i}n.properties=f}if(n.items&&typeof n.items=="object")if(Array.isArray(n.items))n.items=n.items.map(f=>l({schema:f,definition:o,visitedRefs:new Set(r),maxDepth:e,currentDepth:s+1})||f);else{const f=l({schema:n.items,definition:o,visitedRefs:new Set(r),maxDepth:e,currentDepth:s+1});f&&(n.items=f)}return["allOf","anyOf","oneOf"].forEach(f=>{const u=n[f];Array.isArray(u)&&(n[f]=u.reduce((i,m)=>{const p=l({schema:m,definition:o,visitedRefs:new Set(r),maxDepth:e,currentDepth:s+1});return p&&i.push(p),i},[]))}),n}function w({pathParams:t,opParams:o,definition:r}){return[...t,...o].reduce((e,s)=>{if(!s)return e;if("$ref"in s&&s.$ref){const n=d(s.$ref,r);return n&&e.push({...n,schema:"schema"in n&&n.schema?l({schema:n.schema,definition:r}):void 0}),e}return e.push({...s,schema:"schema"in s&&s.schema?l({schema:s.schema,definition:r}):void 0}),e},[])}function a(t,o){const r={...t};if(t.example!==void 0&&(r.example=t.example),!t.examples)return r;const e={};for(const[s,n]of Object.entries(t.examples))if("$ref"in n){const c=d(n.$ref,o);c&&(e[s]=c)}else e[s]=n;return r.examples=e,r}function y(t,o){if(!t)return;const r="$ref"in t&&t.$ref?d(t.$ref,o):t;if(!r)return;const e={...r};if("content"in r&&r.content){const s={};for(const[n,c]of Object.entries(r.content))s[n]={...a(c,o),schema:c.schema?l({schema:c.schema,definition:o}):void 0};e.content=s}return e}function b(t,o){return Object.entries(t).reduce((r,[e,s])=>{const n="$ref"in s&&s.$ref?d(s.$ref,o):s;if(!n)return r;const c={...n};if("content"in n&&n.content){const f={};for(const[u,i]of Object.entries(n.content))f[u]={...a(i,o),schema:i.schema?l({schema:i.schema,definition:o}):void 0};c.content=f}return r[e]=c,r},{})}export{x as findAllDefinitionsByName,h as findDefinitionByName,w as resolveParameters,d as resolveRef,y as resolveRequestBody,b as resolveResponses,l as resolveSchemaRefs};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../../src/server/plugins/mcp/docs-mcp/utils.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD,MAAM,UAAU,oBAAoB,CAClC,kBAAuC,EACvC,IAAY,EACZ,aAA4B,MAAM;IAElC,OAAO,kBAAkB,CAAC,IAAI,CAC5B,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACX,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACvD,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CACxC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,kBAAuC,EACvC,IAAY,EACZ,aAA4B,MAAM;IAElC,OAAO,kBAAkB,CAAC,MAAM,CAC9B,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACX,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACvD,CAAC,kBAAkB,CAAC,IAAI,EAAE,UAAU,CAAC,CACxC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAI,GAAW,EAAE,GAAuB;IAChE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IAErD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,MAAM,GAAY,GAAG,CAAC;IAE1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACpE,MAAM,GAAI,MAAkC,CAAC,IAAI,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,MAAW,CAAC;AACrB,CAAC;AAUD,MAAM,UAAU,iBAAiB,CAAC,EAChC,MAAM,EACN,UAAU,EACV,WAAW,GAAG,IAAI,GAAG,EAAE,EACvB,QAAQ,GAAG,EAAE,EACb,YAAY,GAAG,CAAC,GACQ;IACxB,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;QAC7B,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,sCAAsC,QAAQ,GAAG;SAC/D,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gCAAgC,MAAM,CAAC,IAAI,EAAE;gBAC1D,gBAAgB,EAAE,MAAM,CAAC,IAAI;aACb,CAAC;QACrB,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;QAC5C,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEhC,MAAM,QAAQ,GAAG,UAAU,CAAgB,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gCAAgC,MAAM,CAAC,IAAI,EAAE;gBAC1D,kBAAkB,EAAE,MAAM,CAAC,IAAI;aACf,CAAC;QACrB,CAAC;QAED,MAAM,MAAM,GAAG,iBAAiB,CAAC;YAC/B,MAAM,EAAE,QAAQ;YAChB,UAAU;YACV,WAAW,EAAE,cAAc;YAC3B,QAAQ;YACR,YAAY,EAAE,YAAY,GAAG,CAAC;SAC/B,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAkB,EAAE,GAAG,MAAM,EAAE,CAAC;IAE9C,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,aAAa,GAAkC,EAAE,CAAC;QACxD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/D,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;gBACzC,MAAM,EAAE,KAAK;gBACb,UAAU;gBACV,WAAW,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC;gBACjC,QAAQ;gBACR,YAAY,EAAE,YAAY,GAAG,CAAC;aAC/B,CAAC,CAAC;YACH,aAAa,CAAC,GAAG,CAAC,GAAG,gBAAgB,IAAI,KAAK,CAAC;QACjD,CAAC;QACD,QAAQ,CAAC,UAAU,GAAG,aAAa,CAAC;IACtC,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACzD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CACjC,CAAC,IAAI,EAAE,EAAE,CACP,iBAAiB,CAAC;gBAChB,MAAM,EAAE,IAAI;gBACZ,UAAU;gBACV,WAAW,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC;gBACjC,QAAQ;gBACR,YAAY,EAAE,YAAY,GAAG,CAAC;aAC/B,CAAC,IAAI,IAAI,CACb,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,iBAAiB,CAAC;gBACtC,MAAM,EAAE,QAAQ,CAAC,KAAK;gBACtB,UAAU;gBACV,WAAW,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC;gBACjC,QAAQ;gBACR,YAAY,EAAE,YAAY,GAAG,CAAC;aAC/B,CAAC,CAAC;YACH,IAAI,aAAa,EAAE,CAAC;gBAClB,QAAQ,CAAC,KAAK,GAAG,aAAa,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAU,CAAC;IAC7D,eAAe,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAA4C,CAAC;QACzE,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gBACzD,MAAM,QAAQ,GAAG,iBAAiB,CAAC;oBACjC,MAAM,EAAE,CAAC;oBACT,UAAU;oBACV,WAAW,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC;oBACjC,QAAQ;oBACR,YAAY,EAAE,YAAY,GAAG,CAAC;iBAC/B,CAAC,CAAC;gBACH,IAAI,QAAQ,EAAE,CAAC;oBACb,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACrB,CAAC;gBACD,OAAO,GAAG,CAAC;YACb,CAAC,EAAE,EAAE,CAAC,CAAC;QACT,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAQD,MAAM,UAAU,iBAAiB,CAAC,EAChC,UAAU,EACV,QAAQ,EACR,UAAU,GACc;IACxB,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC5E,IAAI,CAAC,KAAK;YAAE,OAAO,GAAG,CAAC;QAEvB,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,UAAU,CAAmB,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACtE,IAAI,CAAC,QAAQ;gBAAE,OAAO,GAAG,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC;gBACP,GAAG,QAAQ;gBACX,MAAM,EACJ,QAAQ,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM;oBACrC,CAAC,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;oBAC5D,CAAC,CAAC,SAAS;aAChB,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACb,CAAC;QAED,GAAG,CAAC,IAAI,CAAC;YACP,GAAG,KAAK;YACR,MAAM,EACJ,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM;gBAC/B,CAAC,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;gBACzD,CAAC,CAAC,SAAS;SACI,CAAC,CAAC;QACvB,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,SAAS,wBAAwB,CAC/B,SAA2B,EAC3B,GAAsB;IAEtB,MAAM,QAAQ,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;IAElC,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACpC,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,gBAAgB,GAAmC,EAAE,CAAC;IAC5D,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjE,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACtB,MAAM,eAAe,GAAG,UAAU,CAAiB,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACtE,IAAI,eAAe,EAAE,CAAC;gBACpB,gBAAgB,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC;YAC3C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,gBAAgB,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QACnC,CAAC;IACH,CAAC;IACD,QAAQ,CAAC,QAAQ,GAAG,gBAAgB,CAAC;IAErC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,WAAuD,EACvD,UAA6B;IAE7B,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IAEnC,MAAM,QAAQ,GACZ,MAAM,IAAI,WAAW,IAAI,WAAW,CAAC,IAAI;QACvC,CAAC,CAAC,UAAU,CAAqB,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC;QAC9D,CAAC,CAAE,WAAkC,CAAC;IAE1C,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAEhC,MAAM,MAAM,GAAuB,EAAE,GAAG,QAAQ,EAAE,CAAC;IAEnD,IAAI,SAAS,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAqC,EAAE,CAAC;QACxD,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACpE,UAAU,CAAC,SAAS,CAAC,GAAG;gBACtB,GAAG,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC;gBAChD,MAAM,EAAE,OAAO,CAAC,MAAM;oBACpB,CAAC,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;oBAC3D,CAAC,CAAC,SAAS;aACd,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC;IAC9B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,SAAsD,EACtD,UAA6B;IAE7B,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CACrC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE;QACxB,MAAM,QAAQ,GACZ,MAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI;YACjC,CAAC,CAAC,UAAU,CAAkB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;YACxD,CAAC,CAAE,QAA4B,CAAC;QAEpC,IAAI,CAAC,QAAQ;YAAE,OAAO,GAAG,CAAC;QAE1B,MAAM,MAAM,GAAoB,EAAE,GAAG,QAAQ,EAAE,CAAC;QAEhD,IAAI,SAAS,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC9C,MAAM,UAAU,GAAqC,EAAE,CAAC;YACxD,KAAK,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpE,UAAU,CAAC,SAAS,CAAC,GAAG;oBACtB,GAAG,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC;oBAChD,MAAM,EAAE,OAAO,CAAC,MAAM;wBACpB,CAAC,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;wBAC3D,CAAC,CAAC,SAAS;iBACd,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC;QAC9B,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAqC,CACtC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ApiRoutesHandler } from '@redocly/config';
2
+ declare const docsMcpHandler: ApiRoutesHandler;
3
+ export default docsMcpHandler;
4
+ //# sourceMappingURL=docs-mcp-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-mcp-handler.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/plugins/mcp/handlers/docs-mcp-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAuB,gBAAgB,EAAkB,MAAM,iBAAiB,CAAC;AAwE7F,QAAA,MAAM,cAAc,EAAE,gBAoBrB,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ import{createMcpRequestHandler as g}from"./mcp-request-handler.js";import{createDocsMcpServer as v}from"../servers/docs-server.js";import{filterDefinitionsByRbac as M}from"../utils.js";import{createInternalServerError as D}from"./errors.js";import{McpServerType as h}from"../constants.js";import{telemetry as y}from"../../../telemetry/index.js";import{constructInvalidTokenResponse as R,constructUnauthorizedResponse as S,handleMcpAuth as w,shouldHandleMcpAuth as I}from"../auth/auth-handlers.js";async function T(o,r,n,s){try{const e=r,t=e?.props?.config?.openapiDefinitions||[],i=e?.props?.config?.outdir||"",a=e?.props?.config?.catalogName||"Docs MCP server",p=new URL(s.url).origin,{user:c,config:{rbac:f={},mcp:m={}}}=o,d=M(t,c,f,!!c?.isAuthenticated).map(({definition:u})=>u),l=m.docs?.name||a;return await v(d,l,p,n,i)}catch(e){throw y.sendMcpErrorMessage({server_type:"docs",message:e?.message||"",stack:e?.stack||""}),D(e?.message||"Internal server error mcp docs")}}const U=g({createServerInstance:T,serverType:h.Docs}),b=async(o,r,n)=>{if(I(r)){const{isAuthenticated:s,isTokenValid:e,currentUser:t}=await w(o,r);if(!s)return S(new URL(o.url).origin);if(!e)return R();t&&(r.user=t)}return U(o,r,n)};var B=b;export{B as default};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-mcp-handler.js","sourceRoot":"","sources":["../../../../../../../src/server/plugins/mcp/handlers/docs-mcp-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { McpErrorCodeTypes, McpServerType } from '../types.js';
2
+ export type McpErrorData = {
3
+ readonly code: McpErrorCodeTypes;
4
+ readonly message: string;
5
+ readonly data?: unknown;
6
+ readonly requestId?: string | number | null;
7
+ };
8
+ export declare class McpError extends Error {
9
+ readonly code: McpErrorCodeTypes;
10
+ readonly data?: unknown;
11
+ readonly requestId?: string | number | null;
12
+ constructor(code: McpErrorCodeTypes, message: string, data?: unknown, requestId?: string | number | null);
13
+ /**
14
+ * Creates a JSON-RPC 2.0 compliant error response
15
+ */
16
+ createErrorResponse(): Response;
17
+ }
18
+ /**
19
+ * Creates a method not allowed error response
20
+ */
21
+ export declare function createMethodNotAllowedError(requestId?: string | number | null): Response;
22
+ /**
23
+ * Creates an internal server error response with telemetry
24
+ */
25
+ export declare function createInternalServerError(error: Error | string, serverType?: McpServerType, requestId?: string | number | null): Response;
26
+ /**
27
+ * Creates an invalid request error response
28
+ */
29
+ export declare function createInvalidRequestError(message?: string, requestId?: string | number | null): Response;
30
+ /**
31
+ * Creates an invalid parameters error response
32
+ */
33
+ export declare function createInvalidParamsError(message?: string, requestId?: string | number | null): Response;
34
+ /**
35
+ * Safely handles errors in async functions with proper cleanup
36
+ */
37
+ export declare function withErrorHandling<T>(operation: () => Promise<T>, serverType: McpServerType, cleanup?: () => Promise<void>): Promise<T | Response>;
38
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/plugins/mcp/handlers/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKpE,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC7C,CAAC;AAEF,qBAAa,QAAS,SAAQ,KAAK;IACjC,SAAgB,IAAI,EAAE,iBAAiB,CAAC;IACxC,SAAgB,IAAI,CAAC,EAAE,OAAO,CAAC;IAC/B,SAAgB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;gBAGjD,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,OAAO,EACd,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASpC;;OAEG;IACH,mBAAmB,IAAI,QAAQ;CAkBhC;AAqBD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,CAIxF;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,KAAK,GAAG,MAAM,EACrB,UAAU,GAAE,aAA2C,EACvD,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GACjC,QAAQ,CAkBV;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,MAA0B,EACnC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GACjC,QAAQ,CAIV;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,MAA6B,EACtC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GACjC,QAAQ,CAIV;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EACvC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,UAAU,EAAE,aAAa,EACzB,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAC5B,OAAO,CAAC,CAAC,GAAG,QAAQ,CAAC,CAevB"}
@@ -0,0 +1 @@
1
+ import{telemetry as c}from"../../../telemetry/index.js";import{McpErrorCodes as s,McpServerType as d}from"../constants.js";class n extends Error{code;data;requestId;constructor(e,t,o,a){super(t),this.name="McpError",this.code=e,this.data=o,this.requestId=a}createErrorResponse(){const e={jsonrpc:"2.0",error:{code:this.code,message:this.message,...this.data?{data:this.data}:{}},id:this.requestId??null},t=i(this.code);return new Response(JSON.stringify(e),{status:t,headers:{"Content-Type":"application/json"}})}}function i(r){switch(r){case s.InvalidRequest:case s.InvalidParams:return 400;case s.MethodNotFound:return 404;case s.ServerError:return 405;case s.InternalError:default:return 500}}function m(r){return new n(s.ServerError,"Method not allowed",void 0,r).createErrorResponse()}function u(r,e=d.Docs,t){const o=r instanceof Error?r.message:String(r),a=r instanceof Error?r.stack:void 0;return c.sendMcpErrorMessage({server_type:e,message:o,stack:a||""}),new n(s.InternalError,"Internal server error mcp",o,t).createErrorResponse()}function f(r="Invalid request",e){return new n(s.InvalidRequest,r,void 0,e).createErrorResponse()}function h(r="Invalid parameters",e){return new n(s.InvalidParams,r,void 0,e).createErrorResponse()}async function v(r,e,t){try{return await r()}catch(o){return c.sendMcpErrorMessage({server_type:e,message:o?.message||"",stack:o?.stack||""}),t&&t(),u(o,e)}}export{n as McpError,u as createInternalServerError,h as createInvalidParamsError,f as createInvalidRequestError,m as createMethodNotAllowedError,v as withErrorHandling};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../../../../src/server/plugins/mcp/handlers/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { ApiFunctionsContext, ApiRoutesHandler, PageStaticData } from '@redocly/config';
2
+ import type { McpServerInstance, McpServerType } from '../types.js';
3
+ export type McpRequestHandlerDependencies = {
4
+ createServerInstance: (context: ApiFunctionsContext, staticData: PageStaticData, headers: Record<string, string | string[] | undefined>, request: Request) => Promise<McpServerInstance>;
5
+ serverType: McpServerType;
6
+ connectionTimeoutMs?: number;
7
+ };
8
+ /**
9
+ * Creates a standardized MCP request handler
10
+ */
11
+ export declare function createMcpRequestHandler(dependencies: McpRequestHandlerDependencies): ApiRoutesHandler;
12
+ //# sourceMappingURL=mcp-request-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-request-handler.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/plugins/mcp/handlers/mcp-request-handler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMpE,MAAM,MAAM,6BAA6B,GAAG;IAC1C,oBAAoB,EAAE,CACpB,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,EACtD,OAAO,EAAE,OAAO,KACb,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChC,UAAU,EAAE,aAAa,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,6BAA6B,GAC1C,gBAAgB,CAiElB"}
@@ -0,0 +1 @@
1
+ import{toFetchResponse as i,toReqRes as E}from"fetch-to-node";import{DEFAULT_CONNECTION_TIMEOUT_MS as w}from"../constants.js";import{createMethodNotAllowedError as R,withErrorHandling as y}from"./errors.js";import{logger as d}from"../../../utils/index.js";function N(u){const{createServerInstance:l,serverType:p,connectionTimeoutMs:m=w}=u;return async(r,h,f)=>{let e,n;const c=async()=>{try{n&&(clearTimeout(n),n=void 0),e&&(await e.cleanup(),e=void 0)}catch(a){d.error("Error during mcp server cleanup:",a)}};return y(async()=>{const a={};r.headers.forEach((o,T)=>{a[T]=o}),e=await l(h,f,a,r);const{req:s,res:t}=E(r);switch(n=setTimeout(()=>{c()},m),t.on("close",()=>{c().catch(o=>{d.error("Error during response close cleanup:",o)})}),r.method){case"GET":return await e.transport.handleRequest(s,t),i(t);case"POST":const o=await r.json();return await e.transport.handleRequest(s,t,o),i(t);default:return R()}},p,c)}}export{N as createMcpRequestHandler};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-request-handler.js","sourceRoot":"","sources":["../../../../../../../src/server/plugins/mcp/handlers/mcp-request-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAK1D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAajD;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,YAA2C;IAE3C,MAAM,EACJ,oBAAoB,EACpB,UAAU,EACV,mBAAmB,GAAG,6BAA6B,GACpD,GAAG,YAAY,CAAC;IAEjB,OAAO,KAAK,EAAE,OAAgB,EAAE,OAA4B,EAAE,UAA0B,EAAE,EAAE;QAC1F,IAAI,cAA6C,CAAC;QAClD,IAAI,SAAqC,CAAC;QAE1C,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;YACxC,IAAI,CAAC;gBACH,IAAI,SAAS,EAAE,CAAC;oBACd,YAAY,CAAC,SAAS,CAAC,CAAC;oBACxB,SAAS,GAAG,SAAS,CAAC;gBACxB,CAAC;gBACD,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;oBAC/B,cAAc,GAAG,SAAS,CAAC;gBAC7B,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,iBAAiB,CACtB,KAAK,IAAI,EAAE;YACT,MAAM,OAAO,GAAkD,EAAE,CAAC;YAClE,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACrC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACvB,CAAC,CAAC,CAAC;YAEH,cAAc,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAEnF,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YAEzD,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC1B,OAAO,EAAE,CAAC;YACZ,CAAC,EAAE,mBAAmB,CAAC,CAAC;YAExB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACvB,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACxB,MAAM,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;gBAC9D,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;gBACvB,KAAK,KAAK;oBACR,MAAM,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAC/D,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;gBAElC,KAAK,MAAM;oBACT,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;oBACzC,MAAM,cAAc,CAAC,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;oBAC5E,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;gBAElC;oBACE,OAAO,2BAA2B,EAAE,CAAC;YACzC,CAAC;QACH,CAAC,EACD,UAAU,EACV,OAAO,CACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { LifecyclePluginInstance } from '../../types';
2
+ export declare const MCP_DOCS_SERVER_HANDLER_ID = "mcp-docs-server-handler";
3
+ export declare function mcpServerPlugin(): Promise<LifecyclePluginInstance>;
4
+ export default mcpServerPlugin;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/server/plugins/mcp/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,uBAAuB,EAExB,MAAM,gBAAgB,CAAC;AAOxB,eAAO,MAAM,0BAA0B,4BAA4B,CAAC;AAGpE,wBAAsB,eAAe,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAgCxE;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1 @@
1
+ import{fileURLToPath as d}from"node:url";import{dirname as p,join as f}from"node:path";import{logger as a}from"../../utils/index.js";import{filterIgnoredDefinitions as m,getCleanedUpDefinitions as l}from"./utils.js";const s="mcp-docs-server-handler",g=p(d(import.meta.url));async function u(){return{id:"mcp",async processContent(e,n){const t=await e.loadOpenApiDefinitions(n),r=await n.getConfig(),{mcp:i}=r;if(i?.hide)return;a.info("Configuring MCP servers...");const o=f(g,"./handlers/docs-mcp-handler.js");if(!i?.docs?.hide){const c=l(m(t,i?.docs?.ignore||[]));await D(e,o,c,i,e.outdir)}}}}var M=u;async function D(e,n,t,r,i){e.createRequestHandler(s,n),e.addApiRoute({slug:"/mcp",requestHandlerId:s,httpMethod:"all",getStaticData:async()=>({props:{config:{openapiDefinitions:t.map(o=>({definition:o.definition,relativePath:o.relativePath})),outdir:i,catalogName:r?.docs?.name||"Docs MCP Server"}}})}),a.info("Registered Docs MCP Server endpoint at /mcp")}export{s as MCP_DOCS_SERVER_HANDLER_ID,M as default,u as mcpServerPlugin};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/server/plugins/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAU1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE/E,MAAM,CAAC,MAAM,0BAA0B,GAAG,yBAAyB,CAAC;AACpE,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,OAAO;QACL,EAAE,EAAE,KAAK;QAET,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,OAAyB;YACrD,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YACxE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;YAEvB,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC;gBACd,OAAO;YACT,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAE1C,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,EAAE,gCAAgC,CAAC,CAAC;YAE7E,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBACrB,MAAM,WAAW,GAAG,uBAAuB,CACzC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,CAAa,CAAC,CACnF,CAAC;gBAEF,MAAM,qBAAqB,CACzB,OAAO,EACP,kBAAkB,EAClB,WAAW,EACX,GAAsB,EACtB,OAAO,CAAC,MAAM,CACf,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,eAAe,eAAe,CAAC;AAE/B,KAAK,UAAU,qBAAqB,CAClC,OAA8B,EAC9B,WAAmB,EACnB,WAAgC,EAChC,MAAuB,EACvB,MAAc;IAEd,OAAO,CAAC,oBAAoB,CAAC,0BAA0B,EAAE,WAAW,CAAC,CAAC;IAEtE,OAAO,CAAC,WAAW,CAAC;QAClB,IAAI,EAAE,MAAM;QACZ,gBAAgB,EAAE,0BAA0B;QAC5C,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YAC1B,KAAK,EAAE;gBACL,MAAM,EAAE;oBACN,kBAAkB,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBAC5C,UAAU,EAAE,GAAG,CAAC,UAAU;wBAC1B,YAAY,EAAE,GAAG,CAAC,YAAY;qBAC/B,CAAC,CAAC;oBACH,MAAM;oBACN,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,iBAAiB;iBACrD;aACF;SACF,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { McpServer } from '@redocly/mcp-typescript-sdk/server/mcp.js';
2
+ import { StreamableHTTPServerTransport } from '@redocly/mcp-typescript-sdk/server/streamableHttp.js';
3
+ import type { Implementation } from '@redocly/mcp-typescript-sdk/types.js';
4
+ import type { McpServerInstance, McpServerType } from '../types.js';
5
+ export declare abstract class BaseMcpServer {
6
+ #private;
7
+ protected server: McpServer;
8
+ protected transport: StreamableHTTPServerTransport;
9
+ constructor(config: Implementation);
10
+ protected abstract registerTools(): void;
11
+ initialize(): Promise<McpServerInstance>;
12
+ clearCleanupTimeout(): void;
13
+ private cleanupPromise?;
14
+ cleanup(): Promise<void>;
15
+ private performCleanup;
16
+ protected abstract getServerType(): McpServerType;
17
+ }
18
+ export declare function createMcpServerInstance<T extends BaseMcpServer>(serverClass: new (...args: any[]) => T, ...args: any[]): Promise<McpServerInstance>;
19
+ //# sourceMappingURL=base-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-server.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/plugins/mcp/servers/base-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,sDAAsD,CAAC;AAErG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIpE,8BAAsB,aAAa;;IACjC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;IAC5B,SAAS,CAAC,SAAS,EAAE,6BAA6B,CAAC;gBAIvC,MAAM,EAAE,cAAc;IAOlC,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI;IAElC,UAAU,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAW9C,mBAAmB,IAAI,IAAI;IAO3B,OAAO,CAAC,cAAc,CAAC,CAAgB;IAEjC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAShB,cAAc;IAkB5B,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,aAAa;CAClD;AAED,wBAAsB,uBAAuB,CAAC,CAAC,SAAS,aAAa,EACnE,WAAW,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EACtC,GAAG,IAAI,EAAE,GAAG,EAAE,GACb,OAAO,CAAC,iBAAiB,CAAC,CAG5B"}
@@ -0,0 +1 @@
1
+ import{McpServer as t}from"@redocly/mcp-typescript-sdk/server/mcp.js";import{StreamableHTTPServerTransport as s}from"@redocly/mcp-typescript-sdk/server/streamableHttp.js";import{telemetry as i}from"../../../telemetry/index.js";class p{server;transport;#e;#r=!1;constructor(e){this.server=new t(e,{capabilities:{logging:{}}}),this.transport=new s({sessionIdGenerator:void 0})}async initialize(){return this.registerTools(),await this.server.connect(this.transport),{server:this.server,transport:this.transport,cleanup:this.cleanup.bind(this)}}clearCleanupTimeout(){this.#e&&(clearTimeout(this.#e),this.#e=void 0)}cleanupPromise;async cleanup(){return this.cleanupPromise?this.cleanupPromise:(this.cleanupPromise=this.performCleanup(),this.cleanupPromise)}async performCleanup(){if(!this.#r){this.#r=!0,this.clearCleanupTimeout();try{this.transport.close()}catch(e){throw i.sendMcpErrorMessage({server_type:this.getServerType(),message:e?.message||"Unknown cleanup error",stack:e?.stack||""}),e}}}}async function l(r,...e){return await new r(...e).initialize()}export{p as BaseMcpServer,l as createMcpServerInstance};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-server.js","sourceRoot":"","sources":["../../../../../../../src/server/plugins/mcp/servers/base-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAC;AACtE,OAAO,EAAE,6BAA6B,EAAE,MAAM,sDAAsD,CAAC;AAKrG,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,MAAM,OAAgB,aAAa;IACvB,MAAM,CAAY;IAClB,SAAS,CAAgC;IACnD,eAAe,CAAkB;IACjC,YAAY,GAAG,KAAK,CAAC;IAErB,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,SAAS,GAAG,IAAI,6BAA6B,CAAC;YACjD,kBAAkB,EAAE,SAAS;SAC9B,CAAC,CAAC;IACL,CAAC;IAID,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE1C,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;SACjC,CAAC;IACJ,CAAC;IAED,mBAAmB;QACjB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACnC,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,cAAc,CAAiB;IAEvC,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,cAAc,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,cAAc;QAC1B,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,IAAI,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,CAAC,mBAAmB,CAAC;gBAC5B,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE;gBACjC,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,uBAAuB;gBAClD,KAAK,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE;aAC1B,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CAGF;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,WAAsC,EACtC,GAAG,IAAW;IAEd,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;IACxC,OAAO,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;AACnC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { OpenAPIDefinition } from '@redocly/openapi-docs/lib/types/open-api.js';
2
+ import type { DocsServerDependencies, McpServerType } from '../types.js';
3
+ import { BaseMcpServer } from './base-server.js';
4
+ export declare class DocsMcpServer extends BaseMcpServer {
5
+ private readonly dependencies;
6
+ constructor(dependencies: DocsServerDependencies & {
7
+ baseUrl: string;
8
+ headers: Record<string, string | string[] | undefined>;
9
+ outdir: string;
10
+ });
11
+ protected registerTools(): void;
12
+ protected getServerType(): McpServerType;
13
+ }
14
+ export declare function createDocsMcpServer(definitions: OpenAPIDefinition[], name: string, baseUrl: string, headers: Record<string, string | string[] | undefined>, outdir: string): Promise<import("../types.js").McpServerInstance>;
15
+ //# sourceMappingURL=docs-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-server.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/plugins/mcp/servers/docs-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,KAAK,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,qBAAa,aAAc,SAAQ,aAAa;IAE5C,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,sBAAsB,GAAG;QACtD,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;QACvD,MAAM,EAAE,MAAM,CAAC;KAChB;IAQH,SAAS,CAAC,aAAa,IAAI,IAAI;IAU/B,SAAS,CAAC,aAAa,IAAI,aAAa;CAGzC;AAED,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,iBAAiB,EAAE,EAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,EACtD,MAAM,EAAE,MAAM,oDAIf"}
@@ -0,0 +1 @@
1
+ import{BaseMcpServer as n}from"./base-server.js";import{registerDocsTools as o}from"../docs-mcp/tools/index.js";import{McpServerType as c}from"../constants.js";class p extends n{dependencies;constructor(e){super({name:e.name,version:new Date().toISOString().slice(0,10)}),this.dependencies=e}registerTools(){o({server:this.server,definitions:this.dependencies.definitions,baseUrl:this.dependencies.baseUrl,outdir:this.dependencies.outdir,headers:this.dependencies.headers})}getServerType(){return c.Docs}}async function m(r,e,s,i,t){return await new p({definitions:r,name:e,baseUrl:s,headers:i,outdir:t}).initialize()}export{p as DocsMcpServer,m as createDocsMcpServer};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-server.js","sourceRoot":"","sources":["../../../../../../../src/server/plugins/mcp/servers/docs-server.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,aAAa,IAAI,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAE1E,MAAM,OAAO,aAAc,SAAQ,aAAa;IAE3B;IADnB,YACmB,YAIhB;QAED,KAAK,CAAC;YACJ,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;SAC/C,CAAC,CAAC;QATc,iBAAY,GAAZ,YAAY,CAI5B;IAMH,CAAC;IAES,aAAa;QACrB,iBAAiB,CAAC;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW;YAC1C,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO;YAClC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM;YAChC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO;SACnC,CAAC,CAAC;IACL,CAAC;IAES,aAAa;QACrB,OAAO,sBAAsB,CAAC,IAAI,CAAC;IACrC,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,WAAgC,EAChC,IAAY,EACZ,OAAe,EACf,OAAsD,EACtD,MAAc;IAEd,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAClF,OAAO,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;AACnC,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { OpenAPIPath } from '@redocly/openapi-docs/src/types';
2
+ import type { McpServer } from '@redocly/mcp-typescript-sdk/server/mcp.js';
3
+ import type { StreamableHTTPServerTransport } from '@redocly/mcp-typescript-sdk/server/streamableHttp.js';
4
+ import type { OpenAPIDefinition } from '@redocly/openapi-docs/lib/types/open-api.js';
5
+ import { McpErrorCodes, McpServerType } from './constants';
6
+ type ObjectValues<T> = T[keyof T];
7
+ export type McpServerType = ObjectValues<typeof McpServerType>;
8
+ export type McpErrorCodeTypes = ObjectValues<typeof McpErrorCodes>;
9
+ export interface McpPath extends OpenAPIPath {
10
+ 'x-mcp'?: XMcpConfig;
11
+ }
12
+ export interface XMcpConfig {
13
+ docs?: {
14
+ hide?: boolean;
15
+ };
16
+ }
17
+ export type McpEndpoint = {
18
+ 'x-mcp'?: XMcpConfig;
19
+ [key: string]: any;
20
+ };
21
+ export type McpServerInstance = {
22
+ readonly server: McpServer;
23
+ readonly transport: StreamableHTTPServerTransport;
24
+ cleanup(): Promise<void>;
25
+ };
26
+ export type McpPluginConfig = {
27
+ readonly hide: boolean;
28
+ readonly docs: {
29
+ readonly hide: boolean;
30
+ readonly name: string;
31
+ readonly ignore: readonly string[];
32
+ };
33
+ };
34
+ export type DocsServerDependencies = {
35
+ definitions: OpenAPIDefinition[];
36
+ readonly name: string;
37
+ };
38
+ export type McpUserInfo = {
39
+ email?: string;
40
+ name?: string;
41
+ sub?: string;
42
+ aud?: string | string[];
43
+ client_id?: string;
44
+ scope?: string;
45
+ iat?: number;
46
+ exp?: number;
47
+ [key: string]: any;
48
+ };
49
+ export {};
50
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/server/plugins/mcp/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,sDAAsD,CAAC;AAC1G,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAErF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE3D,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAElC,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AAC/D,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AAEnE,MAAM,WAAW,OAAQ,SAAQ,WAAW;IAC1C,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,6BAA6B,CAAC;IAClD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;KACpC,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB,CAAC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/server/plugins/mcp/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import { McpUserInfo } from '../types';
2
+ /**
3
+ * Extract JWT token from Authorization header
4
+ */
5
+ export declare function extractTokenFromAuthHeader(authHeader?: string | string[]): string | null;
6
+ /**
7
+ * Decode and validate JWT token to get user information
8
+ */
9
+ export declare function getUserInfoFromToken(token: string): McpUserInfo | null;
10
+ /**
11
+ * Get user info from MCP request headers
12
+ */
13
+ export declare function getUserInfoFromHeaders(headers: Record<string, string | string[] | undefined>): McpUserInfo | null;
14
+ //# sourceMappingURL=jwt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/plugins/mcp/utils/jwt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAOxF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAetE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,GACrD,WAAW,GAAG,IAAI,CAOpB"}
@@ -0,0 +1 @@
1
+ import*as n from"../../../web-server/jwt/jwt.js";function e(t){if(!t)return null;const r=Array.isArray(t)?t[0]:t;return!r||!r.startsWith("Bearer ")?null:r.substring(7)}function u(t){try{const{payload:r}=n.decode(t),o=Math.floor(Date.now()/1e3);return r.exp&&r.exp<o?null:r}catch(r){return console.error("Failed to decode JWT token:",r),null}}function i(t){const r=t.authorization||t.Authorization,o=e(r);return o?u(o):null}export{e as extractTokenFromAuthHeader,i as getUserInfoFromHeaders,u as getUserInfoFromToken};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../../../../../../src/server/plugins/mcp/utils/jwt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,gCAAgC,CAAC;AAItD;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,UAA8B;IACvE,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE7B,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAC3E,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpE,OAAO,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEtC,gCAAgC;QAChC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,CAAC,gBAAgB;QAC/B,CAAC;QAED,OAAO,OAAsB,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAsD;IAEtD,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,0BAA0B,CAAC,UAAU,CAAC,CAAC;IAErD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,62 @@
1
+ import { OpenAPIDefinition } from '@redocly/openapi-docs';
2
+ import type { XMcpConfig, McpEndpoint, McpServerType } from '../types.js';
3
+ /**
4
+ * Extracts the x-mcp configuration from an MCP endpoint.
5
+ *
6
+ * This function safely retrieves the x-mcp extension property from an endpoint object.
7
+ * The x-mcp property contains server-specific configuration for MCP (Model Context Protocol) endpoints.
8
+ *
9
+ * @param endpoint - The MCP endpoint object to extract configuration from.
10
+ * @returns The x-mcp configuration object or undefined if not present.
11
+ *
12
+ * @example
13
+ * getXMcpConfig({ 'x-mcp': { gateway: { hide: true } } }); // { gateway: { hide: true } }
14
+ * getXMcpConfig({}); // undefined
15
+ */
16
+ export declare function getXMcpConfig(endpoint: McpEndpoint): XMcpConfig | undefined;
17
+ /**
18
+ * Checks if an endpoint should be hidden for a specific server type.
19
+ *
20
+ * This function determines whether an MCP endpoint should be hidden based on the
21
+ * x-mcp configuration and the target server type (gateway or catalog).
22
+ *
23
+ * @param endpoint - The MCP endpoint to check.
24
+ * @param serverType - The server type to check visibility for ('gateway' or 'catalog').
25
+ * @returns `true` if the endpoint should be hidden, `false` otherwise.
26
+ *
27
+ * @example
28
+ * isEndpointHidden({ 'x-mcp': { docs: { hide: false } } }, 'docs'); // false
29
+ */
30
+ export declare function isEndpointHidden(endpoint: McpEndpoint, serverType: McpServerType): boolean;
31
+ /**
32
+ * Checks endpoint visibility and removes x-mcp configuration from output.
33
+ *
34
+ * This function first checks if an endpoint should be hidden for the given server type.
35
+ * If the endpoint is accessible, it removes the x-mcp configuration to clean up the output.
36
+ * This is typically used to prepare endpoints for public API documentation.
37
+ *
38
+ * @param endpoint - The MCP endpoint to process.
39
+ * @param serverType - The server type to check visibility for.
40
+ * @returns `true` if the endpoint is accessible and processed, `false` if hidden.
41
+ *
42
+ * @example
43
+ * checkEndpointAndDeleteXMcp(endpoint, 'docs');
44
+ * // Returns true and removes x-mcp from endpoint if accessible
45
+ */
46
+ export declare function checkEndpointAndDeleteXMcp(endpoint: McpEndpoint, serverType: McpServerType): boolean;
47
+ /**
48
+ * Checks if an OpenAPI definition should be hidden based on x-mcp configuration.
49
+ *
50
+ * This function examines the info section of an OpenAPI definition for x-mcp configuration
51
+ * and determines if the definition should be hidden for the specified server type.
52
+ * If no server type is provided, it checks if the definition is hidden for any server type.
53
+ *
54
+ * @param info - The OpenAPI info object to check.
55
+ * @param serverType - Optional server type to check ('docs' or 'gateway').
56
+ * @returns `true` if the definition should be hidden, `false` otherwise.
57
+ *
58
+ * @example
59
+ * isDefinitionHidden({ 'x-mcp': { docs: { hide: false } } }); // false
60
+ */
61
+ export declare function isDefinitionHidden(info: OpenAPIDefinition['info'], serverType?: McpServerType): boolean;
62
+ //# sourceMappingURL=xmcp-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xmcp-utils.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/plugins/mcp/utils/xmcp-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE1E;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS,CAE3E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,GAAG,OAAO,CAE1F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,WAAW,EACrB,UAAU,EAAE,aAAa,GACxB,OAAO,CAST;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAC/B,UAAU,CAAC,EAAE,aAAa,GACzB,OAAO,CAWT"}
@@ -0,0 +1 @@
1
+ function r(e){return e?.["x-mcp"]}function i(e,t){return!!r(e)?.[t]?.hide}function c(e,t){return i(e,t)?!1:(e&&delete e["x-mcp"],!0)}function o(e,t){if(!e)return!1;const n=e["x-mcp"];return!n||typeof n!="object"?!1:t?n[t]?.hide===!0:n.docs?.hide}export{c as checkEndpointAndDeleteXMcp,r as getXMcpConfig,o as isDefinitionHidden,i as isEndpointHidden};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xmcp-utils.js","sourceRoot":"","sources":["../../../../../../../src/server/plugins/mcp/utils/xmcp-utils.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAAC,QAAqB;IACjD,OAAO,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAqB,EAAE,UAAyB;IAC/E,OAAO,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,0BAA0B,CACxC,QAAqB,EACrB,UAAyB;IAEzB,IAAI,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uBAAuB;IACvB,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEvC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAA+B,EAC/B,UAA0B;IAE1B,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,IAAI,GAAI,IAAY,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAEpD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;IACzC,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC;AACzB,CAAC"}
@@ -0,0 +1,55 @@
1
+ import type { ApiFunctionsUser, RbacConfig } from '@redocly/config';
2
+ import type { ProcessContentActions } from '../../types';
3
+ export type Definitions = Awaited<ReturnType<ProcessContentActions['loadOpenApiDefinitions']>>;
4
+ /**
5
+ * Filters out localizations and definitions with no public paths.
6
+ *
7
+ * This function removes definitions that are localization files (starting with 'l10n' or 'i18n')
8
+ * and definitions that don't have any public API paths. It also cleans up the remaining
9
+ * definitions by removing internal parsing artifacts.
10
+ *
11
+ * @param definitions - Array of OpenAPI definitions to filter.
12
+ * @returns Filtered array of definitions with only those containing public paths.
13
+ *
14
+ * @example
15
+ * getCleanedUpDefinitions([
16
+ * { relativePath: 'l10n/en.yaml', definition: { paths: {} } },
17
+ * { relativePath: 'api.yaml', definition: { paths: { '/users': {} } } }
18
+ * ]); // Returns only the api.yaml definition
19
+ */
20
+ export declare function getCleanedUpDefinitions(definitions: Definitions): Definitions;
21
+ /**
22
+ * Filters OpenAPI definitions based on user RBAC permissions.
23
+ *
24
+ * This function checks each definition against the user's role-based access control
25
+ * permissions and filters out definitions the user doesn't have access to. It also
26
+ * applies deep filtering to the definition content based on the user's permissions.
27
+ *
28
+ * @param definitions - Array of OpenAPI definitions to filter.
29
+ * @param user - The user object containing role and permission information.
30
+ * @param rbac - RBAC configuration defining access rules.
31
+ * @param requiresLogin - Whether login is required for access.
32
+ * @returns Array of definitions the user has access to with filtered content.
33
+ *
34
+ * @example
35
+ * filterDefinitionsByRbac(definitions, user, rbac, true);
36
+ * // Returns only definitions the user can access with filtered content
37
+ */
38
+ export declare function filterDefinitionsByRbac(definitions: Definitions, user: ApiFunctionsUser, rbac: RbacConfig, requiresLogin: boolean): Definitions;
39
+ /**
40
+ * Filters out definitions that match ignored paths from redocly.yaml config.
41
+ *
42
+ * This function uses picomatch to check if any definition's relative path matches
43
+ * any of the ignored path patterns specified in the redocly configuration.
44
+ * Definitions matching these patterns will be excluded from the result.
45
+ *
46
+ * @param definitions - Array of OpenAPI definitions to filter.
47
+ * @param ignoredPaths - Array of glob patterns for paths to ignore.
48
+ * @returns Array of definitions that don't match any ignored path patterns.
49
+ *
50
+ * @example
51
+ * filterIgnoredDefinitions(definitions, ['path/to/ignore']);
52
+ * // Returns definitions not matching test or internal path patterns
53
+ */
54
+ export declare function filterIgnoredDefinitions(definitions: Definitions, ignoredPaths: string[]): Definitions;
55
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/server/plugins/mcp/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AAU5D,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;AAoC/F;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,WAAW,GAAG,WAAW,CAc7E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,gBAAgB,EACtB,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,OAAO,GACrB,WAAW,CAkBb;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,MAAM,EAAE,GACrB,WAAW,CAEb"}
@@ -0,0 +1 @@
1
+ import{join as f}from"node:path";import u from"picomatch";import{PUBLIC_API_DEFINITIONS_FOLDER as h,L10N_DIR_NAME as c,I18N_DIR_NAME as p}from"../../constants/common.js";import{canDownloadApiDefinition as l,filterDataByAccessDeep as D}from"../../utils/rbac.js";function s(i){if(typeof i!="object"||i===null)return i;if(Array.isArray(i))return i.map(s);const n={};for(const t in i)if(Object.hasOwn(i,t)){if(t.toString().startsWith("x-parsed-"))continue;n[t]=s(i[t])}return n}function _(i){return i.reduce((n,t)=>(t.relativePath.startsWith(c)||t.relativePath.startsWith(p)||t.definition?.paths&&Object.keys(t.definition.paths).length>0&&n.push({...t,definition:s(t.definition)}),n),[])}function d(i,n,t,e){return i.reduce((r,o)=>{if(!l(f(h,o.relativePath),t,e,n))return r;const a=D(o.definition,n,t,e);return r.push({...o,definition:a}),r},[])}function N(i,n){return i.filter(({relativePath:t})=>!u(n||[])(t))}export{d as filterDefinitionsByRbac,N as filterIgnoredDefinitions,_ as getCleanedUpDefinitions};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../src/server/plugins/mcp/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { Context } from 'hono';
2
+ import type { ApiRoute } from '../../../types';
3
+ import { Store } from '../../../store.js';
4
+ export declare function runMcpWorker(route: ApiRoute, ctx: Context, store: Store): Promise<Response>;
5
+ //# sourceMappingURL=run-api-routes-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-api-routes-worker.d.ts","sourceRoot":"","sources":["../../../../../../../src/server/plugins/mcp/workers/run-api-routes-worker.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAS1C,wBAAsB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,CAoDjG"}
@@ -0,0 +1 @@
1
+ import*as p from"workerpool";import{withPathPrefix as l}from"@redocly/theme/core/utils";import{TimeoutExceededError as f}from"../../../web-server/routes/api-routes/api-routes-errors.js";import m from"../../../utils/reporter/logger.js";import{serializeRequest as S}from"../../../utils/api-routes/serialize-request.js";import{API_ROUTES_WORKER_KEY as g}from"../../../workers/api-routes-worker-pool.js";import{mcpWorkers as h}from"../../../workers/mcp-worker-pool.js";const w=10;async function D(o,a,e){const t=a.get("auth"),i=await e.resolveRouteStaticData(o)||{},s=l(o.slug);try{const{status:r,headers:n,body:c,loggerStickyState:u}=await h.exec(g,[{serverOutDir:e.serverOutDir,slug:s,requestHandlerId:o.requestHandlerId,maxResponseSizeMB:w,ctxData:{user:{teams:t.teams,email:t.claims.email,claims:t.claims,idpAccessToken:t.idpAccessToken,idpId:t.claims.idpId,isAuthenticated:t.isAuthenticated},config:e.config},staticData:{...i,props:{...i.props,routeSlug:s,outdir:e.outdir}},req:await S(a.req.raw),loggerStickyState:m.getStickyState()}]);m.setStickyState(u);const d=c.data?Buffer.from(c.data):null;return new Response(d,{status:r,headers:n})}catch(r){throw r instanceof p.Promise.TimeoutError?new f("Timeout exceeded"):r}}export{D as runMcpWorker};