MCP CAPI服务器
用于集群API(CAPI)的模型上下文协议(MCP)服务器,通过CAPI实现大型语言模型(LLM)和Kubernetes集群管理之间的无缝集成。
概述
MCP CAPI服务器提供了人工智能助手(如Claude、GPT等)与Cluster API之间的桥梁,允许在多个基础设施提供商之间进行自然语言交互,以管理Kubernetes集群。
特性
- 群集管理:创建、更新、扩展和删除Kubernetes集群
- 多提供商支持:适用于AWS、Azure、GCP、vSphere等
- 机器操作:管理控制平面和工作节点
- 实时监控:观察集群状态变化和事件
- 资源发现:通过MCP资源浏览CAPI资源
- 引导式工作流程:复杂操作的交互式提示
- 多运输支持:通过stdio、服务器发送事件(SSE)或流式HTTP连接
- 增强的CLI:版本管理、自我更新功能和全面的帮助系统
- 向后兼容的:保持与现有配置和脚本的兼容性
建筑
MCP CAPI服务器使用以下组件构建:
快速开始
先决条件
- 转到1.24.4或更高版本
- 访问CAPI管理集群
- 为管理集群配置Kubeconfig
安装
# Clone the repository
git clone https://github.com/giantswarm/mcp-capi.git
cd mcp-capi
# Build the server
make build
# Run the server
make run自我更新
服务器包括一个内置的自我更新机制:
mcp-capi self-update用法
CLI命令
MCP服务器提供了几个命令:
$ mcp-capi --help
mcp-capi is a Model Context Protocol (MCP) server that provides
tools for interacting with Cluster API (CAPI) clusters. It offers various capabilities
including cluster management, machine operations, scaling, and infrastructure
provider management.
When run without subcommands, it starts the MCP server (equivalent to 'mcp-capi serve').
Usage:
mcp-capi [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
help Help about any command
self-update Update mcp-capi to the latest version
serve Start the MCP CAPI server
version Print the version number of mcp-capi
Flags:
-h, --help help for mcp-capi
-v, --version version for mcp-capi
Use "mcp-capi [command] --help" for more information about a command.基本用法(向后兼容)
使用stdio传输以默认设置启动MCP服务器:
# Both commands are equivalent and start the server
mcp-capi
mcp-capi serve多运输支持
服务器支持三种不同部署场景的传输类型:
标准I/O(默认)
最适合MCP客户端集成和开发:
mcp-capi serve --transport stdio服务器发送事件(SSE)
非常适合web应用程序和基于浏览器的客户端:
mcp-capi serve --transport sse --http-addr :8080可流式传输的HTTP
非常适合基于HTTP的集成和类似REST的交互:
mcp-capi serve --transport streamable-http --http-addr :8080高级配置示例
# Run with SSE transport on custom port with custom endpoints
mcp-capi serve \
--transport sse \
--http-addr :9090 \
--sse-endpoint /events \
--message-endpoint /messages
# Run with streamable HTTP transport
mcp-capi serve \
--transport streamable-http \
--http-addr :8080 \
--http-endpoint /api/mcp版本管理
# Check current version
mcp-capi version
mcp-capi --version
# Update to latest version
mcp-capi self-update与AI助手集成
此MCP服务器可以与支持模型上下文协议的各种AI助手集成:
- 光标:服务器可以与Cursor集成,用于AI驱动的开发
- VSCode内部人员:与VSCode Insider兼容,以增强编码辅助
- 克劳德桌面版:将服务器添加到Claude Desktop配置中
- 自定义MCP客户端:使用任何兼容MCP的客户端进行连接
MCP客户端配置示例
标准I/O传输(推荐)
{
"servers": {
"capi": {
"command": "/path/to/mcp-capi",
"env": {
"KUBECONFIG": "/path/to/kubeconfig"
}
}
}
}苏格兰和南方能源公司运输
{
"servers": {
"capi": {
"url": "http://localhost:8080/sse",
"transport": "sse"
}
}
}可流式HTTP传输
{
"servers": {
"capi": {
"url": "http://localhost:8080/mcp",
"transport": "http"
}
}
}可用工具
群集管理
capi_create_cluster-创建新的CAPI集群capi_list_clusters-列出所有集群capi_get_cluster-获取集群详细信息capi_delete_cluster-删除群集capi_scale_cluster-缩放群集节点
机器管理
capi_list_machines-列出机器capi_get_machine-获取机器详细信息capi_delete_machine-删除特定机器capi_remediate_machine-触发机器健康检查修复
机器部署操作
capi_create_machinedeployment-创建新的工作节点池capi_list_machinedeployments-列出计算机部署capi_scale_machinedeployment-缩放工作节点capi_update_machinedeployment-更新MachineDeployment配置capi_rollout_machinedeployment-触发滚动更新
机组操作
capi_list_machinesets-列出机器组capi_get_machineset-获取机器设置详细信息
节点操作
capi_drain_node-安全地排空节点capi_cordon_node-已加密/未加密节点capi_node_status-从工作负载集群获取节点状态
基础设施提供商工具
通用的
capi_list_infrastructure_providers-列出可用的提供商capi_get_provider_config-获取提供程序配置要求
亚马逊云服务
capi_aws_list_clusters-列出AWS集群capi_aws_get_cluster-获取AWS集群详细信息capi_aws_create_cluster-创建AWS集群(占位符)capi_aws_update_vpc-更新VPC配置(占位符)capi_aws_manage_security_groups-管理安全组(占位符)capi_aws_get_machine_template-获取/列出AWS机器模板
Azure
capi_azure_list_clusters-列出Azure群集capi_azure_get_cluster-获取Azure群集详细信息capi_azure_manage_resource_group-管理资源组(占位符)capi_azure_network_config-配置Azure网络(占位符)
谷歌云平台
capi_gcp_list_clusters-列出GCP集群capi_gcp_get_cluster-获取GCP集群详细信息capi_gcp_manage_network-管理GCP网络(占位符)
vSphere
capi_vsphere_list_clusters-列出vSphere群集capi_vsphere_get_cluster-获取vSphere群集详细信息capi_vsphere_manage_vms-管理vSphere虚拟机(占位符)
资源
服务器通过MCP资源公开CAPI数据:
capi://clusters-所有集群列表capi://clusters/{name}-特定集群详细信息capi://machines-所有机器列表capi://providers-可用的基础设施提供商
配置
服务器可以通过环境变量进行配置:
KUBECONFIG-kubeconfig文件的路径LOG_LEVEL-日志记录级别(调试、信息、警告、错误)
部署
码头工人
你可以在Docker容器中运行服务器:
FROM golang:1.24.4-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o mcp-capi
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /app/mcp-capi .
EXPOSE 8080
CMD ["./mcp-capi", "serve", "--transport", "sse", "--http-addr", ":8080"]系统化服务
创建用于自动启动的systemd服务:
[Unit]
Description=MCP CAPI Server
After=network.target
[Service]
Type=simple
User=capi
ExecStart=/usr/local/bin/mcp-capi serve
Environment=KUBECONFIG=/etc/kubernetes/admin.conf
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target发展
项目结构
mcp-capi/
├── cmd/ # Command implementations
│ ├── root.go # Root Cobra command
│ ├── serve.go # Server command with multi-transport support
│ ├── version.go # Version command
│ ├── selfupdate.go # Self-update command
│ ├── doc.go # Package documentation
│ └── *.go # Tool handlers and server logic
├── pkg/ # Public packages
│ ├── capi/ # CAPI client and utilities
│ ├── tools/ # MCP tool implementations
│ ├── resources/ # MCP resource handlers
│ └── prompts/ # MCP prompt definitions
├── internal/ # Private packages
├── docs/ # Documentation
└── examples/ # Usage examples建筑
# Build for current platform
make build
# Build for multiple platforms
make release
# Run tests
make test
# Run with coverage
make test-coverage下载CRD
该项目包括从上游CAPI提供商下载自定义资源定义(CRD)的目标:
# Download all CRDs from all providers
make download-crds
# Download CRDs for specific providers
make download-capi-crds # Core CAPI CRDs
make download-capa-crds # AWS provider CRDs
make download-capz-crds # Azure provider CRDs
make download-capv-crds # vSphere provider CRDs
make download-capvcd-crds # Cloud Director provider CRDs
make download-capg-crds # GCP provider CRDs您可以通过设置环境变量来覆盖默认版本:
# Example: Download CAPI CRDs for a specific version
CAPI_VERSION=v1.11.2 make download-capi-crds贡献
请参阅 贡献.md 了解如何为这个项目做出贡献的指导方针。
许可证
此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。
问题和支持
- GitHub问题:
- 文档: docs/
路线图
查看我们的 了解完整的路线图和计划中的功能。
