项目简介
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安装。
- 通过Go安装:
如果您已安装Go语言环境,可以直接执行以下命令安装最新版本:
go install github.com/st3v3nmw/sourcerer-mcp/cmd/sourcerer@latest - 通过Homebrew安装 (macOS/Linux):
如果您使用Homebrew,可以按以下步骤安装:
brew tap st3v3nmw/tap brew install st3v3nmw/tap/sourcerer - 配置'.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去阅读不相关的整个文件。
信息
分类
开发者工具