@channel.io/be-user-chat-mcp
Version:
Backend UserChat Model Context Protocol server for Channel.io
46 lines • 1.93 kB
JavaScript
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