OpenShift集群管理工具

提供与OpenShift Cluster Manager API交互的工具和资源,支持列出集群、获取集群详情、创建和删除集群等操作。

  • by dchourasia
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 dchourasia/ocm-mcp-server

使用说明

OpenShift群集管理器(OCM)MCP服务器

该FastMCP服务器提供了与OpenShift Cluster Manager API交互的工具和资源,允许LLM执行列出集群、获取集群详细信息、创建和删除集群等操作。

先决条件

  • Python 3.10+
  • fastmcp 库已安装
  • OpenShift Cluster Manager API令牌

设置

  1. 克隆 jlowin-fastmcp 存储库(如果您还没有):

    git clone https://github.com/jlowin/fastmcp.git
    cd fastmcp
    
  2. 导航到此示例的目录:

    cd examples/openshift_cluster_manager
    
  3. 安装依赖项(如果未全局安装,则包括FastMCP): 我们建议使用 uv.

    uv venv .venv  # Create a virtual environment (optional, but recommended)
    source .venv/bin/activate # Or .venv\Scripts\activate on Windows
    uv pip install -r requirements.txt 
    # If requirements.txt doesn't exist, create one with:
    # fastmcp
    # httpx
    # pydantic
    # pydantic-settings
    

    或者,如果您在全局或项目中安装了FastMCP:

    uv pip install httpx pydantic pydantic-settings
    
  4. 配置环境变量: 创建一个 .env 文件在 examples/openshift_cluster_manager 目录复制 .env.example:

    cp .env.example .env
    

    编辑 .env 归档并替换 your_ocm_api_token_here 使用您的实际OCM API令牌。您可以从以下位置生成令牌 红帽混合云控制台.

    # .env
    OCM_API_TOKEN="your_ocm_api_token_here"
    # OCM_API_URL="https://api.openshift.com" # Default, uncomment to override
    

运行服务器

您可以使用FastMCP的CLI或直接使用Python运行服务器。

使用FastMCP CLI(建议用于开发):

fastmcp run ocm_server.py

资源

  • ocm://clusters:列出所有可访问的OpenShift集群。
  • ocm://cloud_providers:列出可用的云提供商。
  • ocm://versions/{cloud_provider_id}:列出云提供商的OpenShift版本(例如。,ocm://versions/aws).
  • ocm://regions/{cloud_provider_id}:列出云提供商的区域(例如。,ocm://regions/aws).

资源模板

  • ocm://clusters/{cluster_id}:获取特定集群的详细信息。
    • 例子:ocm://clusters/your-cluster-id
  • ocm://addons/{addon_id}/versions:列出特定插件的可用版本。
    • 例子:ocm://addons/cluster-logging-operator/versions

工具

  • create_ocm_cluster:创建一个新的OpenShift集群。
    • 参数:name(str)、region(str),cloud_provider(Literal[“aws”,“gcp”,“azure”],默认“aws“),product(Literal[”rosa“,“osd”],缺省“rosa”),version(str|None),multi_az(bool,缺省False),compute_nodes(int,缺省2),compete_machine_type(str,aws的缺省“m5.xlarge”),properties(dict|None)。
  • delete_ocm_cluster:删除OpenShift集群。
    • 参数:cluster_id(str)。
  • get_ocm_cluster_status:检索OpenShift集群的状态。
    • 参数:cluster_id(str)。