Skip to main content

Model Context Protocol (MCP) server for Zoekt code search

Project description

Zoekt MCP Server

A Model Context Protocol (MCP) server that provides code search capabilities powered by Zoekt, the indexed code search engine used by Sourcegraph.

Table of Contents

Overview

This MCP server integrates with Zoekt, a text search engine optimized for code repositories. Zoekt provides trigram-based indexing for searches across large codebases, making it suitable for AI assistants that need to find and understand code patterns.

Features

  • Code Search: Search across codebases using Zoekt's trigram indexing
  • Advanced Query Language: Support for regex patterns, file filters, language filters, and boolean operators
  • Repository Discovery: Find repositories by name and explore their structure
  • Content Fetching: Browse repository files and directories
  • AI Integration: Designed for LLM integration with guided search prompts

Prerequisites

  • Zoekt Instance: You need access to a running Zoekt search server. See the Zoekt documentation for setup instructions.
  • Python 3.10+: Required for running the MCP server
  • UV (optional): Modern Python package manager for easier dependency management

Installation

Using UV (recommended)

# Install dependencies
uv sync

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

Using 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

Using 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

Configuration

Required Environment Variables

  • ZOEKT_API_URL: URL of your Zoekt search instance

Optional Environment Variables

  • MCP_SSE_PORT: SSE server port (default: 8000)
  • MCP_STREAMABLE_HTTP_PORT: HTTP server port (default: 8080)

Usage with AI Tools

Cursor

After running the MCP server, add the following to your .cursor/mcp.json file:

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

MCP Tools

This server provides three powerful tools for AI assistants:

🔍 search

Search across indexed codebases using Zoekt's advanced query syntax with support for regex, language filters, and boolean operators.

📖 search_prompt_guide

Generate a context-aware guide for constructing effective search queries based on your specific objective.

📂 fetch_content

Retrieve file contents or explore directory structures from indexed repositories.

Development

Linting and Formatting

# Check code style
uv run ruff check src/

# Format code
uv run ruff format src/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_divar_ir_zoekt_mcp-0.1.0.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iflow_mcp_divar_ir_zoekt_mcp-0.1.0-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

Details for the file iflow_mcp_divar_ir_zoekt_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_divar_ir_zoekt_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_divar_ir_zoekt_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4eccbca73d53e2cde44d83ade5596b2f8dbe7949407ef8b5470a8294cd5f489c
MD5 7c51e5b63485a794381609668e1796d7
BLAKE2b-256 0099a5bee71b0c2daa04214112768288154c3d7b5f18394dd880731e0f89383e

See more details on using hashes here.

File details

Details for the file iflow_mcp_divar_ir_zoekt_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_divar_ir_zoekt_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 20.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_divar_ir_zoekt_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 96149fc70bb2ed459772759f3d3f7493e3e4c94920815015377b5b256e263f59
MD5 03e8fd80f7d02004dbd397a9f3cd2e39
BLAKE2b-256 256466d09ce88d71629f0bea57029a39dd91c6e7d6874ab2bb51a4163ac6b62c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page