项目简介

kodit 是一个用于索引本地代码库并提供检索能力的工具,它通过实现 Model Context Protocol (MCP) 服务器接口,使得大型语言模型 (LLMs) 能够以标准化的方式访问和利用这些代码信息,从而提升代码生成、理解和问答的质量。

主要功能点

  • 代码源管理: 支持添加和管理本地文件目录作为代码源。
  • 代码索引: 对指定的代码源创建索引,提取代码片段(例如函数、方法等)。
  • 代码检索: 基于关键词或用户意图,在已索引的代码中搜索并返回相关的代码片段。
  • MCP服务器接口: 将代码检索功能封装为标准的MCP工具 ('retrieve_relevant_snippets'),供MCP客户端(如LLM应用)调用。
  • 多种安装方式: 提供 Docker, pipx, homebrew, pip 等多种便捷安装方式。

安装步骤

以下是推荐的安装方法之一,请选择您喜欢的方式:

使用 pipx (推荐用于CLI应用):

pipx install kodit

或使用 Docker:

docker run -it --rm registry.helix.ml/helix/kodit:latest

(请注意,生产环境推荐使用特定版本而非 'latest')

或使用 Homebrew (macOS/Linux):

brew install helixml/kodit/kodit

或使用 uv:

uv tool install kodit

服务器配置 (供 MCP 客户端使用)

MCP 客户端需要知道如何启动 kodit MCP 服务器。以下是基于 kodit CLI 的标准启动配置信息,您需要将其提供给 MCP 客户端进行配置(例如,在客户端的设置文件或界面中填写):

{
  "server name": "kodit MCP Server",
  "command": "kodit",
  "args": [
    "serve",
    "--host", "127.0.0.1",  // MCP服务器绑定的IP地址,通常是本地地址
    "--port", "8080"       // MCP服务器监听的端口,默认是8080
    // 可选参数: "--reload" 用于开发模式
  ],
  "transport": "sse" // 指明使用的传输协议是 Server-Sent Events
  // 客户端可能还需要其他配置,例如日志级别、遥测禁用等,根据需要添加相应的 kodit CLI 参数到 args 列表中。
}

基本使用方法

  1. 启动 kodit 服务器: 打开终端,运行以下命令:

    kodit serve

    服务器将在默认端口 8080 启动,等待 MCP 客户端连接。

  2. (可选)管理代码源和索引(在服务器启动前或在另一个终端窗口操作):

    • 添加代码源: 将本地代码目录添加为 kodit 的一个源。例如,添加 '/path/to/your/codebase':
      kodit sources create /path/to/your/codebase
      记下输出中显示的 Source ID。
    • 列出代码源: 查看已添加的所有代码源:
      kodit sources list
    • 创建索引: 为一个代码源创建索引。使用上一步获取的 Source ID:
      kodit indexes create <Source ID>
      记下输出中显示的 Index ID。
    • 列出索引: 查看已创建的所有索引:
      kodit indexes list
    • 运行索引: 执行索引过程,从代码文件中提取片段并存储。使用 Index ID:
      kodit indexes run <Index ID>
    • 通过CLI检索: 可以在CLI中直接测试检索功能 (这不是通过MCP,仅用于验证索引数据):
      kodit retrieve "hello world function"
  3. 连接 MCP 客户端: 配置您的 MCP 客户端,使用上面提供的服务器配置信息("command": "kodit", "args": ["serve", "--host", "127.0.0.1", "--port", "8080"] 等)。客户端连接成功后,应该能够发现 'retrieve_relevant_snippets' 工具,并在需要代码上下文时调用它。

请注意: MCP 服务器需要访问到您的代码源文件才能进行索引和检索。确保运行服务器的用户有权限访问这些目录。

信息

分类

AI与计算