Back to MCP directory
publicPublicdnsLocal runtime

zoekt-mcp

Zoekt MCP服务器是一个基于Zoekt代码搜索引擎的模型上下文协议服务,提供代码搜索、仓库发现和内容获取功能,专为AI工具集成设计。

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/
help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client