返回 MCP 目录
public公开dns本地运行

mcp_k8s_server

MCP Kubernetes Server是一个基于Python的Kubernetes管理服务器,提供集群信息查询、资源操作、状态监控和分析功能,支持通过MCP协议访问Kubernetes资源。

article

README

🚀 MCP-K8S 服务器

MCP-K8S 是一款基于 Python 的 Kubernetes 资源管理工具,借助模型上下文协议(Model Context Protocol, MCP),实现对 Kubernetes 集群资源的便捷访问与操作。它支持多种资源类型,提供了丰富的功能,可高效管理和监控 Kubernetes 资源。

🚀 快速开始

启动服务器

使用以下命令启动 MCP-K8S 服务器:

python -m mcp_k8s_server.run --kube-config ~/.kube/config

默认情况下,服务器将在 http://localhost:8000 地址上运行。

配置文件

您可通过编辑配置文件来自定义服务器行为,配置文件格式如下:

# config.yaml
server:
  name: mcp-k8s-server
  transport: both  # 支持 stdio、sse 或两者
  port: 8000
  host: 0.0.0.0

kubernetes:
  config_path: ~/.kube/config
  context: default
  namespace: default

测试连接

服务器启动后,可通过访问 http://localhost:8000 或使用 MCP 客户端工具与之交互。

✨ 主要特性

MCP-K8S 服务器具备以下功能:

资源信息

  • get_resources:获取指定类型的所有资源。
  • get_resource:获取特定资源的详细信息。
  • get_namespaces:获取所有可用命名空间。
  • get_events:获取集群中的所有事件。

资源操作

  • create_pod:创建新的 pod。
  • delete_pod:删除指定 pod。
  • update_deployment:更新 deployment 的配置。
  • scale_deployment:调整 deployment 的副本数量。

集群监控

  • list_nodes:获取所有节点的信息。
  • get_node_status:获取指定节点的状态。
  • get_cluster_events:获取集群范围内的所有事件。
  • watch_resources:实时监控资源的变化。

📦 安装指南

要安装 MCP-K8S 服务器,请运行以下命令:

pip install mcp-k8s-server

💻 使用示例

基础用法

from mcp_k8s_server.client import MCPClient

client = MCPClient("http://localhost:8000")
pod_info = client.get_resource("k8s://default/pods/my-pod")
namespace_list = client.get_namespaces()

📚 详细文档

资源 URI 模式

MCP-K8S 服务器支持以下资源 URI 模式:

命名空间内资源

  • k8s://{namespace}/{resource_type}:获取指定命名空间中特定类型的所有资源。
    • 示例:k8s://default/pods,可获取默认命名空间中的所有 pod。
  • k8s:///{namespace}/{resource_type}/{name}:获取指定命名空间内特定类型的单个资源。
    • 示例:k8s://default/deployments/nginx,可获取默认命名空间中名为 nginx 的 deployment。

集群范围资源

  • k8s:///{resource_type}:获取集群范围内所有特定类型的所有资源。
    • 示例:k8s:///nodes,可获取集群中的所有节点。
  • k8s:///{resource_type}/{name}:获取集群范围内特定类型的单个资源。
    • 示例:k8s:///nodes/worker-1,可获取名为 worker-1 的节点。

支持的资源类型

命名空间内资源

  • pods
  • deployments
  • services
  • persistentvolumeclaims
  • events

集群范围资源

  • nodes
  • persistentvolumes
  • namespaces

配置指南

默认配置

启动服务器时,默认会读取 config.yaml 文件中的配置。若文件不存在,可使用以下命令生成默认配置:

mcp-k8s-server init-config

自定义配置

您可通过编辑 config.yaml 文件来自定义服务器行为,例如指定 Kubernetes 配置文件路径、选择传输协议(HTTP 或 SSE)等。

故障排除

若在使用过程中遇到问题,请检查以下常见问题:

  1. 无法连接到 Kubernetes 集群:确保 Kubernetes 配置文件有效,且集群正在运行。
  2. 资源获取失败:检查网络连接和权限配置。
  3. 性能问题:优化查询参数,减少不必要的数据加载。

📄 许可证

MCP-K8S 服务器遵循 MIT License 协议,您可在项目仓库中找到完整的许可信息。


MCP-K8S 服务器是一个功能强大的 Kubernetes 资源管理工具,能够帮助开发者和运维人员更高效地管理和监控 Kubernetes 集群资源。通过 MCP 协议的强大功能,您可以轻松实现对集群资源的实时操作和监控。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端