Skip to main content
Glama
SailingCoder

grafana-mcp-analyzer

by SailingCoder
main.ts3.62 kB
#!/usr/bin/env node import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import fs from 'fs'; import path from 'path'; import { fileURLToPath } from 'url'; import { createMcpServer } from './server/mcp-server.js'; import { loadConfig, initializeCacheCleanup } from './services/config-manager.js'; import { initializeDataCleanup } from './services/data-store.js'; // 读取版本号 const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const packageJsonPath = path.resolve(__dirname, '../package.json'); const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8')); // 处理命令行参数 function processCommandLineArgs(): boolean { const args = process.argv.slice(2); // 检测系统语言环境 const lang = process.env.LANG || process.env.LANGUAGE || process.env.LC_ALL || 'en'; const isChinese = lang.toLowerCase().includes('zh'); // 版本参数 if (args.includes('-v') || args.includes('--version')) { console.log(`grafana-mcp-analyzer v${packageJson.version}`); return false; // 不继续执行 } // 帮助参数 if (args.includes('-h') || args.includes('--help') || args.includes('-help')) { if (isChinese) { console.log(` grafana-mcp-analyzer v${packageJson.version} 用法: grafana-mcp-analyzer [选项] 选项: -v, --version 显示版本信息 -h, --help 显示帮助信息 环境变量: CONFIG_PATH 配置文件路径(本地路径或HTTPS URL) CONFIG_MAX_AGE 远程配置缓存时间(秒,默认300) DATA_EXPIRY_HOURS 数据过期时间(小时,默认24) 示例: CONFIG_PATH=/Users/username/grafana-config.js grafana-mcp-analyzer 更多信息请访问: https://github.com/SailingCoder/grafana-mcp-analyzer `); } else { console.log(` grafana-mcp-analyzer v${packageJson.version} Usage: grafana-mcp-analyzer [options] Options: -v, --version Show version information -h, --help Show help information Environment Variables: CONFIG_PATH Configuration file path (local path or HTTPS URL) CONFIG_MAX_AGE Remote config cache time in seconds (default: 300) DATA_EXPIRY_HOURS Data expiration time in hours (default: 24) Example: CONFIG_PATH=/Users/username/grafana-config.js grafana-mcp-analyzer For more information, visit: https://github.com/SailingCoder/grafana-mcp-analyzer `); } return false; // 不继续执行 } return true; // 继续执行 } // 启动服务器 async function main(): Promise<void> { // 首先处理命令行参数 if (!processCommandLineArgs()) { return; // 如果处理了特殊参数,则不继续执行 } try { // 初始化缓存清理 initializeCacheCleanup(); // 初始化数据清理 await initializeDataCleanup(); // 加载配置 const config = await loadConfig(process.env.CONFIG_PATH); // 创建MCP服务器 const server = createMcpServer(packageJson, config); // 连接传输层 const transport = new StdioServerTransport(); await server.connect(transport); console.error('✅ Grafana查询分析MCP服务器已启动'); console.error(`📊 服务器信息: grafana-mcp-analyzer v${packageJson.version}`); console.error(`🔧 配置状态: ${Object.keys(config.queries || {}).length} 个查询`); } catch (error) { console.error('❌ 服务器启动失败:', error); process.exit(1); } } // 启动应用 main().catch((error) => { console.error('❌ 未处理的错误:', error); process.exit(1); });

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/SailingCoder/grafana-mcp-analyzer'

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