S

SolarWinds日志分析平台

一种用于搜索和可视化SolarWinds可观测性日志的MCP服务器,允许用户通过过滤选项查询日志数据,并生成随时间变化的日志事件的视觉表示。

monitoringsearch

584 查看 · 2026-07-07 更新

简介

一种用于搜索和可视化SolarWinds可观测性日志的MCP服务器,允许用户通过过滤选项查询日志数据,并生成随时间变化的日志事件的视觉表示。

简介

一种用于搜索和可视化SolarWinds可观测性日志的MCP服务器,允许用户通过过滤选项查询日志数据,并生成随时间变化的日志事件的视觉表示。

SolarWinds 日志 MCP 服务器

一个用于访问和可视化 SolarWinds 可观察性日志的 Model Context Protocol (MCP) 服务器。

注意 -

此服务器目前还不完整,因为它不支持结构化数据搜索(可能是 REST API 的限制?)。我也不确定它是否还需要接受数据中心来用于 API 端点调用。会在有时间时解决这两个问题(实际工作中需要它,必须先修复这个问题)。

工具

search_logs

带有可选过滤功能的 SolarWinds 可观察性日志搜索

  • 接受包括过滤器、时间范围和分页选项在内的搜索参数
  • 返回带有时间戳、主机名和消息的格式化日志条目
  • 支持按组、实体等进行高级过滤
  • 默认搜索范围是过去的 24 小时

visualize_logs

生成日志事件的直方图 JSON 响应

  • 格式适用于 Claude 和 canvas 表示
  • 可配置的时间间隔(分钟、小时、天)
  • 支持 UTC 或本地时区
  • 可自定义查询过滤器和时间范围
  • 默认可视化范围是过去的 24 小时

资源

SolarWinds 日志搜索

  • URI 模板: solarwinds://{query}/search
  • 返回与指定查询匹配的日志条目
  • 示例: solarwinds://error/search

安装

可选地从 npm 安装:

npm install -g mcp-solarwinds

或者从源代码克隆并构建:

git clone https://github.com/@jakenuts/mcp-solarwinds.git cd mcp-solarwinds npm install npm run build

或者在你的配置中直接使用 npx

对于 Cline VSCode 扩展

添加到 %APPDATA%/Code - Insiders/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

{ "mcpServers": { "solarwinds": { "command": "npx", "args": ["-y", "mcp-solarwinds"], "env": { "SOLARWINDS_API_TOKEN": "your-api-token" }, "autoApprove": ["search_logs", "visualize_logs"] } } }

对于 Claude Desktop

添加到适当的配置文件中:

Windows: %APPDATA%/Claude/claude_desktop_config.json MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{ "mcpServers": { "solarwinds": { "command": "npx", "args": ["-y", "mcp-solarwinds"], "env": { "SOLARWINDS_API_TOKEN": "your-api-token" } } } }

特殊 Windows 配置

如果你在 Windows 上遇到 ENOENT spawn npx 问题,请使用这个指定了完整路径的替代配置:

{ "mcpServers": { "solarwinds": { "command": "C:\\Users\\[username]\\AppData\\Roaming\\nvm\\[node-version]\\node.exe", "args": [ "C:\\Users\\[username]\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npx-cli.js", "-y", "mcp-solarwinds" ], "env": { "SOLARWINDS_API_TOKEN": "your-api-token" } } } }

配置

SolarWinds 可观察性 MCP 服务器需要一个 API 令牌来与 SolarWinds 可观察性 API 进行身份验证。

配置方法

有多种方式提供 API 令牌:

  1. MCP 设置配置(推荐):在你的 MCP 设置文件中配置令牌
  2. 环境变量:设置 SOLARWINDS_API_TOKEN 环境变量
  3. 本地 .env 文件(用于测试):在项目根目录下创建 .env 文件,并添加 SOLARWINDS_API_TOKEN=your-token

对于本地测试,你可以:

  1. .env.example 复制为 .env 并添加你的令牌
  2. 运行示例脚本: node examples/local-test.js

工具使用示例

search_logs

基本搜索:

{ "filter": "error" }

带时间范围和分页的高级搜索:

{ "filter": "error", "entityId": "web-server", "startTime": "2025-03-01T00:00:00Z", "endTime": "2025-03-05T23:59:59Z", "pageSize": 100, "direction": "backward" }

visualize_logs

基本直方图(ASCII 图表):

{ "filter": "error", "interval": "hour" }

高级可视化(ASCII 图表):

{ "filter": "error", "entityId": "web-server", "startTime": "2025-03-01T00:00:00Z", "endTime": "2025-03-05T23:59:59Z", "interval": "day", "use_utc": true }

Claude 可视化(JSON 格式):

{ "filter": "error", "interval": "hour", "format": "json" }

JSON 格式返回的数据可以被 Claude 以图表形式可视化:

{ "timeRanges": ["12:02", "12:03", "12:04", "12:05", "12:06", "12:07", "12:08", "12:09"], "counts": [261, 47, 48, 48, 31, 262, 270, 33], "total": 1000, "queryParams": { "query": "error", "startTime": "2025-03-05T00:00:00.000Z", "endTime": "2025-03-05T23:59:59.000Z" } }

开发

安装依赖:

npm install

构建服务器:

npm run build

调试

由于MCP服务器通过标准输入输出进行通信,调试可能会比较困难。MCP Inspector 提供了有用的调试工具:

npm run debug:inspector

这将提供一个URL,您可以在浏览器中访问该URL,并且可以:

  • 查看所有MCP消息
  • 检查请求/响应负载
  • 交互式测试工具
  • 监控服务器状态

对于不使用MCP框架的本地测试:

# Create a .env file with your token cp .env.example .env # Edit .env to add your token # Run the example script node examples/local-test.js

技术细节

  • 使用TypeScript和MCP SDK构建
  • 使用axios进行API通信
  • 支持ISO 8601日期格式的时间范围
  • 生成ASCII直方图用于日志可视化
  • 默认搜索范围:最近24小时
  • 默认页面大小:50条日志
  • 支持多种认证方法

服务配置

[{'mcpServers': {'solarwinds': {'args': ['-y', 'mcp-solarwinds'], 'autoApprove': ['search_logs', 'visualize_logs'], 'command': 'npx', 'env': {'SOLARWINDS_API_TOKEN': 'your-api-token'}}}}, {'mcpServers': {'solarwinds': {'args': ['-y', 'mcp-solarwinds'], 'command': 'npx', 'env': {'SOLARWINDS_API_TOKEN': 'your-api-token'}}}}]

来源