SUSE观察性MCP服务器
一 模型上下文协议 服务器,为AI代理提供对SUSE Observability(StackState)数据的结构化访问,以进行智能故障排除和根本原因分析。
概述
此MCP服务器将AI语言模型与SUSE Observability丰富的操作数据连接起来。它通过一个标准化的接口公开拓扑、指标和监控信息,AI代理可以使用该接口:
- 查询基础结构拓扑和组件关系
- 检索实时指标和时间序列数据
- 访问监控状态和健康检查
- 在事故期间进行根本原因分析
服务器将StackState的技术标识符(URNs、度量查询、健康状态)标准化为LLM友好格式,使人工智能代理能够在没有幻觉的情况下提供准确、基于数据的诊断。
可用工具
服务器目前为AI代理提供以下工具:
度量工具
listMetrics:列出特定组件的绑定指标。
- 论据: component_id (整数,必填):列出绑定指标的组件的ID(来自拓扑查询) - 返回:一个markdown表,显示绑定指标及其名称、单位和查询表达式
getMetrics:查询SUSE Observability在一段时间内的指标。
- 论据: - query (string,必填):要执行的PromQL查询 - start (string,必填):查询的开始时间(例如“now”、“1h”) - end (string,必填):查询的结束时间(例如“now”、“1h”) - step (字符串,可选):查询解析步长(例如,“15s”、“1m”,默认为“1m”) - 返回:一个带有查询结果可视化表示的markdown表
监视器工具
listMonitors:列出特定组件的监控器。
- 论据: component_id (整数,必填):要列出监控器的组件的ID(来自拓扑查询) - 返回:一个markdown表,显示与指定组件关联的监视器及其当前状态
拓扑工具
getComponents:使用STQL筛选器搜索拓扑组件。
- 参数(所有参数都支持多个项目的逗号分隔值): - names (字符串,可选):要完全匹配的组件名称(逗号分隔,例如“checkout service,redis-master”) - types (字符串,可选):组件类型(逗号分隔,例如“pod、service、deployment”) - healthstates (字符串,可选):健康状态(逗号分隔,例如“临界、偏离”)。对于同时查询多个状态特别有用 - domains (字符串,可选):要筛选的群集名称(逗号分隔,例如“prod-Cluster,staging Cluster”)。域表示群集名称 - namespace (string,可选):要过滤的Kubernetes命名空间(例如,'default'、'kube-system') - with_neighbors (布尔值,可选):使用NeighborsOf包含连接的组件 - with_neighbors_levels (字符串,可选):级别数(1-14)或“全部”(默认值:1) - with_neighbors_direction (字符串,可选):“up”、“down”或“both”(默认值:“both) - 注意:必须至少提供一个过滤器。所有过滤器都使用STQL IN运算符进行高效的多值查询 - 返回:一个包含匹配组件及其ID和标识符的markdown表
构建并运行
先决条件
- 转到1.23或更高版本
构建
要构建服务器,请运行:
go build -o suse-observability-mcp-server cmd/server/main.go跑
要运行服务器,您需要提供SUSE Observability API的详细信息。您可以使用stdio(默认)或HTTP运行它。
使用Stdio(适用于MCP客户端):
./suse-observability-mcp-server \
-url "https://your-instance.suse.observability.com" \
-token "YOUR_API_TOKEN" \
-apitoken使用HTTP:
./suse-observability-mcp-server \
-http ":8080" \
-url "https://your-instance.suse.observability.com" \
-token "YOUR_API_TOKEN" \
-apitoken使用docker
多阶段 Dockerfile 提供用于构建最小容器映像。
1.构建Docker镜像:
docker build -t suse-observability-mcp-server .2.运行容器:此示例以HTTP模式运行服务器。这 -p 8080:8080 flag将容器的端口映射到本地计算机。
docker run -p 8080:8080 --rm suse-observability-mcp-server \
-url "https://your-instance.suse.observability.com" \
-token "YOUR_API_TOKEN" \
-apitoken \
-http ":8080"配置标志
-http:HTTP传输地址(例如“:8080”)。如果为空,则默认为stdio。-url:SUSE可观测性API URL-token:SUSE可观测性API令牌-apitoken:使用SUSE Observability API令牌,而不是服务令牌(布尔值)
