Token导航 LogoToken导航TokenDH.com
MCP k8s server logo
AI代理stdio官方级别未说明来源级核验

MCP k8s server

MCP Server

一个基于MCP协议的Kubernetes管理服务器,提供集群信息获取、操作执行、状态监控和资源分析等功能。

工具数

0

提示词数

0

GitHub Stars

3

资源数

0
PythonKubernetes管理容器编排

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

guolisen

提供方

guolisen

最后核验

2026/5/17 20:22

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -e .

详细介绍

![Python 3.12+](https://www.python.org/downloads/) ![](https://badge.mcpx.dev?status=on "MCP Enabled") ![](https://badge.mcpx.dev?type=server "MCP Server") ![](https://badge.mcpx.dev?type=dev "MCP Dev") ![Tests](https://github.com/guolisen/mcp_k8s_server/actions)

MCP Kubernetes服务器

Kubernetes管理MCP(模型上下文协议)服务器,提供用于获取Kubernetes集群信息、执行操作、监控状态和分析资源的接口。

特性

  • 集群信息:获取有关Kubernetes资源(Pod、部署、服务等)的详细信息
  • 集群操作:对Kubernetes资源执行操作(创建、更新、删除、缩放等)
  • 监控:监控Kubernetes集群和资源的状态
  • 分析:分析Kubernetes资源并提供建议
  • 鼓励:包括常见Kubernetes分析任务的提示

例子

示例1

ex1

示例2

ex2

示例3

ex3

安装

来源

git clone https://github.com/yourusername/mcp-k8s-server.git
cd mcp-k8s-server
pip install -e .

使用pip

pip install mcp-k8s-server

用法

直接运行

# Run with default settings
mcp-k8s-server

# Specify transport type
mcp-k8s-server --transport sse

# Specify port for SSE transport
mcp-k8s-server --port 8000

# Specify config file
mcp-k8s-server --config /path/to/config.yaml

使用Docker

Dockerfile使用命令和args模式来运行服务器:

CMD ["python", "-m", "mcp_k8s_server.main", \
     "--transport", "sse", \
     "--port", "8000", \
     "--host", "0.0.0.0", \
     "--config", "/etc/rancher/rke2/rke2.yaml", \
     "--debug"]

构建并运行Docker容器:

# Build the Docker image
docker build -t mcp-k8s-server .

# Run the Docker container
docker run -p 8000:8000 -v ~/.kube:/home/mcp/.kube mcp-k8s-server

或者,您可以使用提供的脚本:

# Make the script executable
chmod +x docker-run.sh

# Run the script
./docker-run.sh

此脚本构建Docker映像,并运行具有必要卷装载的容器。

部署到Kubernetes

# Apply the Kubernetes manifests
kubectl apply -f k8s/

部署到Kubernetes时,服务器将自动使用集群内配置。Kubernetes体现在 k8s/ 目录设置为:

  1. 创建具有适当权限的ServiceAccount
  2. 装载服务帐户令牌和证书
  3. 使用命令行参数配置服务器

您可以通过编辑清单来自定义部署:

# k8s/deployment.yaml (example)
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mcp-k8s-server
  # ...
spec:
  # ...
  template:
    # ...
    spec:
      serviceAccountName: mcp-k8s-server  # Uses the ServiceAccount defined in rbac.yaml
      containers:
      - name: mcp-k8s-server
        # ...
        command:
        - python
        - -m
        - mcp_k8s_server.main
        args:
        - --transport
        - sse
        - --port
        - "8000"
        - --host
        - "0.0.0.0"
        - --config
        - "/app/config/config.yaml"
        - --debug

这种方法使用命令和参数模式来配置服务器,这是Kubernetes中的常见模式。该命令指定要运行的可执行文件,args指定要传递给可执行文件的命令行参数。

KUBERNETES_SERVICE_HOSTKUBERNETES_SERVICE_PORT Kubernetes在创建pod时会自动设置环境变量,因此您不需要在部署清单中指定它们。

配置

服务器可以使用YAML配置文件、环境变量或命令行参数进行配置。

在集群配置中

在Kubernetes集群内运行时,服务器会自动使用集群内配置。这取决于以下因素:

  1. 环境变量:

- KUBERNETES_SERVICE_HOST:由Kubernetes设置为Kubernetesneneneba API服务器的IP地址 - KUBERNETES_SERVICE_PORT:由Kubernetes设置到Kubernetesneneneba API服务器的端口

  1. 服务帐户令牌和证书:

- /var/run/secrets/kubernetes.io/serviceaccount/token:服务帐户令牌 - /var/run/secrets/kubernetes.io/serviceaccount/ca.crt:CA证书

这些是Kubernetes在pod中运行时自动设置的。如果你在Kubernetes集群外运行服务器,但想测试集群内的配置,你需要手动设置这些环境变量并创建令牌和证书文件。

当在集群外运行时,服务器会回退到使用kubeconfig文件。

本地测试集群配置

如果你想在本地(Kubernetes集群外)测试集群内的配置,你可以手动设置所需的环境变量和文件:

  1. 设置环境变量:
   export KUBERNETES_SERVICE_HOST=
   export KUBERNETES_SERVICE_PORT=

您可以通过运行以下命令来获取这些值:

   kubectl cluster-info
  1. 创建服务帐户令牌和证书目录:
   mkdir -p /var/run/secrets/kubernetes.io/serviceaccount/
  1. 复制Kubernetes证书并创建令牌:
   # Copy the CA certificate
   kubectl config view --raw -o jsonpath='{.clusters[0].cluster.certificate-authority-data}' | base64 -d > /var/run/secrets/kubernetes.io/serviceaccount/ca.crt

   # Create a token file (you can use a service account token or generate a temporary one)
   echo "your-service-account-token" > /var/run/secrets/kubernetes.io/serviceaccount/token

请注意,此方法需要root权限才能在中创建文件 /var/run/secrets/。或者,您可以修改代码以使用不同的路径进行测试。

配置文件

# config.yaml
server:
  name: mcp-k8s-server
  transport: both  # stdio, sse, or both
  port: 8000
  host: 0.0.0.0

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

MCP资源

服务器通过模型上下文协议(MCP)提供对Kubernetes资源的访问。资源由以下URI模式标识 k8s:// 协议。

资源URI模式

资源按层次结构组织:

  • k8s://resources -所有可用Kubernetes资源的列表
  • k8s://namespaces -所有Kubernetes命名空间的列表
  • k8s:///{namespace} -命名空间中所有资源的概述

命名空间资源

  • k8s://{namespace}/{resource_type} -列出命名空间中特定类型的资源

- 例子: k8s://default/pods -'default'命名空间中的所有Pod

  • k8s://{namespace}/{resource_type}/{name} -获取特定命名空间资源

- 例子: k8s://default/deployments/nginx -'default'命名空间中的'nginx'部署

支持的资源类型:

  • pods
  • deployments
  • services
  • persistentvolumeclaims
  • events

集群范围内的资源

  • k8s:///{resource_type} -列出特定类型的群集范围的资源

- 例子: k8s:///nodes -群集中的所有节点

  • k8s:///{resource_type}/{name} -获取特定集群范围的资源

- 例子: k8s:///nodes/worker-1 -“worker-1”节点

支持的资源类型:

  • nodes
  • persistentvolumes
  • namespaces

MCP工具

服务器提供以下MCP工具:

资源信息

  • get_resources:获取特定类型的资源列表
  • get_resource:获取特定资源的详细信息
  • get_resource_status:获取特定资源的状态
  • get_resource_events:获取与特定资源相关的事件
  • get_resource_logs:获取特定资源的日志

资源操作

  • create_resource:创建新资源
  • update_resource:更新现有资源
  • delete_resource:删除资源
  • scale_deployment:扩展部署
  • restart_deployment:重新启动部署
  • execute_command:在pod中执行命令

监控

  • get_cluster_status:获取集群的整体状态
  • get_node_status:获取群集节点的状态
  • get_resource_metrics:获取特定资源的指标
  • get_cluster_metrics:获取整个集群的指标
  • check_cluster_health:对集群进行全面的健康检查,并获得详细的摘要

许可证

麻省理工学院

目录标签

目录标签

PythonKubernetes管理容器编排本地部署集群监控资源分析MCP协议

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP