Coralogix MCP服务器
这是一个连接到Coralogix日志的MCP(模型上下文协议)服务器,为AI助手(如Cursor或Claude Desktop)提供查询和分析日志数据的工具。该服务器通过一个简单的界面实现了强大的日志分析、可视化和故障排除功能。
特性
日志查询与分析
- 使用Lucene语法查询日志(
query_logs) - 搜索特定错误消息(
search_logs_by_error) - 查找与特定功能相关的日志(
find_logs_by_function) - 按应用程序名称和子系统进行高级过滤
- 可定制的查询时间范围
- 分页和结果限制
可视化
- 从日志流生成序列图(
generate_sequence_diagram) - 支持Mermaid图语法
- 可定制的图表标题和时间戳
- 基于线程的分组选项
- 系统交互的可视化表示
用户分析
- 从日志中提取用户列表(
extract_users_list) - 可配置的用户标识符字段
- 用户活动汇总
- 用户行为模式识别
数据验证和类型安全
- 使用Zod模式进行运行时验证
- 强TypeScript类型检查
- 全面的错误处理
- 输入净化和验证
集成功能
- RESTful API与Coralogix的集成
- 基于环境的配置
- 灵活的身份验证处理
- 速率限制和请求优化
设置
- 克隆存储库(如果您还没有)。
- 安装依赖项:
npm install- 设置环境变量:
创建一个 .env 项目根目录中的文件(复制自 .env.template)并填写您的Coralogix详细信息:
# Coralogix API endpoint (Check documentation for your region)
CORALOGIX_API_URL=https://api.coralogix.com/api/v2/dataprime/query
# Your Coralogix API Key (Logs Query Key)
CORALOGIX_API_KEY=your_api_key_here
# Optional: Default application name to filter logs
CORALOGIX_APP_NAME=
# Optional: Default subsystem name to filter logs
CORALOGIX_SUBSYSTEM_NAME=- 构建TypeScript代码:
npm run build可用工具
1.查询日志
使用Lucene语法查询Coralogix日志:
{
query: string; // Lucene query string
timeframe: string; // e.g., "last 24h", "last 7d"
applicationName?: string;
subsystemName?: string;
limit?: number;
offset?: number; // For pagination
sortBy?: string; // Field to sort by
sortOrder?: 'asc' | 'desc';
}2.按错误搜索日志
使用上下文搜索特定错误消息:
{
errorMessage: string; // Error message to search for
timeframe: string; // e.g., "last 24h", "last 7d"
includeStackTrace?: boolean;
contextLines?: number; // Number of lines before/after error
severity?: string; // Error severity level
}3.按功能查找日志
使用高级筛选查找与特定功能相关的日志:
{
functionName: string; // Function name to search for
filePath?: string; // Optional file path
timeframe?: string; // e.g., "last 24h", "last 7d"
includeParams?: boolean; // Include function parameters
includeReturns?: boolean; // Include return values
stackDepth?: number; // Stack trace depth
}4.生成序列图
从日志流生成Mermaid序列图:
{
query: string; // Lucene query to filter logs
timeframe: string; // e.g., "last 24h", "last 7d"
title?: string; // Diagram title
showTimestamps?: boolean;
groupByThread?: boolean;
excludePatterns?: string[]; // Patterns to exclude
includePatterns?: string[]; // Patterns to include
style?: {
theme?: string; // Diagram theme
wrap?: boolean; // Text wrapping
boxed?: boolean; // Box around participants
}
}5.提取用户列表
从日志中提取和分析用户信息:
{
timeframe: string; // e.g., "last 24h", "last 7d"
query: string; // Lucene query to filter logs
userIdentifierField?: string; // Field containing user ID
aggregations?: { // Optional aggregations
byAction?: boolean;
byTimestamp?: boolean;
byStatus?: boolean;
};
includeMetadata?: boolean; // Include user metadata
}发展
以开发模式运行
npm run dev测试
# Run unit tests
npm test
# Run tests with coverage
npm run test:coverage
# Run integration tests
npm run test:integration调试
服务器支持多种调试模式:
# Enable debug logging
DEBUG=coralogix-mcp:* npm run dev
# Debug specific components
DEBUG=coralogix-mcp:api npm run dev
DEBUG=coralogix-mcp:diagram npm run dev项目结构
src/
├── index.ts # Main server entry point
├── coralogix-client.ts # Coralogix API client
├── sequence-diagram.ts # Sequence diagram generation
├── types.ts # TypeScript interfaces and Zod schemas
├── utils/
│ ├── validation.ts # Input validation utilities
│ ├── formatting.ts # Output formatting utilities
│ └── errors.ts # Error handling utilities
└── services/
├── log-service.ts # Log querying service
├── diagram-service.ts # Diagram generation service
└── user-service.ts # User analysis service错误处理
服务器实现了全面的错误处理:
- 输入验证错误
- API连接错误
- 速率限制错误
- 身份验证错误
- 处理错误
每个错误都会返回一个结构化响应,其中包含:
- 错误代码
- 人类可读信息
- 建议的决议
- 请求上下文(如适用)
性能注意事项
- 实现请求缓存
- 优化大型结果集
- 支持大响应的流式传输
- 实现连接池
- 优雅地处理速率限制
许可证
麻省理工学院
