UNPKG

@channel.io/be-user-chat-mcp

Version:

Backend UserChat Model Context Protocol server for Channel.io

46 lines 1.93 kB
#!/usr/bin/env node import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { createContextFromEnv, validateRequiredEnvVars, } from "./config/index.js"; import { registerSentryTool } from "./tools/sentry.tool.js"; import { registerUserChatTool } from "./tools/user-chat.tool.js"; import { registerWorkflowTool } from "./tools/workflow.tool.js"; // Create the MCP Server instance const server = new McpServer({ name: "Channel.io BE UserChat MCP", version: "0.0.0", }); /** * Main function to initialize and start the MCP server. */ async function main() { try { // Validate environment variables and create context validateRequiredEnvVars(); const context = createContextFromEnv(); // context를 제공하는 함수 const getContext = () => context; // Register tools with context provider registerUserChatTool(server, getContext); registerWorkflowTool(server, getContext); registerSentryTool(server, getContext); // Setup the transport (stdio for CLI usage) const transport = new StdioServerTransport(); // Connect the server to the transport await server.connect(transport); console.error("be-user-chat-mcp server running on stdio"); } catch (error) { const message = error instanceof Error ? error.message : String(error); // Log critical initialization errors console.error("Failed to initialize or connect MCP server:", message, error); // Exit if server fails to start (e.g., missing env vars) process.exit(1); } } // Run the main function and catch any top-level unhandled errors main().catch((error) => { console.error("Fatal error starting be-user-chat-mcp server:", error); process.exit(1); }); //# sourceMappingURL=index.js.map