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
- Features
- Prerequisites
- Installation
- Configuration
- Usage with AI Tools
- MCP Tools
- Development
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/
Metadata
Release files for iflow-mcp_divar-ir-zoekt-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_divar_ir_zoekt_mcp-0.1.0.tar.gz | 16.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_divar_ir_zoekt_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 36.1 kB
Release files / iflow_mcp_divar_ir_zoekt_mcp-0.1.0.tar.gz
| Download URL | iflow_mcp_divar_ir_zoekt_mcp-0.1.0.tar.gz |
|---|---|
| Size | 16.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4eccbca73d53e2cde44d83ade5596b2f8dbe7949407ef8b5470a8294cd5f489c
|
|
BLAKE2b-256 checksum How to use checksums |
0099a5bee71b0c2daa04214112768288154c3d7b5f18394dd880731e0f89383e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / iflow_mcp_divar_ir_zoekt_mcp-0.1.0-py3-none-any.whl
| Download URL | iflow_mcp_divar_ir_zoekt_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 20.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
96149fc70bb2ed459772759f3d3f7493e3e4c94920815015377b5b256e263f59
|
|
BLAKE2b-256 checksum How to use checksums |
256466d09ce88d71629f0bea57029a39dd91c6e7d6874ab2bb51a4163ac6b62c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|