SolarWinds记录MCP服务器
用于访问和可视化SolarWinds观测日志的模型上下文协议(MCP)服务器。
注:-
此服务器当前不完整,因为它不支持 结构化数据搜索(REST API的限制?)。我是 不确定是否还需要接受数据中心来使用 在api端点调用中。在时间允许的情况下,将同时解决这两个问题 (需要它来解决一个真正的工作问题,必须先解决这个问题)
工具
search_logs
使用可选过滤功能搜索SolarWinds观测日志
- 获取搜索参数,包括筛选器、时间范围和分页选项
- 返回带有时间戳、主机名和消息的格式化日志条目
- 支持按组、实体等进行高级筛选
- 默认搜索范围为最近24小时
可视化日志
为日志事件生成直方图json响应
- 为克劳德和画布表示而格式化
- 可配置的时间间隔(分钟、小时、天)
- 支持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
用于临床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"]
}
}
}适用于克劳德桌面
添加到相应的配置文件中:
窗户: %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 Observability MCP服务器需要API令牌才能通过SolarWinds Observability API验证。
配置方法
提供API令牌的方法有多种:
- MCP设置配置(推荐):在MCP设置文件中配置令牌
- 环境变量:设置
SOLARWINDS_API_TOKEN环境变量 - 本地.env文件(用于测试):创建一个
.env项目根目录中的文件SOLARWINDS_API_TOKEN=your-token
对于本地测试,您可以:
- 复制
.env.example向.env并添加您的令牌 - 运行示例脚本:
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"
}可视化日志
基本直方图(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服务器通过stdio进行通信,调试可能具有挑战性。MCP检查器提供有用的调试工具:
npm run debug:inspector这将提供一个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条日志
- 支持多种身份验证方法
