mcpField
M
mcp-openshift

mcp-openshift

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

关于 mcp-openshift

mcp-openshift 是供操作 OpenShift 和 Kubernetes 集群的 Agent 使用的 MCP 服务。它将资源检查与工作负载操作结合,并提供访问模式、命名空间限制和审批控制。

主要功能

  1. 01查看项目、资源、日志和事件
  2. 02扩缩工作负载并重启部署
  3. 03经开关控制应用清单和删除资源
  4. 04按命名空间限制写入
  5. 05记录操作并隐藏 Secret 值

适用场景

  1. 01查看 Pod 日志和集群事件
  2. 02检查资源状态和规格
  3. 03扩缩或重启部署
  4. 04获批后应用资源清单

MCP 相关

向 MCP 客户端提供 OpenShift 和 Kubernetes 集群工具,包括资源、工作负载及日志操作。高影响工具受模式、开关和人工审批控制。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"dockndevai-mcp-openshift": {
"command": "npx",
"args": [
"-y",
"@dockndevai/mcp-openshift"
],
"env": {
"OPENSHIFT_SERVER": "<OPENSHIFT_SERVER>",
"OPENSHIFT_TOKEN": "<OPENSHIFT_TOKEN>",
"OPENSHIFT_USERNAME": "<OPENSHIFT_USERNAME>",
"OPENSHIFT_PASSWORD": "<OPENSHIFT_PASSWORD>",
"OPENSHIFT_CA_CERT": "<OPENSHIFT_CA_CERT>",
"OPENSHIFT_MODE": "<OPENSHIFT_MODE>"
}
}
}
}
启动命令npx -y @dockndevai/mcp-openshift
需要配置的环境变量
OPENSHIFT_SERVERCluster API server URL, e.g. https://api.cluster.example.com:6443.
OPENSHIFT_TOKEN密钥Bearer token (console → user menu → Copy login command → Display Token, or `oc whoami -t`).
OPENSHIFT_USERNAMEUsername for the cluster's local identity provider (alternative to a token).
OPENSHIFT_PASSWORD密钥Password for the local identity provider. Sent only to the cluster's OAuth server.
OPENSHIFT_CA_CERTPath to the cluster CA bundle (PEM) for TLS verification.
OPENSHIFT_MODEAccess mode: read-only | read-write | admin. Starts read-only; writes need read-write.

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

安装包
npm@dockndevai/mcp-openshift0.2.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcp-openshift

npm CI licence

一个默认安全的 Model Context Protocol 服务,适用于 OpenShift / Kubernetes。它让 Agent 能够探索和操作集群,包括项目、Pod 和日志、部署和 deploymentconfig、路由、服务、构建、imagestream,以及任何指定类型的资源;在更高权限模式下,还可以扩缩工作负载、重启部署、应用清单和删除资源。

使用你已有的网页控制台令牌连接,或通过集群的本地身份提供程序,使用用户名/密码连接。

它是 dockndevai MCP 服务套件的一部分——所有服务均采用统一的治理模式。

为 Agent 提供的功能

默认以只读模式启动(参见默认安全);只有提高模式后才会注册更高权限的工具。

工具用途所需模式
whoami确认已认证的身份只读
list_projects列出你可以查看的项目/命名空间只读
list_resources列出任意类型的资源(± 命名空间、标签选择器)只读
get_resource获取单个资源的完整规格/状态只读
pod_logs获取 Pod 的容器日志只读
list_events列出命名空间中的近期事件只读
scale设置 Deployment/DeploymentConfig 的副本数读写
rollout_restart重启 Deployment读写
apply_resource从清单创建/更新资源(SSA)读写 + OPENSHIFT_ALLOW_APPLY
delete_resource删除资源管理员 + OPENSHIFT_ALLOW_DELETE

安装

npx -y @dockndevai/mcp-openshift

你需要集群的API URL和凭据。最快的方法是使用你已有的浏览器控制台:

在 OpenShift 网页控制台中,点击你的用户名(右上角)→ Copy login command → Display Token。复制 --token= 后面的值(sha256~…)以及 --server= 后面的 URL。

然后设置 OPENSHIFT_SERVER + OPENSHIFT_TOKEN。(控制台令牌有效期较短;过期后获取新令牌,或使用下方的用户名/密码方式,它会自动重新登录。)

配置

{
  "mcpServers": {
    "openshift": {
      "command": "npx",
      "args": ["-y", "@dockndevai/mcp-openshift"],
      "env": {
        "OPENSHIFT_SERVER": "https://api.cluster.example.com:6443",
        "OPENSHIFT_TOKEN": "sha256~...",
        "OPENSHIFT_MODE": "read-only"
      }
    }
  }
}

关于 Claude Code / Cursor / Codex / VS Code / Windsurf,请参阅 docs/CLIENTS.md;关于所有变量,请参阅 .env.example。

身份验证

身份验证模式会自动选择(可通过 OPENSHIFT_AUTH 覆盖):

  • token — OPENSHIFT_TOKEN(Bearer 令牌)。可从控制台获取(见上文),或使用 oc whoami -t。
  • password — 使用 OPENSHIFT_USERNAME + OPENSHIFT_PASSWORD,通过集群内置的 OAuth 服务端进行身份验证(HTPasswd / LDAP / 任何支持质询的本地 IdP)。服务会运行 oc login -u … -p … 使用的相同请求令牌流程,将令牌缓存在 ~/.mcp-openshift/token.json(0600),并在令牌过期后重新登录。密码只会发送到集群的 OAuth 端点,不会被记录或写入磁盘。

**TLS:**集群通常使用私有 CA——设置 OPENSHIFT_CA_CERT 指定 CA 证书包,或(仅限开发环境)设置 OPENSHIFT_INSECURE_TLS=true 跳过验证。

默认安全

由 src/security.ts 强制执行,在账户的集群 RBAC 之上提供纵深防御:

  • OPENSHIFT_MODE — read-only(默认)→ read-write → admin。高于当前模式的工具不会注册。
  • OPENSHIFT_NAMESPACE_ALLOWLIST / OPENSHIFT_PROTECTED_NAMESPACES — 将写入限制在指定命名空间;系统命名空间(kube-*、openshift、openshift-*、default)可读取,但永远不可修改。
  • OPENSHIFT_ALLOW_APPLY — 创建或更新资源,除读写模式外还需要启用此标志,并获得人工确认。
  • OPENSHIFT_ALLOW_DELETE — 删除操作需要管理员模式、此标志以及确认。
  • OPENSHIFT_DRY_RUN — 使用 Kubernetes dryRun=All 发送写入请求:会进行验证和准入检查,但不会持久化任何内容。
  • 人工介入 — 应用、删除和缩容至零操作会暂停,并通过 MCP elicitation 请求人工批准。
  • OPENSHIFT_AUDIT_LOG — 每个受保护操作都会在 stderr 输出一条 JSON 审计日志;所有输出中的 Secret 值都会被隐藏。

可选的 AI 风险防护。 设置 OPENSHIFT_GUARD_MODE=monitor|enforce,让 apply_resource / delete_resource 在执行前咨询本地 laya-guard 守护进程,由其将操作分类为允许、确认或阻止。(通过 pipx install laya-guard && laya-guard 安装并运行。)它在应用/删除检查之后运行,只会收紧限制,不会授予权限;发生故障时默认拒绝。

项目内置了一个技能 openshift-safe-operations,用于指导 Agent 如何进行身份验证(包括通过浏览器控制台进行身份验证)、遵循安全规则以及执行标准的分诊/操作工作流。另请参阅 SECURITY.md。

开发

npm install
npm run build
# list the tools without a live cluster:
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | OPENSHIFT_SERVER=https://x:6443 OPENSHIFT_TOKEN=x node dist/index.js
npm test

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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