# Kubernetes语控服务器
## 基本信息
- Slug: `flux159-mcp-server-kubernetes`
- Source: modelscope
- Publisher: @Flux159/mcp-server-kubernetes
- Categories: cloud-platforms / virtualization / developer-tools
- Hosted: Yes
- License: MIT License
- Source URL: https://www.modelscope.cn/mcp/servers/@Flux159/mcp-server-kubernetes
## 简介
一种连接到 Kubernetes 集群的服务器，它通过自然语言命令启用管理功能，支持列出资源、创建/删除 Pod 以及安装 Helm 图表等操作。
## 安装提示

```bash
服务器将自动连接到您当前的 kubectl 上下文。请确保您已： 1. 安装了 kubectl 并将其添加到 PATH 中 2. 配置了一个有效的 kubeconfig 文件和上下文 3. 配置了 kubectl 可以访问的 Kubernetes 集群（例如 minikube、Rancher Desktop、GKE 等） 4. 安装了 Helm v3 并将其添加到 PATH 中（不需要 Tiller）。如果您不打算使用 Helm，这是可选的。 您可以通过让 Claude 列出您的 pods 或创建一个测试部署来验证连接。 如果出现错误，请打开标准终端并运行 `kubectl get pods` 以检查您是否可以在没有凭证问题的情况下连接到集群。 ## 使用 mcp-chat [mcp-chat](https://github.com/Flux159/mcp-chat) 是一个用于 MCP 服务器的 CLI 聊天客户端。您可以使用它与 Kubernetes 服务器进行交互。
```

## MCP Server 详情

# MCP Server Kubernetes

[![CI](https://github.com/Flux159/mcp-server-kubernetes/actions/workflows/ci.yml/badge.svg)](https://github.com/yourusername/mcp-server-kubernetes/actions/workflows/ci.yml)
[![Language](https://img.shields.io/github/languages/top/Flux159/mcp-server-kubernetes)](https://github.com/yourusername/mcp-server-kubernetes)
[![Bun](https://img.shields.io/badge/runtime-bun-orange)](https://bun.sh)
[![Kubernetes](https://img.shields.io/badge/kubernetes-%23326ce5.svg?style=flat&logo=kubernetes&logoColor=white)](https://kubernetes.io/)
[![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=flat&logo=docker&logoColor=white)](https://www.docker.com/)
[![Stars](https://img.shields.io/github/stars/Flux159/mcp-server-kubernetes)](https://github.com/Flux159/mcp-server-kubernetes/stargazers)
[![Issues](https://img.shields.io/github/issues/Flux159/mcp-server-kubernetes)](https://github.com/Flux159/mcp-server-kubernetes/issues)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/Flux159/mcp-server-kubernetes/pulls)
[![Last Commit](https://img.shields.io/github/last-commit/Flux159/mcp-server-kubernetes)](https://github.com/Flux159/mcp-server-kubernetes/commits/main)
[![smithery badge](https://smithery.ai/badge/mcp-server-kubernetes)](https://smithery.ai/protocol/mcp-server-kubernetes)

可以连接到 Kubernetes 集群并管理它的 MCP 服务器。

[https://github.com/user-attachments/assets/f25f8f4e-4d04-479b-9ae0-5dac452dd2ed](https://github.com/user-attachments/assets/f25f8f4e-4d04-479b-9ae0-5dac452dd2ed)

<a href="https://glama.ai/mcp/servers/w71ieamqrt"><img width="380" height="200" src="https://glama.ai/mcp/servers/w71ieamqrt/badge" /></a>

## 使用 Claude Desktop

```json
{
  "mcpServers": {
    "kubernetes": {
      "command": "npx",
      "args": ["mcp-server-kubernetes"]
    }
  }
}
```


服务器将自动连接到您当前的 kubectl 上下文。请确保您已：

1. 安装了 kubectl 并将其添加到 PATH 中
2. 配置了一个有效的 kubeconfig 文件和上下文
3. 配置了 kubectl 可以访问的 Kubernetes 集群（例如 minikube、Rancher Desktop、GKE 等）
4. 安装了 Helm v3 并将其添加到 PATH 中（不需要 Tiller）。如果您不打算使用 Helm，这是可选的。

您可以通过让 Claude 列出您的 pods 或创建一个测试部署来验证连接。

如果出现错误，请打开标准终端并运行 `kubectl get pods` 以检查您是否可以在没有凭证问题的情况下连接到集群。

## 使用 mcp-chat

[mcp-chat](https://github.com/Flux159/mcp-chat) 是一个用于 MCP 服务器的 CLI 聊天客户端。您可以使用它与 Kubernetes 服务器进行交互。

```shell
npx mcp-chat --server "npx mcp-server-kubernetes"
```


或者，您可以传递上面现有的 Claude Desktop 配置文件（Linux 应该传递正确的配置路径）：

Mac:

```shell
npx mcp-chat --config "~/Library/Application Support/Claude/claude_desktop_config.json"
```


Windows:

```shell
npx mcp-chat --config "%APPDATA%\Claude\claude_desktop_config.json"
```


## 功能

- [x] 连接到 Kubernetes 集群
- [x] 列出所有 pod、服务、部署、节点
- [x] 创建、描述、删除一个 pod
- [x] 列出所有命名空间，创建一个命名空间
- [x] 创建自定义的 pod 和部署配置，更新部署副本数
- [x] 从 pod 获取日志以进行调试（支持 pod、部署、作业和标签选择器）
- [x] 支持 Helm v3 安装图表
  - 使用自定义值安装图表
  - 卸载发布
  - 升级现有发布
  - 支持命名空间
  - 支持版本指定
  - 支持自定义仓库
- [x] kubectl explain 和 kubectl api-resources 支持
- [x] 从集群获取 Kubernetes 事件
- [x] 端口转发到 pod 或服务
- [x] 创建、列出和描述定时任务

## 本地开发

```bash
git clone https://github.com/Flux159/mcp-server-kubernetes.git
cd mcp-server-kubernetes
bun install
```


### 开发工作流

1. 在开发模式下启动服务器（监视文件更改）：

```bash
bun run dev
```


2. 运行单元测试：

```bash
bun run test
```


3. 构建项目：

```bash
bun run build
```


4. 使用 [Inspector](https://github.com/modelcontextprotocol/inspector) 进行本地测试

```bash
npx @modelcontextprotocol/inspector node dist/index.js
# Follow further instructions on terminal for Inspector link
```


5. 使用 Claude Desktop 进行本地测试

```json
{
  "mcpServers": {
    "mcp-server-kubernetes": {
      "command": "node",
      "args": ["/path/to/your/mcp-server-kubernetes/dist/index.js"]
    }
  }
}
```


6. 使用 [mcp-chat](https://github.com/Flux159/mcp-chat) 进行本地测试

```bash
npm run chat
```


## 贡献

请参阅 [CONTRIBUTING.md](CONTRIBUTING.md) 文件以获取详细信息。

## 高级

有关更高级的信息，如使用 SSE 传输，请参阅 [ADVANCED_README.md](ADVANCED_README.md)。

## 架构

本节描述了 MCP Kubernetes 服务器的高层架构。

### 请求流程

下面的序列图说明了请求如何在系统中流动：

```mermaid
sequenceDiagram
    participant Client
    participant Transport as StdioTransport
    participant Server as MCP Server
    participant Handler as Request Handler
    participant K8sManager as KubernetesManager
    participant K8s as Kubernetes API

    Client->>Transport: Send Request via STDIO
    Transport->>Server: Forward Request

    alt Tools Request
        Server->>Handler: Route to tools handler
        Handler->>K8sManager: Execute tool operation
        K8sManager->>K8s: Make API call
        K8s-->>K8sManager: Return result
        K8sManager-->>Handler: Process response
        Handler-->>Server: Return tool result
    else Resource Request
        Server->>Handler: Route to resource handler
        Handler->>K8sManager: Get resource data
        K8sManager->>K8s: Query API
        K8s-->>K8sManager: Return data
        K8sManager-->>Handler: Format response
        Handler-->>Server: Return resource data
    end

    Server-->>Transport: Send Response
    Transport-->>Client: Return Final Response
```


## 发布新版本

转到 [releases 页面](https://github.com/Flux159/mcp-server-kubernetes/releases)，点击 "Draft New Release"，点击 "Choose a tag" 并通过键入新的版本号（使用 "v{major}.{minor}.{patch}" semver 格式）来创建一个新的标签。然后，写一个发布标题 "Release v{major}.{minor}.{patch}" 和描述/变更日志（如果需要），并点击 "Publish Release"。

这将创建一个新的标签，该标签将通过 cd.yml 工作流触发新的发布构建。一旦成功，新的发布将被发布到 [npm](https://www.npmjs.com/package/mcp-server-kubernetes)。请注意，无需手动更新 package.json 版本，因为工作流会自动更新 package.json 文件中的版本号并将提交推送到 main 分支。

## 不计划

身份验证 / 将集群添加到 kubectx。

