Skip to main content
Glama
lis186

Taiwan Holiday MCP Server

by lis186
index.ts4.92 kB
#!/usr/bin/env node /** * Taiwan Holiday MCP Server * Entry point for the MCP server */ import { TaiwanHolidayMcpServer } from './server.js'; import { readFileSync } from 'fs'; import { fileURLToPath } from 'url'; import { dirname, join } from 'path'; // 取得 package.json 版本資訊 const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const packageJsonPath = join(__dirname, '..', 'package.json'); /** * 顯示版本資訊 */ function showVersion(): void { try { const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8')); console.error(`Taiwan Holiday MCP Server v${packageJson.version}`); console.error(`Node.js ${process.version}`); console.error(`Platform: ${process.platform} ${process.arch}`); } catch (error) { console.error('Taiwan Holiday MCP Server (版本資訊不可用)'); } process.exit(0); } /** * 顯示幫助資訊 */ function showHelp(): void { console.error(` Taiwan Holiday MCP Server - 台灣假期 MCP 伺服器 用法: taiwan-holiday-mcp [選項] 選項: -v, --version 顯示版本資訊 -h, --help 顯示此幫助資訊 --debug 啟用除錯模式 --port <port> 指定伺服器埠號 (預設: stdio) 環境變數: DEBUG 設定為 'true' 啟用除錯模式 MCP_LOG_LEVEL 設定日誌等級 (error, warn, info, debug) NODE_ENV 設定執行環境 (development, production) 範例: taiwan-holiday-mcp taiwan-holiday-mcp --debug DEBUG=true taiwan-holiday-mcp `); process.exit(0); } /** * 解析命令列參數 */ function parseArgs(): { debug: boolean; showVersion: boolean; showHelp: boolean; port?: number } { const args = process.argv.slice(2); const result = { debug: false, showVersion: false, showHelp: false, port: undefined as number | undefined }; for (let i = 0; i < args.length; i++) { const arg = args[i]; switch (arg) { case '-v': case '--version': result.showVersion = true; break; case '-h': case '--help': result.showHelp = true; break; case '--debug': result.debug = true; break; case '--port': if (i + 1 < args.length) { result.port = parseInt(args[i + 1]); i++; // 跳過下一個參數 } break; default: if (arg.startsWith('-')) { console.error(`未知選項: ${arg}`); console.error('使用 --help 查看可用選項'); process.exit(1); } } } return result; } /** * 設定環境變數 */ function setupEnvironment(debug: boolean): void { // 設定除錯模式 if (debug || process.env.DEBUG === 'true') { process.env.DEBUG = 'true'; process.env.MCP_LOG_LEVEL = process.env.MCP_LOG_LEVEL || 'debug'; } // 設定預設日誌等級 if (!process.env.MCP_LOG_LEVEL) { process.env.MCP_LOG_LEVEL = process.env.NODE_ENV === 'development' ? 'debug' : 'info'; } // 設定預設環境 if (!process.env.NODE_ENV) { process.env.NODE_ENV = 'production'; } } /** * 主函數 - 啟動 Taiwan Holiday MCP 伺服器 */ async function main(): Promise<void> { try { // 解析命令列參數 const args = parseArgs(); // 處理版本和幫助選項 if (args.showVersion) { showVersion(); return; } if (args.showHelp) { showHelp(); return; } // 檢查 Node.js 版本 const nodeVersion = process.version; const majorVersion = parseInt(nodeVersion.slice(1).split('.')[0]); if (majorVersion < 18) { console.error(`錯誤: 需要 Node.js 18 或更高版本,當前版本: ${nodeVersion}`); process.exit(1); } // 設定環境 setupEnvironment(args.debug); // 除錯資訊 if (process.env.DEBUG === 'true') { console.error('Taiwan Holiday MCP 伺服器已啟動'); console.error('除錯模式已啟用'); console.error(`Node.js 版本: ${process.version}`); console.error(`平台: ${process.platform} ${process.arch}`); console.error(`工作目錄: ${process.cwd()}`); console.error(`環境變數: NODE_ENV=${process.env.NODE_ENV}, MCP_LOG_LEVEL=${process.env.MCP_LOG_LEVEL}`); } // 建立並啟動伺服器 const server = new TaiwanHolidayMcpServer(); await server.run(); } catch (error) { console.error('Taiwan Holiday MCP 伺服器啟動失敗:', error); if (process.env.DEBUG === 'true') { console.error('錯誤堆疊:', error); } process.exit(1); } } /** * 處理未捕獲的錯誤 */ process.on('uncaughtException', (error) => { console.error('未捕獲的例外:', error); process.exit(1); }); process.on('unhandledRejection', (reason, promise) => { console.error('未處理的 Promise 拒絕:', reason); process.exit(1); }); // 啟動應用程式 main();

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/lis186/taiwan-holiday-mcp'

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