k0rdent MCP服务器
⚠️ 实验开发工具 –早期阶段,预计问题
🚧 仅限本地主机 –无TLS,需要管理员kubeconfig
🤖 在人工智能的帮助下开发 –代码质量和安全尚未准备好投入生产
使用风险自负
您使用此实验性MCP服务器的风险由您自行承担。Randy Bias和Mirantis,股份有限公司均不对您的使用承担任何责任。这是使用AI代理通过MCP协议控制k0rdent管理和子集群的概念验证。它绝对没有准备好生产。
这是什么
一个实验性的MCP服务器,通过模型上下文协议向AI助手公开k0rdent集群管理功能。这是一个 开发工具 适用于希望探索MCP集成而非生产就绪解决方案的k0rdent开发人员和早期采用者。
要点:
- 仅在本地主机上运行(不支持TLS)
- 需要管理员kubeconfig到现有的k0rdent管理集群
- 不为您提供管理集群
- 在人工智能的帮助下构建-代码质量需要提高
- 提供商支持各不相同:Azure已测试,AWS最低,GCP未测试
这不是什么
- ❌ 可生产的
- ❌ 不是独立工具(需要现有的k0rdent集群)
- ❌ 网络暴露不安全(仅限本地主机)
- ❌ 未在所有提供商中进行全面测试
- ❌ 不适用于RBAC受限环境(需要管理员访问权限)
先决条件(全部必填)
在开始之前,您必须:
- 现有的k0rdent管理集群 这个工具不会为你创建一个。您需要一个正在运行的k0rdent安装。
- 管理员kubeconfig –需要完全访问群集。未测试RBAC限制。
- 转到1.24+ –从源代码构建。
- MCP兼容客户端 –克劳德桌面推荐。
- 知识 –了解集群部署、ServiceTemplates、凭据等。
- 本地主机部署 -没有远程访问,没有TLS。
已知限制和问题
使用前请仔细阅读本节内容:
提供商支持
- 谷歌云平台:未经测试,可能根本不起作用
- Azure:有效,但需要手动订阅ID参数(未自动检测)
- 亚马逊云服务:测试最少,预计会出现问题
身份验证和安全
- 仅限管理员kubeconfig –没有OIDC支持,没有RBAC强制
- AI辅助代码 –未经安全审查,使用风险自负
- 仅限本地主机 –无TLS,仅在127.0.0.1上运行
- 无身份验证模式 –仅基于kubeconfig的访问
功能差距
- 目录操作 –同步可能有错误
- 并行操作 –比赛条件可能
- 错误恢复 –可能会留下孤立的云资源
- 资源清理 –不保证故障
部署警告
- 创建真正的云资源 –成本适用于您的云帐户
- 可能留下孤儿 –失败的部署可能无法完全清理
- 实验性 –预计崩溃和意外行为
快速入门(实验)
- 克隆存储库
git clone https://github.com/randybias/k0rdent-mcp-server.git
cd k0rdent-mcp-server- 构建服务器
go build -o server cmd/server/main.go- 设置所需的环境变量
# Required: Point to your k0rdent cluster kubeconfig
export K0RDENT_MGMT_KUBECONFIG_PATH=/path/to/admin-kubeconfig
# Optional: Override default (defaults to 127.0.0.1:6767 for security)
export LISTEN_ADDR=127.0.0.1:3000
# Optional: Set log level
export LOG_LEVEL=debug- 启动服务器
./server start- 配置Claude代码 (详见下文说明)
- 先尝试安全操作
- 列出命名空间(最安全) - 列出集群模板 - 列出凭据
警告:集群部署操作将创建真正的云资源并产生成本。
Claude代码设置
安装
- 安装Claude代码 (如果尚未安装)
- 配置MCP服务器连接
将k0rdent MCP服务器添加到您的Claude Code配置中:
- 最简单的方法是使用 克劳德mcp命令 从CLI。
- 启动k0rdent MCP服务器
- 如上文快速入门所示
- 启动克劳德代码 并验证连接
claude- 克劳德代码与MCP
- Claude Code中的mcp命令将带您到达需要去的地方:
/mcp提示:如果您重新启动服务器,则需要使用 /mcp 命令。
示例用法
连接后,您可以使用自然语言与您的k0rdent集群进行交互:
安全勘探命令
"List all namespaces in the management cluster"
"Show me all available cluster templates"
"What credentials are configured for Azure?"
"List all cluster deployments"集群部署示例
"Deploy a new Azure cluster named 'dev-cluster' in eastus region using Standard_D2s_v3 VMs"
"Create an AWS cluster with 3 control plane nodes and 5 workers in us-west-2"
"Show me the provisioning status of cluster 'prod-cluster' in namespace 'kcm-system'"服务管理示例
"List all ServiceTemplates available in the catalog"
"Install the ingress-nginx ServiceTemplate from the catalog"
"Apply the monitoring ServiceTemplate to cluster 'dev-cluster'"
"What services are currently running on cluster 'prod-cluster'?"监控和故障排除
"Subscribe to provisioning updates for cluster 'dev-cluster' in namespace 'kcm-system'"
"Show me recent events in the kcm-system namespace"
"Get logs from pod 'controller-manager-xyz' in namespace 'kcm-system'"
"What's the current state of my cluster deployment 'staging-cluster'?"清理
"Delete cluster 'dev-cluster' from namespace 'kcm-system'"
"Remove the test-cluster and wait for deletion to complete"与Claude代码一起使用的提示
- 从只读操作开始 熟悉集群状态
- 使用自然语言 Claude Code理解意图,而不仅仅是命令
- 请求确认 关于破坏性操作(克劳德代码会提示您)
- 监控成本 –集群部署创建真正的云资源
- 使用订阅 用于长时间运行的操作,如集群配置
- 检查群集状态 手术前后
getState工具
什么有效(最低限度测试)
这些功能已经过测试,应该可以正常工作:
- Azure群集部署 –如果您提供订阅ID,则有效
- 集群监控 –通过订阅配置进度
k0rdent://cluster-monitor/{namespace}/{name} - 命名空间操作 -列出命名空间和基本K8s操作
- 事件流 –通过以下方式查看命名空间事件
k0rdent://events/{namespace} - Pod日志 –尾箱日志通过
k0rdent://podlogs/{namespace}/{pod}/{container} - 服务附件 –将ServiceTemplates附加到正在运行的集群(需要更多测试)
- 凭据管理 –列出提供商凭据
什么是未经测试或损坏的
这些功能可能不起作用:
- GCP部署 –完全未经测试,可能已损坏
- AWS部署 –测试最少,可能有问题
- 目录操作 –同步中的已知错误
- 非管理员访问 –未实现RBAC过滤
- 并行操作 –比赛条件可能
- 错误恢复 –可能会不顺利地失败
- 资源清理 –失败时可能出现孤立资源
配置
服务器完全通过环境变量配置(无配置文件):
必需变量
# Kubeconfig path (required)
export K0RDENT_MGMT_KUBECONFIG_PATH=/path/to/kubeconfig可选变量
# Server configuration
export LISTEN_ADDR=127.0.0.1:6767 # Listen address (default: 127.0.0.1:6767)
# Use 0.0.0.0:6767 to bind to all interfaces (NOT RECOMMENDED - no TLS)
export AUTH_MODE=DEV_ALLOW_ANY # Auth mode (default: DEV_ALLOW_ANY)
# Options: DEV_ALLOW_ANY, OIDC_REQUIRED
# Kubernetes configuration
export K0RDENT_MGMT_CONTEXT=my-context # Override kubeconfig context
export K0RDENT_NAMESPACE_FILTER='^kcm-.*' # Namespace filter regex
# Logging configuration
export LOG_LEVEL=info # Log level (debug, info, warn, error)
export LOG_EXTERNAL_SINK_ENABLED=false # Enable external JSON logging
# Cluster provisioning defaults
export CLUSTER_GLOBAL_NAMESPACE=kcm-system # Global namespace (default: kcm-system)
export CLUSTER_DEFAULT_NAMESPACE_DEV=kcm-system # Dev mode namespace
export CLUSTER_DEPLOY_FIELD_OWNER=mcp.clusters # Server-side apply owner备注:未使用config.yaml文件。所有配置都是通过环境变量或命令行标志进行的(--listen, --debug, --log-level).
工具概述
服务器公开了以下MCP工具:
| 工具名称 | 用途 | 状态 |
|---|---|---|
| 群集管理 | ||
k0rdent.mgmt.clusterDeployments.list | 列出所有群集部署 | 有效 |
k0rdent.mgmt.clusterDeployments.listAll | 使用选择器列出集群部署 | 有效 |
k0rdent.mgmt.clusterDeployments.getState | 获取包括服务在内的群集状态(WIP) | 有效 |
k0rdent.mgmt.clusterDeployments.delete | 删除群集部署 | 有效 |
k0rdent.provider.aws.clusterDeployments.deploy | 将子集群部署到AWS提供商 | 最少的测试 |
k0rdent.provider.azure.clusterDeployments.deploy | 将子群集部署到Azure提供程序 | 已测试,需要subscriptionID |
k0rdent.provider.gcp.clusterDeployments.deploy | 将子集群部署到GCP提供程序 | 未测试 |
| 服务模板和服务管理 | ||
k0rdent.mgmt.clusterDeployments.services.apply | 将ServiceTemplate应用于集群 | 大部分工作;可能是边缘情况;不处理参数 |
k0rdent.mgmt.serviceTemplates.list | 列出已安装的ServiceTemplates管理服务器 | 工作 |
k0rdent.mgmt.serviceTemplates.install_from_catalog | 从目录将ServiceTemplate安装到管理服务器 | 可能有错误;大部分测试 |
k0rdent.mgmt.serviceTemplates.delete | 从管理服务器中删除ServiceTemplate | 工作 |
k0rdent.mgmt.multiClusterServices.list | 列出多集群服务 | 未测试 |
| 目录操作 | ||
k0rdent.catalog.serviceTemplates.list | 列表目录ServiceTemplates | Works |
| 提供商和凭据 | ||
k0rdent.mgmt.providers.list | 列出基础设施提供商 | 有效 |
k0rdent.mgmt.providers.listCredentials | 列出提供程序凭据 | 有效 |
k0rdent.mgmt.providers.listIdentities | 列出ClusterIdentity资源 | 工作 |
| 群集模板 | ||
k0rdent.mgmt.clusterTemplates.list | 列出集群模板 | 有效 |
| Kubernetes操作 | ||
k0rdent.mgmt.namespaces.list | 列出命名空间 | 有效 |
k0rdent.mgmt.events.list | 列出命名空间事件 | 有效 |
k0rdent.mgmt.podLogs.get | 获取pod日志 | 有效 |
MCP资源(订阅)
服务器还提供流媒体资源(大部分未经测试):
| 资源URI | 目的 | 状态 |
|---|---|---|
k0rdent://cluster-monitor/{namespace}/{name} | 流式群集配置更新 | 已在Azure上测试 |
k0rdent://events/{namespace} | 流命名空间事件 | 有效 |
k0rdent://podlogs/{namespace}/{pod}/{container} | 流式吊舱日志 | 有效 |
有关详细的工具文档,请参阅 docs/ 目录。
文档
- 群集资源调配 –部署工作流(Azure焦点)
- 提供商特定工具 –每个提供商的部署详细信息
- 集群监控 –实时配置更新
- 目录操作 –安装服务模板
- 现场测试 –测试剧本以进行验证
- 故障排除指南 –常见问题和解决方案
- 贡献指南 –开发工作流程和OpenSpec流程
- 开发设置 当地发展环境
有关拟议的更改和规范,请参阅 openspec/ 目录或运行 openspec list.
贡献
这个实验项目是在人工智能的帮助下建立的。代码质量和安全性需要改进。欢迎捐款,特别是:
- 测试GCP和AWS部署路径
- 修复目录同步错误
- 改进错误处理和恢复
- 添加适当的RBAC支持
- 安全审查和强化
- 修复AI生成的代码问题
- 为未测试的代码路径编写测试
看 贡献.md 了解OpenSpec工作流程和开发指南。
安全与免责声明
使用前请阅读以下内容:
- ⚠️ 可生产的 –实验软件,使用风险自负
- ⚠️ AI辅助代码 –可能包含安全漏洞
- ⚠️ 需要管理员权限 –没有RBAC强制,假设完全访问集群
- ⚠️ 仅限本地主机 –没有TLS,对网络暴露不安全
- ⚠️ 创建真正的云资源 –费用适用于您的账户
- ⚠️ 可能会留下孤儿资源 –失败的操作可能无法清理
- ⚠️ 无担保 –使用风险自负
建议:
- 仅使用非生产集群
- 部署前设置云成本警报
- 运营后审查云资源
- 确保管理员kubeconfig的安全
- 不要将服务器暴露在网络中
路线图(也许)
未来可能的改进(无承诺):
- 修复并测试GCP部署路径
- 稳定AWS部署
- 修复目录同步错误
- 添加RBAC支持(非管理员访问)
- 为远程访问添加TLS支持
- 安全审查和强化
- 生产部署选项
- 改进了错误处理和恢复
看 openspec list 详细的拟议变更。
获取帮助
- 问题: https://github.com/randybias/k0rdent-mcp-server/issues
- 讨论: https://github.com/randybias/k0rdent-mcp-server/discussions
- k0rdent文档: https://docs.k0rdent.io
- MCP协议: https://modelcontextprotocol.io
有关开发问题,请参阅 贡献.md.
许可证
\[在此处添加许可证信息\]
