使用说明
Kubernetes MCP代理
一个基于FastMCP的代理,提供全面的Kubernetes集群检查功能,允许AI助手查询集群状态、资源和日志。
特性
集群监控
- 获取总体群集运行状况
- 列出所有节点及其状态和资源利用率
- 列出群集中的所有命名空间
资源管理
- 列出Pod(可选命名空间过滤)
- 列出部署(带可选命名空间筛选)
- 列出有状态集(带可选命名空间过滤)
- 列出守护进程集(带可选命名空间筛选)
- 列出作业(带可选命名空间筛选)
- 列出cron作业(带可选命名空间筛选)
- 列出入口资源(可选命名空间过滤)
- 列出持久卷及其状态、容量和存储类
- 列出持久卷声明及其状态、请求的大小和使用的存储(可选按命名空间筛选)
- 列出pod中断预算(可选命名空间过滤)
- 列出网络附件定义(带可选命名空间筛选)
事件和日志管理
- 列出最近的群集事件和警告
- 从具有可配置线路限制的特定Pod中检索日志
用法
基本代理设置
# Start the MCP server
python app/kubernetes_mcp_server.py --host 0.0.0.0 --port 8000
与AI助手集成
配置您的AI助手以连接到:
http://localhost:8000/mcp
可用工具
get_cluster_status()-获取总体群集状态list_nodes()-列出所有节点及其状态和资源list_namespaces()-列出所有命名空间list_pods(namespace)-列出Pod(可选按命名空间过滤)list_deployments(namespace)-列出部署(可选按命名空间筛选)list_statefulsets(namespace)-列出有状态集list_daemonsets(namespace)-列出守护程序集list_jobs(namespace)-列出作业list_cronjobs(namespace)-列出cron作业list_ingresses(namespace)-列出入口资源list_events(namespace)-列出最近的事件get_pod_logs(pod_name, namespace, tail_lines)-从特定pod获取日志list_persistent_volumes()-列出所有持久卷及其状态、容量和存储类list_persistent_volume_claims(namespace)-列出持久卷声明及其状态、请求的大小和使用的存储(可选按命名空间筛选)list_pod_disruption_budgets(namespace)-列出pod中断预算(可选按命名空间过滤)list_network_attachment_definitions(namespace)-列出CNI中的网络附件定义(可选按命名空间筛选)
配置
可以使用命令行参数配置代理:
--host:要绑定的主机(默认值:0.0.0.0)--port:要侦听的端口(默认值:8000)--kubeconfig:kubeconfig文件的路径
安全考虑
- 代理通过HTTP接口公开集群信息和日志
- 确保适当的网络安全措施到位
- 为Kubernetes服务帐户适当使用RBAC权限
- 考虑在生产环境中使用HTTPS
示例用法
# Start the server
python app/kubernetes_mcp_server.py --host 0.0.0.0 --port 8000
# In another terminal, you can test with curl
curl http://localhost:8000/tools/get_cluster_status
需求
- Python 3.7+
- Kubernetes集群访问
- requirements.txt或Pipfile中列出的必需Python包
