mcpField
O
OpenShift MCP Server

OpenShift MCP Server

本地服务
github.com云与基础设施12 天前更新

关于 OpenShift MCP Server

OpenShift MCP Server 通过 `oc` 命令行让 AI 助手管理 OpenShift 和 Kubernetes 集群,涵盖资源操作、应用部署及集群排障,并通过 MCP 提供这些能力。

主要功能

  1. 01读取集群状态与配置
  2. 02创建、更新和删除资源
  3. 03通过 S2I 部署 Git 应用
  4. 04安装 Operator 并扩缩工作负载
  5. 05获取并分析 Pod 或构建日志
  6. 06支持 STDIO 和 HTTP/SSE 传输

适用场景

  1. 01查看集群节点、命名空间和事件
  2. 02从 Git 仓库部署应用
  3. 03扩缩 Deployment 或修补资源
  4. 04使用提示词排查集群问题

MCP 相关

向 MCP 客户端提供集群管理工具、只读集群资源、排障提示词和日志采样,并支持 STDIO 与 HTTP/SSE 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sanjaypsachdev-mcp-server-openshift": {
"command": "npx",
"args": [
"-y",
"mcp-server-openshift"
],
"env": {
"OPENSHIFT_CONTEXT": "<OPENSHIFT_CONTEXT>",
"OPENSHIFT_NAMESPACE": "<OPENSHIFT_NAMESPACE>"
}
}
}
}
启动命令npx -y mcp-server-openshift
需要配置的环境变量
OPENSHIFT_CONTEXTDefault OpenShift/Kubernetes context
OPENSHIFT_NAMESPACEDefault namespace/project

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-server-openshift1.2.0
ocidocker.io/sanjaypsachdev/mcp-server-openshift:1.2.0

工具

14

收录的工具列表 · 更新于 2 周前

参数类型必填说明
namestring否资源名称(可选;如果未提供,则列出所有资源)
outputenum否输出格式json | yaml | wide | name
contextstring否要使用的 OpenShift 上下文(可选)
namespacestring否OpenShift 命名空间/项目
resourceTypestring是要获取的资源类型(例如 pods、deploymentconfigs、routes、projects、services)
allNamespacesboolean否列出所有命名空间中的资源
fieldSelectorstring否按字段选择器筛选资源
labelSelectorstring否按标签选择器筛选资源(例如 app=nginx)

详细介绍

OpenShift MCP 服务

CI Pipeline CodeQL License: MIT Node.js Version TypeScript OpenShift Kubernetes MCP Test Coverage Tests npm version npm downloads Docker PRs Welcome Maintenance

一个模型上下文协议(MCP)服务,通过 oc 命令行界面为 AI 助手提供全面的 OpenShift/Kubernetes 集群管理能力。

演示视频

观看 oc-new-app 工具如何将完整的 Spring Boot 应用从 GitHub 部署到 OpenShift:

https://github.com/user-attachments/assets/f4bace3f-755b-462f-8a8a-680e4dc02129

功能特性

  • 集群信息:通过 MCP 资源访问全面的集群状态、节点和配置
  • 资源描述:以多种输出格式描述任何资源,包括便于阅读的摘要
  • 完整的资源管理:创建、读取、更新、删除和修补所有 OpenShift/Kubernetes 资源
  • 应用部署:通过 S2I 构建从 Git 仓库部署应用,并自动创建路由
  • Operator 管理:通过 OLM、Helm 或直接使用清单安装 Operator
  • 集群操作:扩缩容、监控、故障排查和管理
  • 构建操作:启动并监控 OpenShift 构建
  • 扩缩容操作:扩缩 Deployment、ReplicaSet 和 StatefulSet
  • 日志:获取 Pod 和构建的日志
  • 多传输方式支持:提供 STDIO 和 HTTP/SSE 传输方式,适用于不同的集成场景
  • 全面测试:99 个单元测试,确保生产环境的可靠性
  • 完善的错误处理:提供详细的故障排查指导和可执行的错误消息
  • 故障排查提示词:针对常见 OpenShift 场景的交互式故障排查指南
  • 日志采样:采样并分析 Pod 日志,借助智能模式检测和上下文信息

前置条件

  • Node.js 18+
  • 已安装并配置 OpenShift CLI(oc)
  • 可访问 OpenShift 集群

安装

git clone https://github.com/sanjaypsachdev/mcp-server-openshift.git
cd mcp-server-openshift
npm install
npm run build

配置

添加到 MCP 客户端配置中:

Claude Desktop / Cursor
{
  "mcpServers": {
    "openshift": {
      "command": "node",
      "args": ["/path/to/mcp-server-openshift/dist/index.js"],
      "env": {
        "OPENSHIFT_CONTEXT": "your-context-name",
        "OPENSHIFT_NAMESPACE": "your-default-namespace"
      }
    }
  }
}
HTTP/SSE 传输(远程访问)
# Start HTTP server
npm run start:http

# Connect via MCP remote
npx -y mcp-remote http://localhost:3000/sse --transport sse-only

工具

身份验证与访问
  • oc_login - 使用令牌或用户名/密码身份验证安全登录 OpenShift 集群
API 发现与文档
  • oc_api_resources - 列出集群中所有可用的 API 资源,并进行分类
  • oc_explain - 说明资源架构、字段和 API 文档
核心资源管理
  • oc_get - 获取 OpenShift 资源(Pod、部署、服务、路由等)
  • oc_create - 根据清单或模板创建 OpenShift 资源
  • oc_apply - 应用 YAML 清单,并进行验证和冲突解决
  • oc_delete - 通过安全检查和确认选项删除资源
  • oc_patch - 使用策略合并、JSON 合并或 JSON 补丁操作来修补资源
  • oc_describe - 以多种输出格式描述资源
应用生命周期
  • oc_new_app - 通过 S2I 构建从 Git 仓库部署应用
  • oc_scale - 对部署、deploymentconfig、replicaset 和 statefulset 进行扩缩容
  • oc_logs - 获取 Pod、部署和构建的日志,并支持筛选选项
高级操作
  • oc_install_operator - 通过 OLM、Helm 或直接使用清单安装 Operator

资源

MCP 资源提供对集群信息的只读访问:

  • openshift://cluster-info - 全面的集群状态、节点、命名空间和事件信息
  • openshift://project-list - 包含配额和使用统计信息的详细项目资料
  • openshift://app-templates - 应用部署模板和模式

提示词

交互式故障排除和运维指导:

  • troubleshoot-openshift-prompt - 针对所有资源类型和集群问题的全面 OpenShift 故障排除指南
  • monitoring-prompts - 针对不同场景的监控和可观测性指导

采样

智能日志分析和模式检测:

  • Pod 日志采样 - 自动采样日志,并检测错误模式、分析上下文

使用示例

登录集群
# Login with token (recommended)
oc_login with server: "https://api.cluster.example.com:6443",
         authMethod: "token",
         token: "sha256~your-token-here"

# Login with username/password
oc_login with server: "https://api.cluster.example.com:6443",
         authMethod: "password",
         username: "developer",
         password: "your-password"
发现 API 资源
# List all available API resources
oc_api_resources

# List resources for specific API group
oc_api_resources with apiGroup: "apps"

# List only namespaced resources
oc_api_resources with namespaced: true

# Explain a resource schema
oc_explain with resource: "deployment"

# Explain specific field
oc_explain with resource: "pod", field: "spec.containers"
部署应用
# Deploy Node.js app from GitHub
oc_new_app with gitRepo: "https://github.com/sclorg/nodejs-ex.git"
扩缩容应用
# Scale deployment to 3 replicas
oc_scale with name: "my-app", replicas: 3
修补资源
# Update deployment labels
oc_patch with resourceType: "deployment", name: "my-app",
         patch: '{"metadata":{"labels":{"environment":"production"}}}'
排查问题
# Get pod troubleshooting guidance
Use prompt: troubleshoot-openshift-prompt
Arguments: issueType: "pod", resourceName: "my-app-12345", namespace: "my-project"

# Get deployment troubleshooting guidance
Use prompt: troubleshoot-openshift-prompt
Arguments: issueType: "deployment", resourceName: "my-app", namespace: "my-project"

# Get general cluster troubleshooting guidance
Use prompt: troubleshoot-openshift-prompt
Arguments: issueType: "cluster", symptoms: "nodes not ready"

开发

# Setup
npm install

# Build
npm run build

# Test
npm test

# Start (STDIO)
npm start

# Start (HTTP)
npm run start:http

# Development mode
npm run dev

传输模式

STDIO(默认)
  • 直接集成 MCP 客户端
  • 延迟更低
  • 推荐用于本地开发
HTTP/SSE
  • 支持远程访问
  • 便于 Web 集成
  • 可用于容器部署

架构

src/
├── index.ts              # Main server entry point
├── tools/                # Tool implementations
├── resources/            # MCP resources
├── prompts/              # Interactive prompts
├── sampling/             # Log sampling and analysis
├── models/               # Zod validation schemas
└── utils/                # OpenShift CLI wrapper

安全

身份验证安全
  • 令牌身份验证:自动化和生产环境的首选方式
  • 密码身份验证:可用,但推荐使用令牌身份验证
  • 强制使用 HTTPS:所有集群连接都必须使用 HTTPS
  • URL 验证:验证服务 URL,以防止 SSRF 攻击
  • 阻止私有 IP:防止连接到内部服务或元数据服务
运维安全
  • 遵守 RBAC:遵循 OpenShift RBAC 权限
  • 不存储凭据:服务不会存储或传输凭据
  • 用户权限:以经过身份验证的用户所拥有的相同权限执行操作
  • 输入验证:全面验证所有输入和参数
  • 安全默认设置:默认采用保守的安全设置
最佳实践
  • 使用服务账户令牌:用于自动化和 CI/CD 流水线
  • 定期轮换令牌:定期轮换身份验证令牌
  • 验证 TLS 证书:在生产环境中始终验证 TLS 证书
  • 最小权限:使用仅具备所需最低权限的账户
  • 会话管理:完成操作后使用 oc logout 清除凭据

许可证

MIT 许可证 - 详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。