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
YouTube Transcript MCP Server

YouTube Transcript MCP Server

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

精选
Python
Supabase MCP Server

Supabase MCP Server

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

精选
JavaScript
mermaid-mcp-server

mermaid-mcp-server

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

精选
JavaScript