Fleet GitOps MCP服务器

用于Fleet的模型上下文协议(MCP)服务器,使AI助手能够与Fleet的GitOps功能交互。

  • by rossella
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 rossella/fleet-mcp

使用说明

舰队MCP服务器

Fleet的模型上下文协议(MCP)服务器,使AI助手能够与Fleet的GitOps功能进行交互。

先决条件

  • 转到1.21或更高版本 (MCP SDK要求)
  • 安装了Fleet的Kubernetes集群
  • 访问凭据(kubeconfig或Rancher令牌)

概述

此MCP服务器通过MCP工具公开Fleet资源(GitRepos、Bundles、BundleDeployment、Clusters、ClusterGroups)和操作,允许AI助手:

  • 查询GitRepo状态和部署
  • 列出并检查捆绑包和捆绑部署
  • 管理车队资源(创建、更新、删除)
  • 诊断部署问题
  • 监控群集运行状况

建筑

服务器遵循以下架构模式 牧场主ai-mcp:

  • MCP服务器:支持SSE流媒体的HTTP处理程序
  • 工具:作为MCP工具实施的舰队特定操作
  • 客户端:Kubernetes动态客户端包装器
  • 转换器:将舰队资源类型映射到GroupVersionResources
  • 回应:格式化LLM和UI消费的响应

认证

服务器使用Rancher令牌身份验证:

  • R_token:牧场主持牌人令牌(必填)
  • R_url:Rancher服务器URL(必填)

工具

读取操作

  • listGitRepos -在命名空间中列出GitRepos
  • getGitRepo -获取GitRepo的详细信息
  • getGitRepoStatus -获取GitRepo部署状态
  • listBundles -列出捆绑包
  • getBundle -获取捆绑包详细信息
  • getBundleDeployments -列出捆绑包的捆绑部署
  • listClusters -列出托管集群
  • getCluster -获取集群详细信息
  • listClusterGroups -列出群集组
  • inspectGitRepo -利用相关资源进行深入检查

写入操作

  • createGitRepo -创建新的GitRepo
  • updateGitRepo -更新GitRepo规范
  • patchGitRepo -用JSON补丁修补GitRepo
  • deleteGitRepo -删除GitRepo
  • pauseGitRepo --暂停/不愉快
  • forceSyncGitRepo -强制GitRepo重新部署
  • updateBundleTarget -修改捆绑包目标
  • pauseCluster -暂停/取消暂停群集
  • createClusterGroup -创建集群组
  • deleteClusterGroup -删除群集组

诊断操作

  • getGitRepoEvents -获取GitRepo的事件
  • getBundleDeploymentDetails -BundleDeployment详细故障排除
  • getFleetAgentStatus -检查车队代理的健康状况

发展

# Build
go build -o fleet-mcp

# Run locally
./fleet-mcp

# Run tests
go test ./...

部署

服务器被设计为在具有适当RBAC的Kubernetes集群中运行:

kubectl apply -f package/fleet-mcp.yaml

TLS配置

服务器需要Kubernetes secrets的TLS证书:

  • cattle-mcp-tls -服务器证书
  • cattle-mcp-ca -CA证书

集 INSECURE_SKIP_TLS=true 对于开发环境。