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 指标,监控命中数、持续时间、工具调用、成本等,便于运维和成本控制。
  • 安装与运行步骤(简要版)
      1. 准备 Claude Key
      • 设置环境变量 ANTHROPIC_API_KEY,确保 Klaus 可以访问 Claude 服务。
      1. 运行 Klaus
      • 直接在本地运行(示例): Klaus 作为可执行文件,执行 klaus serve。
      • Docker 示例(常用在 Kubernetes 中): docker run -d -p 8080:8080 -e ANTHROPIC_API_KEY=your_key klaus:latest serve
      1. 服务就绪后
      • MCP 端点地址通常为 http://<主机>:8080/mcp
      • 可以通过 /healthz、/readyz、/status 进行健康与状态检查。
      1. 进行 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,结合现有的云原生工具链实现弹性扩展、健康检查和滚动更新。

服务器信息