一个基于Python的只读模型上下文协议(MCP)服务器,适用于Kubernetes集群,提供全面的API来检索集群信息并诊断问题。
pyproject.toml中的dependencies)# 安装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,请在文本编辑器中打开位于~/Library/Application Support/Claude/claude_desktop_config.json的Claude桌面应用配置文件。如果该文件不存在,请创建它。
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"
]
}
}
}
您可能需要在命令字段中放置完整的uv可执行文件路径。您可以通过在MacOS/Linux上运行
which uv或在Windows上运行where uv来获取此路径。
应用程序会自动尝试两种方法连接到您的Kubernetes集群:
~/.kube/config)如果您的kubeconfig设置正确,或者您在具有适当RBAC权限的集群内运行,则无需额外配置。
这里有一些有用的提示,您可以向Claude询问有关您的Kubernetes集群及其资源的问题:
get_namespaces():列出集群中所有可用的命名空间list_pods(namespace=None):列出所有Pod,可选按命名空间过滤failed_pods():列出所有处于Failed或Error状态的Podpending_pods():列出所有处于Pending状态的Pod及其原因high_restart_pods(restart_threshold=5):找到重启次数超过阈值的Podlist_nodes():列出所有节点及其状态node_capacity():显示所有节点的可用容量list_deployments(namespace=None):列出所有部署list_services(namespace=None):列出所有服务list_events(namespace=None):列出所有事件orphaned_resources():列出没有拥有者引用的资源get_resource_yaml(namespace, resource_type, resource_name):获取特定资源的YAML配置欢迎贡献!请随时提交拉取请求。