Klaus MCP 服务器(Claude Code 集成,Kubernetes 版本)
- 项目简介
- Klaus 将 Claude Code 的 CLI 流式输出封装为 MCP 服务器,提供 /mcp 流式接口,供 LLM 客户端以统一的 JSON-RPC 方式请求资源、调用工具、获取提示模板等上下文信息。
- 服务器侧负责会话管理、能力声明以及对接 Kubernetes 等基础设施,便于在云原生环境中运行与扩展。
- 主要功能点
- MCP 服务器端点
- /mcp:流式 HTTP MCP 端点,支持 JSON-RPC 风格的请求与响应,用于读取资源、执行工具、获取 Prompt 等。
- /healthz、/readyz、/status:健康、就绪与状态探针,便于运维监控。
- 工具与扩展
- 内置工具集:prompt、status、stop、result,允许 LLM 客户端提交任务、查询状态、获取结果、调试信息。
- 支持 Claude Code 的扩展 Surface(Skills、Subagents、Hooks、MCP Servers、Plugins 等),从 Helm values/自定义 CRD 配置加载。
- 资源与上下文
- 资源与上下文通过 Claude 子进程输出与 MCP 交互,结合 Prompts、Tool 调用和模型使用信息,提供丰富的上下文。
- 安全与部署
- 可选 OAuth 2.1 认证(Dex/Google 提供者),并支持 TLS 配置。
- 依赖 Claude Code 子进程(通过 Klaus 封装的工作流与 Prompter 接口实现)进行任务执行。
- 运行时可观测性
- 集成 Prometheus 指标,监控命中数、持续时间、工具调用、成本等,便于运维和成本控制。
- MCP 服务器端点
- 安装与运行步骤(简要版)
-
- 准备 Claude Key
- 设置环境变量 ANTHROPIC_API_KEY,确保 Klaus 可以访问 Claude 服务。
-
- 运行 Klaus
- 直接在本地运行(示例): Klaus 作为可执行文件,执行 klaus serve。
- Docker 示例(常用在 Kubernetes 中): docker run -d -p 8080:8080 -e ANTHROPIC_API_KEY=your_key klaus:latest serve
-
- 服务就绪后
- MCP 端点地址通常为 http://<主机>:8080/mcp
- 可以通过 /healthz、/readyz、/status 进行健康与状态检查。
-
- 进行 MCP 客户端连接
- MCP 客户端需要配置启动命令和参数以连接 Klaus 的 /mcp 端点(以下 JSON 配置示例给出服务器端信息,客户端并不需要在此处展示代码)。
-
- 服务器配置(MCP 客户端配置示例说明)
- 说明:MCP 客户端需要一个描述服务器信息的 JSON 配置,包含服务器名称、命令与参数等,用于初始化连接。下面给出配置要点的描述,实际客户端不要包含在这里的实现代码。
- 配置要点(JSON 格式,示意,不是代码块): { "serverName": "klaus", "command": "klaus", "args": ["serve"] }
- 说明
- serverName:MCP 客户端识别的服务器名称,应与实际运行的 Klaus 实例一致。
- command:启动 Klaus 的命令名称,此处为 klaus。
- args:启动 Klaus 的参数,最小应包含 "serve"。
- 备注
- 客户端配置不需要额外的身份认证信息;如果开启 OAuth,请在 MCP 请求中提供 Bearer token,服务器端负责校验。
- 基本使用方法
- 连接与调用
- 通过 /mcp 提供的流式 JSON-RPC 接口,LLM 客户端可以读取资源、调用工具、获取 Prompts,并接收持续的上下文信息。
- 任务管理
- 使用 prompt 工具提交任务,可选择阻塞或非阻塞模式,以便按需获取结果或进度更新。
- 观察与扩展
- 使用 /healthz、/readyz、/status、/metrics 监控服务健康、就绪状态与资源消耗。
- 集成建议
- 在 Kubernetes 中以 Helm/Operator 方式部署 Klaus,结合现有的云原生工具链实现弹性扩展、健康检查和滚动更新。
- 连接与调用