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 构造请求。