代码搜索服务

Zoekt MCP Server是一个基于Zoekt索引代码搜索引擎的模型上下文协议服务器,提供跨代码库的高级搜索功能,适用于AI助手和开发工具。

  • by najva-ai
  • Python
  • 本地部署
  • 23 星标
  • 更新于
在 GitHub 查看 divar-ir/zoekt-mcp

使用说明

寻找 MCP 伺服器

一种模型上下文协议(MCP)服务器,提供代码搜索功能,由 正在搜索,Sourcegraph使用的索引代码搜索引擎。

目录

概述

此MCP服务器与Zoekt集成,Zoekt是一个针对代码库优化的文本搜索引擎。Zoekt为跨大型代码库的搜索提供了基于三元组的索引,使其适用于需要查找和理解代码模式的AI助手。

特性

  • 代码搜索:使用Zoekt的三元组索引在代码库中搜索
  • 高级查询语言:支持正则表达式模式、文件过滤器、语言过滤器和布尔运算符
  • 存储库发现:按名称查找存储库并探索其结构
  • 内容获取:浏览存储库文件和目录
  • 人工智能集成:专为LLM集成而设计,带有引导式搜索提示

先决条件

  • 正在搜索实例:您需要访问正在运行的Zoekt搜索服务器。请参阅 搜索文档 有关设置说明。
  • Python 3.10+:运行MCP服务器所需
  • 紫外线的 (可选):现代Python包管理器,便于依赖管理

安装

使用紫外线(推荐)

# Install dependencies
uv sync

# Run the server
uv run python src/main.py

使用pip

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install package
pip install -e .

# Run the server
python src/main.py

使用Docker

# Build the image
docker build -t zoekt-mcp .

# Run the container with default ports
docker run -p 8000:8000 -p 8080:8080 \
  -e ZOEKT_API_URL=http://your-zoekt-instance \
  zoekt-mcp

# Or run with custom ports
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工具

光标

运行MCP服务器后,将以下内容添加到您的 .cursor/mcp.json 文件:

{
  "mcpServers": {
    "zoekt": {
      "url": "http://localhost:8080/zoekt/mcp/"
    }
   }
}

MCP工具

该服务器为AI助手提供了三个强大的工具:

🔍 搜索

使用Zoekt的高级查询语法在索引代码库中搜索,支持正则表达式、语言过滤器和布尔运算符。

📖 搜索_提示_指南

根据您的特定目标生成一个上下文感知指南,用于构建有效的搜索查询。

📂 食品成分

从索引存储库中检索文件内容或探索目录结构。

发展

装订和格式化

# Check code style
uv run ruff check src/

# Format code
uv run ruff format src/