Kubernetes Monitor

Kubernetes Monitor

一个只读的 Kubernetes MCP 服务器,允许通过自然语言界面(如 Claude)查询集群信息和诊断问题。

监控
云平台
开发者工具
Python
访问服务器

README

k8s-mcp

一个基于 Python 的只读 模型上下文协议 (MCP) 服务器,用于 Kubernetes 集群,它公开了一个全面的 API 来检索集群信息和诊断问题。

使用 Claude 的示例聊天

安装

前提条件

  • Python 3.8+
  • 访问 Kubernetes 集群(通过 kubeconfig 或集群内配置)
  • 必需的 Python 包(请参阅 pyproject.toml 中的 dependencies
  • uv - https://github.com/astral-sh/uv
# 安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# 克隆仓库
git clone git@github.com:vlttnv/k8s-mcp.git
cd k8s-mcp

# 安装依赖
uv venv
source .venv/bin/activate
uv sync

如果使用 Claude,请在文本编辑器中配置您的 Claude for Desktop App 配置,位于 ~/Library/Application Support/Claude/claude_desktop_config.json。 如果该文件不存在,请确保创建它。

code ~/Library/Application\ Support/Claude/claude_desktop_config.json
{
    "mcpServers": {
        "k8s-mcp": {
            "command": "uv",
            "args": [
                "--directory",
                "/ABSOLUTE/PATH/TO/PARENT/FOLDER/k8s-mcp",
                "run",
                "server.py"
            ]
        }
    }
}

您可能需要在 command 字段中放入 uv 可执行文件的完整路径。 您可以通过在 MacOS/Linux 上运行 which uv 或在 Windows 上运行 where uv 来获取此路径。

配置

该应用程序自动尝试两种方法来连接到您的 Kubernetes 集群:

  1. Kubeconfig 文件:使用您的本地 kubeconfig 文件(通常位于 ~/.kube/config
  2. 集群内配置:如果在 Kubernetes pod 中运行,则使用服务帐户令牌

如果您的 kubeconfig 设置正确,或者您在具有适当 RBAC 权限的集群中运行,则无需其他配置。

用法

示例

以下是一些有用的示例提示,您可以向 Claude 询问有关您的 Kubernetes 集群及其资源的信息:

常规集群状态

  • "我的集群的整体健康状况如何?"
  • "显示我集群中的所有命名空间"
  • "我的集群中有哪些节点可用,它们的状态是什么?"
  • "我的节点上的资源利用率如何?"

Pod 和 Deployment

  • "列出生产命名空间中的所有 pod"
  • "是否有任何 pod 处于 CrashLoopBackOff 状态?"
  • "显示我具有高重启次数的 pod"
  • "列出所有命名空间中的所有 deployment"
  • "哪些 deployment 无法取得进展?"

调试问题

  • "为什么我的 pod 在 staging 命名空间中失败?"
  • "获取生产命名空间中服务的 YAML 配置"
  • "显示我默认命名空间中最近的事件"
  • "是否有任何 pod 卡在 Pending 状态?"
  • "是什么导致我的集群中出现 ImagePullBackOff 错误?"

资源管理

  • "显示我集群中节点的资源消耗"
  • "是否有任何我应该清理的孤立资源?"
  • "列出生产命名空间中的所有服务"
  • "比较 staging 和 production 之间的资源请求"

特定资源检查

  • "显示我 kube-system 中 coredns deployment 的配置"
  • "获取 staging 中 reverse-proxy 服务的详细信息"
  • "pod xyz 中运行了哪些容器?"
  • "显示我失败 pod 的日志"

API 参考

命名空间

  • get_namespaces():列出集群中所有可用的命名空间

Pod

  • list_pods(namespace=None):列出所有 pod,可以选择按命名空间过滤
  • failed_pods():列出所有处于 Failed 或 Error 状态的 pod
  • pending_pods():列出所有处于 Pending 状态的 pod,并提供原因
  • high_restart_pods(restart_threshold=5):查找重启次数超过阈值的 pod

节点

  • list_nodes():列出所有节点及其状态
  • node_capacity():显示所有节点上的可用容量

Deployment & 服务

  • list_deployments(namespace=None):列出所有 deployment
  • list_services(namespace=None):列出所有服务
  • list_events(namespace=None):列出所有事件

资源管理

  • orphaned_resources():列出没有所有者引用的资源
  • get_resource_yaml(namespace, resource_type, resource_name):获取特定资源的 YAML 配置

许可证

MIT 许可证

贡献

欢迎贡献! 请随时提交 Pull Request。

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
DuckDuckGo MCP Server

DuckDuckGo MCP Server

一个模型上下文协议 (MCP) 服务器,通过 DuckDuckGo 提供网页搜索功能,并具有内容获取和解析的附加功能。

精选
Python
contentful-mcp

contentful-mcp

在你的 Contentful Space 中更新、创建、删除内容、内容模型和资源。

精选
TypeScript
Supabase MCP Server

Supabase MCP Server

一个模型上下文协议(MCP)服务器,它提供对 Supabase 管理 API 的编程访问。该服务器允许 AI 模型和其他客户端通过标准化的接口来管理 Supabase 项目和组织。

精选
JavaScript
YouTube Transcript MCP Server

YouTube Transcript MCP Server

这个服务器用于获取指定 YouTube 视频 URL 的字幕,从而可以与 Goose CLI 或 Goose Desktop 集成,进行字幕提取和处理。

精选
Python
mermaid-mcp-server

mermaid-mcp-server

一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。

精选
JavaScript