genkit-cli
Version:
CLI for interacting with the Google Genkit AI framework
52 lines • 1.88 kB
JavaScript
;
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