Skip to main content
Glama
dumyCq

Jinko Hotel Booking MCP Server

by dumyCq
index.ts2.91 kB
#!/usr/bin/env node // Initialize telemetry first, before any other imports import { initializeTelemetry, getLogger } from './telemetry/index.js'; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; // Import the server instance from the hotel-mcp module import { get_server as get_standard_server } from './hotel-mcp/server/standard.js'; import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { SERVICE_NAME } from './version.js'; // Lazy telemetry initialization to avoid global scope issues in Cloudflare Workers let telemetry: any = null; let logger: any = null; function initTelemetryIfNeeded() { if (!telemetry) { telemetry = initializeTelemetry(); logger = getLogger(); } return { telemetry, logger }; } // Main function should take an optional command line argument to choose the server type async function main() { const serverType = process.argv[2] || "standard"; const startTime = Date.now(); try { await initTelemetryIfNeeded().logger.info('Starting MCP server', { operation: 'server_startup', serverType, timestamp: new Date().toISOString(), nodeVersion: process.version, platform: process.platform }); // Create stdio transport const transport = new StdioServerTransport(); if (serverType !== "customer" && serverType !== "standard") { console.error("Invalid server type. Use 'customer' or 'standard'."); process.exit(1); } let server: McpServer | null = null; server = await get_standard_server(); if (!server) { console.error("Failed to create server instance."); process.exit(1); } // Connect server to transport await server.connect(transport); const initializationTime = Date.now() - startTime; // Send server initialization telemetry to log collector await initTelemetryIfNeeded().logger.info('MCP server initialized successfully', { operation: 'server_initialized', serverType, initializationTime, status: 'ready', transport: 'stdio', telemetryEnabled: process.env.OTEL_ENABLED === 'true', serviceName: SERVICE_NAME, endpoint: process.env.OTEL_EXPORTER_OTLP_ENDPOINT || 'not_configured' }); } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); await initTelemetryIfNeeded().logger.error('Error starting server', { operation: 'server_initialization_failed', error: errorMessage, serverType: process.argv[2] || 'standard' }); console.error("Error starting server:", error); process.exit(1); } } // Start the server main().catch((error) => { console.error("Fatal error in main():", error); process.exit(1); }); // Export the standard server for use in other modules const server = get_standard_server(); export { server };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dumyCq/jinko-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server