article
README
🚀 Zoekt MCP 服务器
Zoekt MCP 服务器是一个模型上下文协议(MCP)服务器,借助 Zoekt 提供代码搜索功能。Zoekt 是 Sourcegraph 使用的索引代码搜索引擎。
🚀 快速开始
Zoekt MCP 服务器集成了专为代码仓库优化的文本搜索引擎 Zoekt。Zoekt 为跨大型代码库的搜索提供基于三元组的索引,非常适合需要查找和理解代码模式的 AI 助手。
✨ 主要特性
- 代码搜索:使用 Zoekt 的三元组索引在代码库中进行搜索。
- 高级查询语言:支持正则表达式模式、文件过滤器、语言过滤器和布尔运算符。
- 仓库发现:按名称查找仓库并探索其结构。
- 内容获取:浏览仓库文件和目录。
- AI 集成:专为大语言模型(LLM)集成设计,提供引导式搜索提示。
📦 安装指南
前置条件
- Zoekt 实例:你需要访问一个正在运行的 Zoekt 搜索服务器。有关设置说明,请参阅 Zoekt 文档。
- Python 3.10+:运行 MCP 服务器所需。
- UV(可选):现代 Python 包管理器,便于进行依赖管理。
使用 UV(推荐)
# 安装依赖项
uv sync
# 运行服务器
uv run zoekt-mcp
使用 pip
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # 在 Windows 上:venv\Scripts\activate
# 安装包
pip install -e .
# 运行服务器
python -m src.main
使用 Docker
# 构建镜像
docker build -t zoekt-mcp .
# 使用默认端口运行容器
docker run -p 8000:8000 -p 8080:8080 \
-e ZOEKT_API_URL=http://your-zoekt-instance \
zoekt-mcp
# 或者使用自定义端口运行
docker run -p 9000:9000 -p 9080:9080 \
-e ZOEKT_API_URL=http://your-zoekt-instance \
-e MCP_SSE_PORT=9000 \
-e MCP_STREAMABLE_HTTP_PORT=9080 \
zoekt-mcp
📚 详细文档
配置
必需的环境变量
ZOEKT_API_URL:你的 Zoekt 搜索实例的 URL。
可选的环境变量
MCP_SSE_PORT:SSE 服务器端口(默认:8000)。MCP_STREAMABLE_HTTP_PORT:HTTP 服务器端口(默认:8080)。
与 AI 工具一起使用
Cursor
运行 MCP 服务器后,将以下内容添加到你的 .cursor/mcp.json 文件中:
{
"mcpServers": {
"zoekt": {
"url": "http://localhost:8080/zoekt/mcp/"
}
}
}
MCP 工具
此服务器为 AI 助手提供了三个强大的工具:
🔍 search
使用 Zoekt 的高级查询语法在索引代码库中进行搜索,支持正则表达式、语言过滤器和布尔运算符。
📖 search_prompt_guide
根据你的特定目标生成上下文感知的指南,用于构建有效的搜索查询。
📂 fetch_content
从索引仓库中检索文件内容或探索目录结构。
开发
代码检查和格式化
# 检查代码风格
uv run ruff check src/
# 格式化代码
uv run ruff format src/
微信扫一扫