返回市场
索克特-mcp

索克特-mcp

作者:divar-ir18 星标更新:2025-08-23

项目介绍

Zoekt MCP 服务器

这是一个基于 Zoekt 的 Model Context Protocol (MCP) 服务器,提供代码搜索功能。Zoekt 是一个由 Sourcegraph 使用的索引代码搜索引擎。

目录

概述

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

特性

  • 代码搜索:使用 Zoekt 的三字母组合索引在代码库中进行搜索
  • 高级查询语言:支持正则表达式模式、文件过滤器、语言过滤器和布尔运算符
  • 仓库发现:通过名称找到仓库并探索其结构
  • 内容获取:浏览仓库文件和目录
  • AI 集成:设计用于与 LLM 集成,并提供引导搜索提示

前置条件

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

安装

使用 UV(推荐)

# 安装依赖项
uv sync

# 运行服务器
uv run python src/main.py

使用 pip

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # 在 Windows 上:venv\Scripts\activate

# 安装包
pip install -e .

# 运行服务器
python src/main.py

使用 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/