UNPKG

@kubb/plugin-mcp

Version:
138 lines (133 loc) 4.58 kB
//#region rolldown:runtime var __create = Object.create; var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) { key = keys[i]; if (!__hasOwnProp.call(to, key) && key !== except) { __defProp(to, key, { get: ((k) => from[k]).bind(null, key), enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } } } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod)); //#endregion let _kubb_core_transformers = require("@kubb/core/transformers"); let _kubb_plugin_oas_utils = require("@kubb/plugin-oas/utils"); let _kubb_react_fabric = require("@kubb/react-fabric"); let _kubb_react_fabric_jsx_runtime = require("@kubb/react-fabric/jsx-runtime"); let _kubb_oas = require("@kubb/oas"); //#region src/components/Server.tsx function getParams({ schemas }) { const pathParams = (0, _kubb_plugin_oas_utils.getPathParams)(schemas.pathParams, { typed: false }); return _kubb_react_fabric.FunctionParams.factory({ data: { mode: "object", children: { ...Object.entries(pathParams).reduce((acc, [key, param]) => { if (param && schemas.pathParams?.name) { let suffix = ".shape"; if ((0, _kubb_oas.isNullable)(schemas.pathParams.schema)) if ((0, _kubb_oas.isReference)(schemas.pathParams)) suffix = ".unwrap().schema.unwrap().shape"; else suffix = ".unwrap().shape"; else if ((0, _kubb_oas.isReference)(schemas.pathParams)) suffix = ".schema.shape"; param.value = `${schemas.pathParams?.name}${suffix}['${key}']`; } return { ...acc, [(0, _kubb_core_transformers.camelCase)(key)]: param }; }, {}), data: schemas.request?.name ? { value: schemas.request?.name, optional: (0, _kubb_plugin_oas_utils.isOptional)(schemas.request?.schema) } : void 0, params: schemas.queryParams?.name ? { value: schemas.queryParams?.name, optional: (0, _kubb_plugin_oas_utils.isOptional)(schemas.queryParams?.schema) } : void 0, headers: schemas.headerParams?.name ? { value: schemas.headerParams?.name, optional: (0, _kubb_plugin_oas_utils.isOptional)(schemas.headerParams?.schema) } : void 0 } } }); } function Server({ name, serverName, serverVersion, operations }) { return /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsxs)(_kubb_react_fabric.File.Source, { name, isExportable: true, isIndexable: true, children: [ /* @__PURE__ */ (0, _kubb_react_fabric_jsx_runtime.jsx)(_kubb_react_fabric.Const, { name: "server", export: true, children: ` new McpServer({ name: '${serverName}', version: '${serverVersion}', }) ` }), operations.map(({ tool, mcp, zod }) => { const paramsClient = getParams({ schemas: zod.schemas }); if (zod.schemas.request?.name || zod.schemas.headerParams?.name || zod.schemas.queryParams?.name || zod.schemas.pathParams?.name) return ` server.tool(${JSON.stringify(tool.name)}, ${JSON.stringify(tool.description)}, ${paramsClient.toObjectValue()}, async (${paramsClient.toObject()}) => { return ${mcp.name}(${paramsClient.toObject()}) }) `; return ` server.tool(${JSON.stringify(tool.name)}, ${JSON.stringify(tool.description)}, async () => { return ${mcp.name}(${paramsClient.toObject()}) }) `; }).filter(Boolean), ` async function startServer() { try { const transport = new StdioServerTransport() await server.connect(transport) } catch (error) { console.error('Failed to start server:', error) process.exit(1) } } startServer() ` ] }); } //#endregion Object.defineProperty(exports, 'Server', { enumerable: true, get: function () { return Server; } }); Object.defineProperty(exports, '__name', { enumerable: true, get: function () { return __name; } }); Object.defineProperty(exports, '__toESM', { enumerable: true, get: function () { return __toESM; } }); //# sourceMappingURL=Server-DblKyNZ0.cjs.map