关于 Janus
Janus 是本地运行的 MCP 服务,让 AI 助手检查和操作 Kubernetes 集群,同时将 `KUBECONFIG` 保留在本机。它会清理集群响应、限制访问范围,并要求人工批准已启用的写入操作。
主要功能
- 01在模型访问前清理集群数据
- 02检查 Pod、工作负载、事件和日志
- 03按命名空间或资源限制访问
- 04写入操作需经人工批准
- 05提供集群摘要和引导式排查
适用场景
- 01排查命名空间中的崩溃 Pod
- 02查看近期发布变更
- 03检查集群事件和资源用量
- 04提交重启或扩缩容操作供批准
MCP 相关
Janus 向 MCP 客户端提供受限的 Kubernetes 诊断和写入工具,以及 `cluster://summary` 资源和 `diagnose_namespace` 提示词。写入工具需要人工明确确认,且只有启用后才会注册。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
两张面孔。一个集群。密钥绝不泄露。
janus-mcp.ns47.com · PyPI · 更新日志
什么是 Janus?
Janus 是一个 MCP(Model Context Protocol) 服务,为 AI 助手提供安全、受控的 Kubernetes 集群访问窗口。它在本地运行,将你的 KUBECONFIG 严密保管,并通过经过仔细限定范围的工具让大模型进行操作——让你享受 AI 副驾驶的强大能力,同时绝不向第三方模型发送令牌、证书或 API 服务器 URL。
Janus 以罗马的门户之神命名(他以同时面向两个方向而闻名)。它以简洁、声明式的工具定义面向大模型,以完整的管理员权限面向你的集群,同时确保两者不会不当地接触。
问题
大模型在调试、运维和分析 Kubernetes 方面非常有用。但只要你将 KUBECONFIG 粘贴到聊天窗口,或发送到外部 API,就等于交出了你的王国钥匙。对大多数组织来说,这是不可接受的。
自托管模型有所帮助,但并非每个人都能或愿意在本地运行前沿级大模型。Janus 为你提供第三条路:将凭据保留在本地(或你的笔记本电脑上),让远程模型只处理经过清理的高层级集群信息。
工作原理
┌──────────────┐ ┌────────────────┐ ┌───────────────┐
│ LLM Client │<─────>│ Janus (local) │<─────>│ Kubernetes │
│ (Claude, │ MCP │ holds the │ k8s │ API Server │
│ VS Code, │ │ KUBECONFIG │ API │ │
│ custom) │ │ redacts output │ │ │
└──────────────┘ └────────────────┘ └───────────────┘
- 使用工具,而非文本转储 — Janus 提供一组 MCP 工具(
get_pods、describe_deployment、get_events等),供大模型调用。它绝不会交出原始集群状态。 - 自动脱敏 — Kubernetes API 的每个响应都会经过清理。在大模型看到内容之前,机密信息、令牌、环境变量值和敏感元数据都会被移除。
- 写入操作需人工批准 — 只读操作会立即执行。破坏性操作(重启、扩缩容、删除)需要在 MCP 客户端中明确确认。大模型可以提议操作,但必须由人工执行。
- 限定访问范围 — Janus 可以限制为特定命名空间、指定集群,甚至一部分资源,在
KUBECONFIG所允许的权限之外再增加一道安全保障。
功能
- 🔒 凭据绝不暴露 — 你的
KUBECONFIG绝不会离开运行 Janus 的进程。 - 🔍 丰富的只读诊断功能 — Pod、工作负载、服务、事件、日志、端点、配额、实时 CPU/内存用量与请求量对比(
kubectl top+),以及经过脱敏的模板差异滚动历史(“最近有什么变化?”)。 - ✍️ 受保护的写入操作 — 滚动重启与回滚、扩缩容、删除 Pod(绑定 UID)、暂停/恢复/触发 CronJob、隔离节点——每项操作都需要模型之外的人工批准,且只有操作员启用后才会注册。
- 🧹 可插拔的脱敏引擎 — 提供合理的默认设置,也可以轻松扩展以支持你自己的模式。
- 🧭 两种方式查看集群概览 —
get_cluster_summary工具,以及可固定的cluster://summaryMCP 资源,让大模型无需频繁调用工具即可获取上下文。 - 🩺 引导式分类诊断 —
diagnose_namespace提示词模板会引导模型进行结构化调查(概览 → Pod → 警告 → 有针对性的日志 → 诊断),适用于任何支持 MCP 提示词的客户端。 - 🧪 兼容任意 MCP 客户端 — Claude Code、Claude Desktop、VS Code、Codex,或你自己的 Agent 循环。
路线图
- 分发 ✓ — PyPI
janus-mcp-server· 容器ghcr.io/tonylchang/janus-mcp· Homebrewtonylchang/tap/janus-mcp - 流式 HTTP sidecar 模式(Bearer 令牌 + Origin 验证)
快速开始
uv tool install janus-mcp-server # or: pipx install janus-mcp-server
# brew install tonylchang/tap/janus-mcp
mkdir -p ~/.config/janus-mcp
curl -fsSL https://raw.githubusercontent.com/tonylchang/janus-mcp/main/examples/config.yaml \
-o ~/.config/janus-mcp/config.yaml
$EDITOR ~/.config/janus-mcp/config.yaml # set your kubeconfig context + namespaces
# register with Claude Code:
claude mcp add kubernetes -- janus-mcp serve
没有 Python 工具链?同一服务也提供容器镜像:
claude mcp add kubernetes -- docker run -i --rm \
-v ~/.kube/config:/home/janus/.kube/config:ro \
-v ~/.config/janus-mcp:/home/janus/.config/janus-mcp:ro \
ghcr.io/tonylchang/janus-mcp:latest
Claude Desktop、VS Code/Copilot、Codex CLI 和 Cursor 的注册说明,请参阅 快速开始指南。
现在可以问你的 AI 助手,例如: “为什么 prod 命名空间中的 Pod 一直崩溃?”
Janus 会获取相关信息并进行净化,然后由大模型引导你了解发生了什么 — 全程安全可靠。
文档
Janus 目前正处于积极开发阶段。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。