KubeSearch MCP Server

使用说明

  • 项目简介

    • 该仓库实现了一个 MCP 服务器,专注于为大语言模型提供对 real-world Kubernetes Helm 部署示例的上下文信息,包含资源查询、工具执行和配置值分析等能力。
    • 服务器通过一个可执行的 Node.js 应用暴露工具集,客户端可以通过 MCP 标准的请求/响应模式调用这些工具并获取结果。
  • 主要功能点

    • 数据库访问:读取本地的 k8s-at-home-search SQLite 数据库,聚合 HelmRelease、Chart、Value 等信息,作为后端数据源。
    • 工具注册与执行:暴露若干 MCP 工具,例如 search_deployments、list_chart_sources、get_chart_details、get_chart_index、get_chart_stats、search_container_images,客户端可通过 JSON-RPC 调用这些工具获取结构化结果。
    • 支持多种传输(当前实现重点为标准化的 Stdio 传输,便于 Claude Desktop 等 MCP 客户端通过标准输入输出对接)。
    • 会话与能力声明:在启动时声明服务器能力,并为每个工具提供相应的输入输出描述(schema),便于客户端构造请求。
    • 安全与鲁棒性:对数据库进行只读访问,包含错误处理、日志输出以及对环境变量的可配置性(如数据库路径、作者权重等)。
  • 安装步骤

    • 克隆仓库后进入项目目录,安装依赖:
      • npm install
    • 构建代码:
      • npm run build
    • 运行服务器(示例,实际路径请替换为本地实际路径):
      • 使用 Node.js 运行打包后的入口文件,例如 dist/index.js
    • 注意:Docker 镜像也提供了可直接运行的方案,启动时需要将 repos.db 和 repos-extended.db 挂载到 /data/ 目录,并通过环境变量指定数据库路径。
  • 服务器配置(MCP 客户端连接所需信息,JSON 格式,包含 server name、command、args 等)

    • 服务器名称:kubesearch
    • 启动命令:node
    • 启动参数:dist/index.js(假设在 dist 目录下的打包入口)
    • 环境变量(示例注释,实际使用请按本地路径配置):
      • KUBESEARCH_DB_PATH: 数据库主数据库的本地路径,例如 /absolute/path/to/repos.db
      • KUBESEARCH_DB_EXTENDED_PATH: 扩展数据库路径,例如 /absolute/path/to/repos-extended.db
      • LOG_LEVEL: 日志级别,可选值 debug/info/warn/error,默认 info
      • AUTHOR_WEIGHTS: JSON 字符串,定义作者权重,例如 "{"bjw-s":1.5}"
    • 注:以上配置用于 MCP 客户端在启动时对服务器进行对接,实际客户端端无需理解内部实现细节,只需提供上述字段以建立连接。
  • 基本使用方法

    • 启动后客户端通过 MCP 标准的 JSON-RPC 请求与服务器交互,调用工具并获取结果。
    • 常见操作包括:
      • 通过工具列表获取服务器支持的工具集合
      • 调用具体工具,如 search_deployments、get_chart_details 等,传入相应的输入参数
    • 运行时若遇到数据库初始化失败、权限问题或网络/文件访问错误,请检查数据库文件是否存在、权限是否正确、以及环境变量配置是否正确。
  • 其他说明

    • 该实现包含大量单元测试,覆盖工具的输入输出、数据收集、评分逻辑等,确保在真实数据下的鲁棒性与正确性。
    • 详细的工具输入输出格式在各自工具的 schema 中定义,客户端应遵循这些 schema 构造请求。

服务器信息