项目简介

Sourcerer MCP 是一个为AI代理设计的MCP(Model Context Protocol)服务器,专注于代码库的语义搜索和导航。它通过智能解析、分块、嵌入代码,并构建向量数据库,让AI能够进行概念性搜索,直接定位到所需的函数、类或代码片段,从而大幅减少LLM的token使用和认知负荷。

主要功能点

  • 代码语义搜索: 根据自然语言查询,在代码库中查找语义相关的代码片段。
  • 查找相似代码: 发现与给定代码片段在语义上相似的其他代码块。
  • 获取代码内容: 通过唯一的Chunk ID 精确获取特定代码片段的完整源代码。
  • 工作区索引管理: 支持手动触发代码库重新索引,并实时监控索引进度。
  • 多语言支持: 内置支持Go、JavaScript、Markdown、Python、TypeScript等语言的代码解析和分析。

安装步骤

在开始之前,请确保您的系统满足以下条件:

  • OpenAI API Key: 用于生成代码嵌入。
  • Git: Sourcerer MCP 必须在一个Git仓库中运行,它会尊重'.gitignore'文件。
  • Go 语言环境: 如果您选择通过Go安装。
  1. 通过Go安装: 如果您已安装Go语言环境,可以直接执行以下命令安装最新版本:
    go install github.com/st3v3nmw/sourcerer-mcp/cmd/sourcerer@latest
  2. 通过Homebrew安装 (macOS/Linux): 如果您使用Homebrew,可以按以下步骤安装:
    brew tap st3v3nmw/tap
    brew install st3v3nmw/tap/sourcerer
  3. 配置'.gitignore': 将 '.sourcerer/' 目录添加到您的项目 '.gitignore' 文件中,该目录用于存储嵌入式向量数据库,不应被版本控制:
    .sourcerer/

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

MCP客户端(如Claude Code)需要配置Sourcerer MCP服务器的启动命令和相关环境变量才能与其建立连接。以下是一个标准的MCP客户端配置文件(通常为JSON格式,如'mcp.json')示例:

{
  "mcpServers": {
    "sourcerer": {
      "command": "sourcerer",
      "env": {
        "OPENAI_API_KEY": "your-openai-api-key",
        "SOURCERER_WORKSPACE_ROOT": "/path/to/your/project"
      }
    }
  }
}
  • 'sourcerer': 这是MCP服务器的唯一标识名称,客户端将使用此名称引用该服务器。
  • 'command': 指定启动Sourcerer MCP服务器的可执行文件命令。
  • 'env': 包含启动服务器所需的环境变量。
    • 'OPENAI_API_KEY': 您的OpenAI API密钥。
    • 'SOURCERER_WORKSPACE_ROOT': 指定Sourcerer MCP需要分析的代码库的根路径,默认为当前工作目录。

基本使用方法

一旦MCP客户端配置并成功连接到Sourcerer MCP服务器,AI代理即可通过调用其暴露的工具来与代码库进行高效交互。AI代理在使用前会收到Sourcerer提供的操作指南,详细说明如何有效地使用这些工具。

  • 语义搜索: AI可以通过自然语言向Sourcerer MCP提出查询,例如:“查找身份验证逻辑和会话管理的代码”,Sourcerer MCP将返回语义上最相关的代码片段。
  • 获取特定代码: 如果AI已经知道某个代码块的Chunk ID(例如 'file.ext::Type::method'),可以直接通过该ID请求获取其精确的源代码内容。
  • 查找相似代码: AI可以提供一个已知的Chunk ID,请求Sourcerer MCP查找并返回代码库中与该片段语义相似的其他代码。
  • 索引管理: AI可以请求Sourcerer MCP重新索引整个工作区,或者检查当前代码库的索引进度和状态。

Sourcerer MCP旨在通过这种方式,让AI代理能够以“外科手术般的精度”获取所需代码,避免浪费昂贵的token去阅读不相关的整个文件。

信息

分类

开发者工具