UNPKG

genkit-cli

Version:

CLI for interacting with the Google Genkit AI framework

52 lines 1.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.startMcpServer = startMcpServer; const utils_1 = require("@genkit-ai/tools-common/utils"); const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js"); const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js"); const docs_1 = require("../mcp/docs"); const flows_1 = require("./flows"); const init_1 = require("./prompts/init"); const runtime_1 = require("./runtime"); const trace_1 = require("./trace"); const usage_1 = require("./usage"); const util_1 = require("./util"); async function startMcpServer(projectRoot) { const server = new mcp_js_1.McpServer({ name: 'Genkit MCP', version: '0.0.2', }); const manager = new util_1.McpRuntimeManager(projectRoot); await (0, docs_1.defineDocsTool)(server); await (0, usage_1.defineUsageGuideTool)(server); (0, init_1.defineInitPrompt)(server); (0, runtime_1.defineRuntimeTools)(server, manager); (0, flows_1.defineFlowTools)(server, manager); (0, trace_1.defineTraceTools)(server, manager); return new Promise(async (resolve) => { const transport = new stdio_js_1.StdioServerTransport(); const cleanup = async () => { try { await manager.kill(); } catch (e) { } resolve(undefined); process.exit(0); }; transport.onclose = async () => { try { await manager.kill(); } catch (e) { } resolve(undefined); process.exit(0); }; process.on('SIGINT', cleanup); process.on('SIGTERM', cleanup); await server.connect(transport); utils_1.logger.info('Genkit MCP Server running on stdio'); }); } //# sourceMappingURL=server.js.map