mcpField
J
Janus

Janus

本地服务
janus-mcp.ns47.com云与基础设施010 周前更新

关于 Janus

Janus 是本地运行的 MCP 服务,让 AI 助手检查和操作 Kubernetes 集群,同时将 `KUBECONFIG` 保留在本机。它会清理集群响应、限制访问范围,并要求人工批准已启用的写入操作。

主要功能

  1. 01在模型访问前清理集群数据
  2. 02检查 Pod、工作负载、事件和日志
  3. 03按命名空间或资源限制访问
  4. 04写入操作需经人工批准
  5. 05提供集群摘要和引导式排查

适用场景

  1. 01排查命名空间中的崩溃 Pod
  2. 02查看近期发布变更
  3. 03检查集群事件和资源用量
  4. 04提交重启或扩缩容操作供批准

MCP 相关

Janus 向 MCP 客户端提供受限的 Kubernetes 诊断和写入工具,以及 `cluster://summary` 资源和 `diagnose_namespace` 提示词。写入工具需要人工明确确认,且只有启用后才会注册。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"tonylchang-janus": {
"command": "uvx",
"args": [
"janus-mcp-server"
]
}
}
}
启动命令uvx janus-mcp-server

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

安装包
pypijanus-mcp-server0.4.1
ocighcr.io/tonylchang/janus-mcp:v0.4.1

工具

还没有获取到工具列表

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

详细介绍

Janus — Kubernetes 原生 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 │       │               │
└──────────────┘       └────────────────┘       └───────────────┘
  1. 使用工具,而非文本转储 — Janus 提供一组 MCP 工具(get_pods、describe_deployment、get_events 等),供大模型调用。它绝不会交出原始集群状态。
  2. 自动脱敏 — Kubernetes API 的每个响应都会经过清理。在大模型看到内容之前,机密信息、令牌、环境变量值和敏感元数据都会被移除。
  3. 写入操作需人工批准 — 只读操作会立即执行。破坏性操作(重启、扩缩容、删除)需要在 MCP 客户端中明确确认。大模型可以提议操作,但必须由人工执行。
  4. 限定访问范围 — Janus 可以限制为特定命名空间、指定集群,甚至一部分资源,在 KUBECONFIG 所允许的权限之外再增加一道安全保障。

功能

  • 🔒 凭据绝不暴露 — 你的 KUBECONFIG 绝不会离开运行 Janus 的进程。
  • 🔍 丰富的只读诊断功能 — Pod、工作负载、服务、事件、日志、端点、配额、实时 CPU/内存用量与请求量对比(kubectl top+),以及经过脱敏的模板差异滚动历史(“最近有什么变化?”)。
  • ✍️ 受保护的写入操作 — 滚动重启与回滚、扩缩容、删除 Pod(绑定 UID)、暂停/恢复/触发 CronJob、隔离节点——每项操作都需要模型之外的人工批准,且只有操作员启用后才会注册。
  • 🧹 可插拔的脱敏引擎 — 提供合理的默认设置,也可以轻松扩展以支持你自己的模式。
  • 🧭 两种方式查看集群概览 — get_cluster_summary 工具,以及可固定的 cluster://summary MCP 资源,让大模型无需频繁调用工具即可获取上下文。
  • 🩺 引导式分类诊断 — diagnose_namespace 提示词模板会引导模型进行结构化调查(概览 → Pod → 警告 → 有针对性的日志 → 诊断),适用于任何支持 MCP 提示词的客户端。
  • 🧪 兼容任意 MCP 客户端 — Claude Code、Claude Desktop、VS Code、Codex,或你自己的 Agent 循环。

路线图

  • 分发 ✓ — PyPI janus-mcp-server · 容器 ghcr.io/tonylchang/janus-mcp · Homebrew tonylchang/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 会获取相关信息并进行净化,然后由大模型引导你了解发生了什么 — 全程安全可靠。

文档

  • 运维手册 — 安装、最小权限 RBAC、审批、审计日志、故障排查
  • 威胁模型 — 五项安全不变量,以及 CI 如何验证它们
  • rbac/ — 最小权限清单(请注意其中缺少的内容:密钥 — 绝不会出现)

Janus 目前正处于积极开发阶段。

评论

支持 Markdown

第一次接触 MCP?

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

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