OpenShift MCP服务器
用于OpenShift诊断和故障排除的模型上下文协议(MCP)服务器。
特性
存储工具
- 存储分析:
get_cluster_storage_report-节点上临时存储使用情况的综合报告,包括顶级pod消费者。 - 深度取证:
inspect_node_storage_forensics-深入分析特定节点上的磁盘使用情况,检查未使用的映像和容器可写层。 - 光伏容量:
check_persistent_volume_capacity-使用可配置的阈值监控命名空间中的持久卷使用情况。
监视工具
- 资源平衡:
get_cluster_resource_balance-分析节点间的CPU和内存资源分布。 - Pod重新启动:
detect_pod_restarts_anomalies-识别在时间窗口内重启次数过多的Pod。 - GPU利用率:
get_gpu_utilization-跟踪GPU使用情况并识别空闲GPU资源。 - 检查GPU Pod:
inspect_gpu_pod-奔跑nvidia-smi在支持GPU的pod内查看实时进程和内存详细信息。 - 检查GPU运行状况:
check_gpu_health-检查整个集群中的GPU硬件错误(XID)和节流事件。 - vLLM指标:
get_vllm_metrics-监控vLLM推理服务器性能指标(吞吐量、队列大小、缓存使用率)。
*所有监控工具都通过OpenShift路由使用Prometheus指标,以实现实时集群可观察性。*
Pod诊断工具
- Pod日志:
get_pod_logs-从特定pod检索和分析日志,支持以前的容器日志、尾部限制和基于时间的过滤。 - 吊舱诊断:
get_pod_diagnostics-对pod进行全面的健康检查,包括状态、条件、容器状态、重启计数和问题检测。
安装
# Using uv (recommended)
uv tool install .
# Or pip
pip install .配置
此服务器依赖于 oc 命令行工具。
- 确保
oc已安装并位于您的PATH中。 - 确保您已通过身份验证(
oc login ...)在运行服务器之前,请先将数据传输到目标集群。
MCP客户端配置
在Claude Desktop或Gemini CLI设置中配置MCP服务器:
{
"mcpServers": {
"openshift-tools": {
"command": "uv",
"args": ["run", "openshift-mcp-server"]
}
}
}示例用法
配置后,您可以提出以下问题:
“给我一份所有节点的存储使用情况摘要” “检查群集中的GPU利用率” “诊断生产命名空间中我的应用程序pod的pod健康状况”
模拟工具输出(get_cluster_storage_report):
# Storage Usage Report (3 nodes)
### Node: master0.example.com
- **Filesystem**: Used: 36.70 Gi | Capacity: 99.44 Gi | Available: 62.74 Gi
- **Image FS**: Used: 34.17 Gi
- **Total Pod Ephemeral Storage**: 5.19 Gi
**Top Pod Consumers:**
- 2.60 Gi: `openshift-marketplace/redhat-operators-gb8ff`
- 974.96 Mi: `openshift-marketplace/community-operators-fq744`模拟工具输出(get_gpu_utilization):
### GPU Utilization Report
**Total GPUs Found:** 4
| Node | GPU | Utilization | Memory Used | Status |
|------|-----|-------------|-------------|--------|
| `host-a:9400` | 0 | **0.0%** | 0.0% | ⚠️ Idle |
| `host-a:9400` | 1 | **85.2%** | 92.3% | ✅ Active |模拟工具输出(detect_pod_restarts_anomalies):
### Pod Restart Anomalies (>5 in last 1h)
| Namespace | Pod | Restarts |
|-----------|-----|----------|
| `ns-1` | `pod-a-7b666bd598-cvrlk` | **34** |
| `ns-2` | `pod-b-6dcf7d7bb8-dw8sg` | **16** |
#### 📋 Recommendations
1. **Check Logs**: `oc logs
-n --previous`
2. **Check Events**: `oc get events -n `发展
# Run locally
uv run openshift-mcp-server直接测试服务器
当直接运行时,服务器需要标准输入上的JSON-RPC消息。您可以通过模拟完整的客户端握手来验证注册的工具(初始化->初始化->工具/列表):
(echo '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "capabilities": {}, "clientInfo": {"name": "test-client", "version": "1.0"}}}'; sleep 0.5; echo '{"jsonrpc": "2.0", "method": "notifications/initialized"}'; sleep 0.5; echo '{"jsonrpc": "2.0", "id": 2, "method": "tools/list"}') | uv run openshift-mcp-server预期输出(为简洁起见截断):
{"jsonrpc":"2.0","id":1,"result":{...}}
{"jsonrpc":"2.0","id":2,"result":{"tools":[{"name":"get_cluster_storage_report",...},{"name":"inspect_node_storage_forensics",...},...]}}