使用说明

项目简介

code-helper 是一个代码搜索 MCP 服务器,旨在为大型语言模型(LLM)客户端提供代码检索服务,支持关键词和向量混合搜索,以实现检索增强生成(RAG)。它使用 PostgreSQL 数据库存储代码片段和向量 embeddings,并利用 FastMCP 框架搭建 MCP 服务器。

主要功能点

  • 代码检索:支持通过关键词和语义向量进行代码片段和文档的搜索。
  • 混合搜索:结合关键词搜索和向量搜索的结果,提高检索准确率。
  • 递归摘要:对代码模块、类和函数进行递归摘要,提升检索效率。
  • MCP 服务器:基于 FastMCP 框架,可以作为 MCP 服务器被 Claude 等 LLM 客户端调用。

安装步骤

  1. 克隆仓库

    git clone https://github.com/PrefectHQ/code-helper.git
    cd code-helper
  2. 创建并激活虚拟环境

    python -m venv env
    source env/bin/activate   # Linux/macOS
    # env\Scripts\activate  # Windows
  3. 安装依赖

    pip install -r requirements.lock
    pip install -e .
  4. 配置数据库

    • 确保已安装 PostgreSQL 数据库,并启用了 'pgvector' 扩展。
    • 修改项目配置文件中的 'DATABASE_URL' 环境变量,指向您的 PostgreSQL 数据库。
  5. 初始化数据库

    alembic upgrade head

服务器配置

要将 code-helper MCP 服务器配置到 MCP 客户端(例如 Claude),您需要提供服务器的启动命令和参数。以下是配置示例,请根据您的实际环境进行调整:

{
  "mcpServers": {
    "Code search MCP server": {  // 服务器名称,可以自定义
      "command": "/Users/your_username/code-helper/env/bin/uv",  // MCP服务器启动命令,这里使用 uv 运行 FastMCP,请替换为您的 uv 或 python 虚拟环境路径
      "args": [
        "run",
        "-p",
        "/Users/your_username/code-helper/env/bin/python",  // Python 解释器路径,请替换为您的 python 虚拟环境路径
        "fastmcp",  // FastMCP 运行命令
        "run",
        "/Users/your_username/code-helper/src/code_helper/app.py"  // 应用入口文件路径,请替换为您的 app.py 文件路径
      ]
    }
  }
}

注意

  • 请将上述配置示例中的 '/Users/your_username/code-helper' 替换为您实际的项目路径和虚拟环境路径。
  • 配置文件通常位于 Claude 客户端的配置目录中,例如 '~/Library/Application Support/Claude/claude_desktop_config.json' (macOS)。
  • 修改配置文件后,请重启 MCP 客户端以加载新的服务器配置。

基本使用方法

  1. 启动服务器 运行以下命令启动 MCP 服务器(开发模式):

    make run-api-dev

    服务器默认在 'http://localhost:5173' 运行,您可以使用 MCP Inspector 等工具进行测试。

  2. 在 MCP 客户端中使用

    • 按照上述 “服务器配置” 步骤将 code-helper 服务器添加到 MCP 客户端的配置中。
    • 在 MCP 客户端中,您应该能够看到名为 "Code search MCP server" 的服务器。
    • 在客户端的交互界面中,可以通过调用 'code_search' 工具来使用代码搜索功能。例如,在 Claude 中,您可以指示 Claude 使用 "Code search MCP server" 来搜索代码。

例如,您可以向 Claude 提出类似这样的问题: "请使用 Code search MCP server 帮我搜索一下关于 spaceship launch 的代码实现。"

信息

分类

开发者工具