Token导航 LogoToken导航TokenDH.com
Gcp Openshift MCP Server logo
运维云端stdio官方级别未说明来源级核验

Gcp Openshift MCP Server

MCP Server

一个用于在Google Cloud Platform上管理OpenShift集群的智能模型上下文协议(MCP)服务器,支持集群创建、删除、状态查询及Submariner集成。

工具数

9

提示词数

0

GitHub Stars

0

资源数

0
Python云端部署Docker

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

aswinsuryan

提供方

aswinsuryan

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

GCP OpenShift MCP服务器

一个智能模型上下文协议(MCP)服务器,用于管理谷歌云平台(GCP)上的OpenShift集群。

特性

  • 创建OpenShift集群:在GCP上部署具有自定义名称和配置的OpenShift集群
  • 删除群集:清理集群和所有相关的GCP资源
  • 群集管理:获取状态、列出集群并检索kubeconfigs
  • 潜艇云准备:在GCP、AWS、Azure和OpenStack上为Submariner准备云基础设施(防火墙规则、网关节点)
  • Kubeconfig管理:重命名上下文/用户并合并多个kubeconfigs以避免冲突
  • 潜艇集成:与Submariner MCP服务器无缝协作,实现多集群联网
  • 可重复使用的:接受自定义集群名称作为灵活部署的参数

先决条件

在使用此MCP服务器之前,请确保已安装以下工具:

  1. openshift安装 -OpenShift安装程序CLI

- 下载地址:https://console.redhat.com/openshift/downloads - 验证: openshift-install version

  1. gcloud -谷歌云SDK

- 安装:https://cloud.google.com/sdk/docs/install - 配置: gcloud auth logingcloud config set project YOUR_PROJECT_ID - 验证: gcloud version

  1. kubectl 的 -Kubernetes命令行界面

- 安装:https://kubernetes.io/docs/tasks/tools/ - 验证: kubectl version --client

  1. subctl -Submariner CLI(用于cloud_prepare操作)

- 安装:https://submariner.io/operations/deployment/subctl/ - 验证: subctl version

  1. Python 3.10+

- 验证: python3 --version

  1. SSH密钥对

- 生成: ssh-keygen -t rsa -b 4096

安装

  1. 克隆或导航到存储库:
   cd gcp-openshift-mcp-server
  1. 安装Python依赖项:
   pip install -r requirements.txt
  1. 确保配置了GCP凭据:
   gcloud auth application-default login
  1. 设置拉取密码 (必填-一次性设置):
   # Download your pull-secret from https://console.redhat.com/openshift/install/gcp/installer-provisioned
   # Then copy it to the required location:
   mkdir -p ~/.config/openshift
   cp ~/Downloads/pull-secret.json ~/.config/openshift/pull-secret.json
   chmod 600 ~/.config/openshift/pull-secret.json

MCP服务器将自动从该位置读取拉取密钥。您永远不需要将其作为参数传递。

用法

运行服务器

启动MCP服务器:

python server.py

该服务器将作为基于stdio的MCP服务器运行,并可以与MCP客户端集成。

可用工具

1.检查_先决条件

检查是否安装了所有必需的工具。

请求示例:

{
  "name": "check_prerequisites",
  "arguments": {}
}

示例响应:

{
  "success": true,
  "checks": {
    "openshift_install": {
      "installed": true,
      "version": "openshift-install 4.14.0"
    },
    "gcloud": {
      "installed": true,
      "version": "Google Cloud SDK 450.0.0"
    },
    "kubectl": {
      "installed": true
    }
  },
  "message": "All prerequisites met"
}

2.创建集群

使用自定义名称在GCP上创建新的OpenShift集群。从以下位置自动读取pull secret ~/.config/openshift/pull-secret.json.

参数:

  • cluster_name (必填):集群的唯一名称(例如“submariner-gcp-1”)
  • ssh_public_key (必需):用于群集访问的SSH公钥
  • region (可选):GCP区域,默认值:“us-east1”
  • base_domain (可选):基本域,默认值:“devcluster.openshift.com”
  • worker_replicas (可选):工作节点数,默认值:3
  • master_replicas (可选):主节点数量,默认值:3
  • network_type (可选):网络插件,默认:“OVNKubernetes”

请求示例:

{
  "name": "create_cluster",
  "arguments": {
    "cluster_name": "submariner-gcp-1",
    "ssh_public_key": "ssh-rsa AAAAB3...",
    "region": "us-east1",
    "worker_replicas": 3,
    "master_replicas": 3
  }
}

示例响应:

{
  "success": true,
  "cluster_name": "submariner-gcp-1",
  "cluster_dir": "./clusters/submariner-gcp-1",
  "kubeconfig_path": "./clusters/submariner-gcp-1/auth/kubeconfig",
  "message": "Cluster submariner-gcp-1 created successfully"
}

3.删除集群

删除OpenShift集群并清理所有GCP资源。

参数:

  • cluster_name (必填):要删除的群集的名称

请求示例:

{
  "name": "delete_cluster",
  "arguments": {
    "cluster_name": "submariner-gcp-1"
  }
}

示例响应:

{
  "success": true,
  "cluster_name": "submariner-gcp-1",
  "message": "Cluster submariner-gcp-1 deleted successfully"
}

4.获取集群状态

获取集群的详细状态。

参数:

  • cluster_name (必填):集群名称

请求示例:

{
  "name": "get_cluster_status",
  "arguments": {
    "cluster_name": "submariner-gcp-1"
  }
}

示例响应:

{
  "success": true,
  "cluster_name": "submariner-gcp-1",
  "status": "created",
  "cluster_dir": "./clusters/submariner-gcp-1",
  "kubeconfig_path": "./clusters/submariner-gcp-1/auth/kubeconfig",
  "accessible": true,
  "nodes": "NAME                           STATUS   ROLES    AGE   VERSION\n...",
  "region": "us-east1",
  "base_domain": "devcluster.openshift.com"
}

5.列表_集群

列出所有GCP OpenShift集群。

请求示例:

{
  "name": "list_clusters",
  "arguments": {}
}

示例响应:

{
  "success": true,
  "clusters": [
    {
      "name": "submariner-gcp-1",
      "status": "created",
      "cluster_dir": "./clusters/submariner-gcp-1",
      "region": "us-east1",
      "kubeconfig_available": true
    },
    {
      "name": "submariner-gcp-2",
      "status": "created",
      "cluster_dir": "./clusters/submariner-gcp-2",
      "region": "us-east1",
      "kubeconfig_available": true
    }
  ],
  "count": 2
}

6.get_kubeconfig

获取集群的kubeconfig文件内容。

参数:

  • cluster_name (必填):集群名称

请求示例:

{
  "name": "get_kubeconfig",
  "arguments": {
    "cluster_name": "submariner-gcp-1"
  }
}

示例响应:

{
  "success": true,
  "cluster_name": "submariner-gcp-1",
  "kubeconfig_path": "./clusters/submariner-gcp-1/auth/kubeconfig",
  "kubeconfig_content": "apiVersion: v1\nclusters:\n..."
}

7.云_准备

为Submariner准备云基础设施 subctl cloud prepare. 这必须在将集群加入Submariner之前运行。 它配置防火墙规则、安全组、网关节点和其他特定于云的要求。

支持的云提供商: GCP、AWS、Azure、OpenStack

参数:

  • cluster_name (必填):要准备的集群名称
  • cloud_provider (可选):云提供商类型(gcp、aws、azure、openstack),默认值:“gcp”

请求示例:

{
  "name": "cloud_prepare",
  "arguments": {
    "cluster_name": "submariner-gcp-1",
    "cloud_provider": "gcp"
  }
}

示例响应:

{
  "success": true,
  "cluster_name": "submariner-gcp-1",
  "cloud_provider": "gcp",
  "message": "Cloud infrastructure prepared successfully for submariner-gcp-1"
}

它的作用:

  • 创建专用网关计算机集
  • 部署带有潜艇gw标签的网关节点
  • 为IPsec配置GCP防火墙规则(UDP 500、4500、ESP协议)
  • 准备潜艇隧道所需的基础设施

8.重命名库配置上下文

在集群的kubeconfig中重命名上下文和用户,以避免合并多个kubeconfig时发生冲突。在合并具有相同上下文/用户名(如“admin”)的kubeconfigs时,这一点至关重要。

参数:

  • cluster_name (必填):要重命名kubeconfig的集群的名称
  • new_context_name (可选):新上下文名称(默认为“{cluster_name}-admin")
  • new_user_name (可选):新用户名(默认为“{cluster_name}-admin")

请求示例:

{
  "name": "rename_kubeconfig_context",
  "arguments": {
    "cluster_name": "submariner-gcp-1"
  }
}

示例响应:

{
  "success": true,
  "cluster_name": "submariner-gcp-1",
  "old_context_name": "admin",
  "new_context_name": "submariner-gcp-1-admin",
  "old_user_name": "admin",
  "new_user_name": "submariner-gcp-1-admin",
  "message": "Successfully renamed context and user in kubeconfig for submariner-gcp-1"
}

使用案例: 当你有多个带有kubeconfigs的集群,它们的上下文和用户名都是“admin”时,你需要在合并之前重命名它们以避免冲突。

9.合并_立方体配置

将多个集群中的kubeconfigs合并到一个文件中。这允许您从单个kubeconfig文件管理多个集群,并使用以下命令在它们之间切换 kubectl config use-context.

重要提示: 在合并之前,使用以下命令确保上下文和用户具有唯一的名称 rename_kubeconfig_context.

参数:

  • cluster_names (必需):要合并的群集名称列表
  • output_path (可选):应保存合并的kubeconfig的路径(默认:“/tmp/merged kubeconfig.yaml”)

请求示例:

{
  "name": "merge_kubeconfigs",
  "arguments": {
    "cluster_names": ["submariner-gcp-1", "submariner-gcp-2"],
    "output_path": "/tmp/merged-kubeconfig.yaml"
  }
}

示例响应:

{
  "success": true,
  "cluster_names": ["submariner-gcp-1", "submariner-gcp-2"],
  "output_path": "/tmp/merged-kubeconfig.yaml",
  "message": "Successfully merged 2 kubeconfigs to /tmp/merged-kubeconfig.yaml"
}

kubectl的用法:

export KUBECONFIG=/tmp/merged-kubeconfig.yaml
kubectl config get-contexts
kubectl config use-context submariner-gcp-2-admin
kubectl get nodes

与潜艇MCP服务器集成

该服务器旨在与Submariner MCP服务器无缝协作,实现多集群联网。

工作流示例

  1. 创建两个集群:
   // Create cluster 1
   {
     "name": "create_cluster",
     "arguments": {
       "cluster_name": "submariner-gcp-1",
       "ssh_public_key": "ssh-rsa AAAAB3..."
     }
   }

   // Create cluster 2
   {
     "name": "create_cluster",
     "arguments": {
       "cluster_name": "submariner-gcp-2",
       "ssh_public_key": "ssh-rsa AAAAB3..."
     }
   }
  1. 获取kubeconfigs:
   // Get kubeconfig for cluster 1
   {
     "name": "get_kubeconfig",
     "arguments": {
       "cluster_name": "submariner-gcp-1"
     }
   }

   // Get kubeconfig for cluster 2
   {
     "name": "get_kubeconfig",
     "arguments": {
       "cluster_name": "submariner-gcp-2"
     }
   }
  1. 使用Submariner MCP服务器安装Submariner:

- 将kubeconfig内容与Submariner MCP服务器的 add_cluster 工具 - 遵循Submariner工作流程:分析CIDR、配置globalnet、部署代理、加入集群

建筑

目录结构

gcp-openshift-mcp-server/
├── server.py           # Main MCP server
├── requirements.txt    # Python dependencies
├── README.md          # This file
└── clusters/          # Clusters directory
    ├── submariner-gcp-1/      # Cluster 1 directory
    │   ├── install-config.yaml
    │   ├── metadata.json
    │   ├── auth/
    │   │   └── kubeconfig
    │   └── .openshift_install.log
    └── submariner-gcp-2/      # Cluster 2 directory
        ├── install-config.yaml
        ├── metadata.json
        ├── auth/
        │   └── kubeconfig
        └── .openshift_install.log

集群生命周期

  1. 创建:集群正在通过openshift安装进行配置
  2. 创建:集群已准备就绪,kubeconfig可用
  3. 失败:群集创建失败
  4. 删除:群集正在被销毁

错误处理

服务器为常见问题提供详细的错误消息:

  • 缺少先决条件(未安装工具)
  • 重复的群集名称
  • 未找到群集
  • Kubeconfig不可用
  • GCP身份验证问题
  • 群集创建/删除失败

日志记录

服务器记录所有操作以帮助调试:

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
)

故障排除

群集创建失败

  1. 检查GCP凭据: gcloud auth list
  2. 验证项目ID: gcloud config get-value project
  3. 检查GCP控制台中的配额限制
  4. 审查 .openshift_install.log 在集群目录中

未找到Kubeconfig

  • 群集创建可能仍在进行中
  • 使用检查群集状态 get_cluster_status
  • 查看安装日志

先决条件检查失败

  • 确保所有必需的工具都在PATH中
  • 验证安装: openshift-install version, gcloud version, kubectl version

贡献

要扩展此服务器,请执行以下操作:

  1. 在中添加新工具 @app.list_tools() 装饰器
  2. 在中实现处理程序 @app.call_tool() 函数
  3. 向添加方法 GCPOpenShiftManager

许可证

这是OpenShift开发工具包的一部分。

支持

关于以下问题:

  • OpenShift安装:https://docs.openshift.com/
  • GCP:https://cloud.google.com/docs
  • MCP协议:https://github.com/anthropics/mcp

版本

当前版本:1.1.1

更新日志

1.1.1 (2025-11-03)

  • 修复了deploy_submariner_full中的关键错误:添加了在云准备后等待网关节点准备就绪
  • 在继续进行潜艇加入操作之前,网关节点现在已被验证为就绪
  • 在网关节点仍在配置时防止加入失败
  • 改进了网关节点就绪检查的错误处理和日志记录

1.1.0 (2025-10-29)

  • 添加 cloud_prepare Submariner基础设施准备工具(GCP、AWS、Azure、OpenStack)
  • 添加 rename_kubeconfig_context 重命名上下文和用户以避免冲突的工具
  • 添加 merge_kubeconfigs 将多个kubeconfigs合并到一个文件中的工具
  • 增强的README,包含所有新工具的详细文档
  • 改进了多集群管理功能

1.0.0 (2025-10-29)

  • 初始版本
  • 支持创建和删除GCP OpenShift集群
  • 与Submariner MCP服务器集成
  • 集群状态和kubeconfig检索

目录标签

目录标签

Python云端部署DockerOpenShift管理本地部署GCP集群Submariner集成多集群网络kubeconfig管理

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

9

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP