Zoekt MCP
What it does
Fast indexed code search for AI agents, powered by Sourcegraph Zoekt.
- Connects Läuft auf deinem Computer
- Account or key No key needed
- Category Suche & KI-Gedächtnis
Installation
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
2/3 Prüfungen bestanden · Läuft auf deinem Computer
Zuerst: Welche KI nutzt du?
Wähle deine App, dann erscheinen die Schritte unten.
Python (uv) installieren
Nur einmal; gilt für alle Server, die Python (uv) brauchen
Bei Zoekt MCP registrieren und Schlüssel erstellen
Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.
Wie du einen Schlüssel bekommst, steht unten im README des Anbieters
Einstellungsdatei der Claude-Desktop-App öffnen
SettingsDeveloperEdit Config
Diese Einstellungen einfügen und speichern
{ "mcpServers": { "zoekt": { "command": "uvx", "args": [ "zoekt-mcp" ], "env": { "ZOEKT_URL": "your-value" } } } }Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem
Claude beenden und neu öffnen
Ausprobieren
Nutze Zoekt MCP und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Claude sagt, dass es Zoekt MCP nutzt, oder ein Werkzeug von Zoekt MCP in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
ChatGPT kann Zoekt MCP noch nicht verbinden
Zoekt MCP läuft auf deinem Computer, aber ChatGPT verbindet nur Server, die im Web laufen
Das kannst du stattdessen tun
A · Eine App nutzen, die Zoekt MCP verbinden kann
- Du brauchst einen Schlüssel von Zoekt MCP (auf der Seite des Anbieters erstellen) · Installiere zuerst Python (uv) auf deinem Computer (nur einmal) · Nur in der Claude-App für den Computer (Windows oder Mac), nicht im Web oder auf dem Handy
- Du brauchst einen Schlüssel von Zoekt MCP (auf der Seite des Anbieters erstellen) · Installiere zuerst Python (uv) auf deinem Computer (nur einmal)
- Du brauchst einen Schlüssel von Zoekt MCP (auf der Seite des Anbieters erstellen) · Installiere zuerst Python (uv) auf deinem Computer (nur einmal)
- Du brauchst einen Schlüssel von Zoekt MCP (auf der Seite des Anbieters erstellen) · Installiere zuerst Python (uv) auf deinem Computer (nur einmal)
B · Andere in Suche & KI-Gedächtnis, die mit ChatGPT funktionieren
Aus den meistgenutzten derselben Kategorie, nur solche, die per Adresse ohne Schlüssel verbinden
- Context7✓ ChatGPT
- AIHOT✓ ChatGPT
- Sui Knowledge Base (kapa.ai)✓ ChatGPT
Klappt mit Claude Code, aber erst etwas vorbereiten
Du brauchst einen Schlüssel von Zoekt MCP (auf der Seite des Anbieters erstellen) · Installiere zuerst Python (uv) auf deinem Computer (nur einmal)
Python (uv) installieren
Nur einmal; gilt für alle Server, die Python (uv) brauchen
Bei Zoekt MCP registrieren und Schlüssel erstellen
Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.
Wie du einen Schlüssel bekommst, steht unten im README des Anbieters
Terminal öffnen
Mac: Command+Leertaste drücken und Terminal tippen · Windows: PowerShell öffnen
Diesen Befehl einfügen und Enter drücken
claude mcp add --scope user zoekt --env ZOEKT_URL=your-value -- uvx zoekt-mcpErsetze „your-value“ vor dem Enter durch deinen Schlüssel
Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem
/mcp in Claude Code eingeben
Zoekt MCP sollte in der Liste als verbunden erscheinen
Ausprobieren
Nutze Zoekt MCP und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Claude Code sagt, dass es Zoekt MCP nutzt, oder ein Werkzeug von Zoekt MCP in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von Anthropic abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Klappt mit Cursor, aber erst etwas vorbereiten
Du brauchst einen Schlüssel von Zoekt MCP (auf der Seite des Anbieters erstellen) · Installiere zuerst Python (uv) auf deinem Computer (nur einmal)
Python (uv) installieren
Nur einmal; gilt für alle Server, die Python (uv) brauchen
Bei Zoekt MCP registrieren und Schlüssel erstellen
Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.
Wie du einen Schlüssel bekommst, steht unten im README des Anbieters
Schlüssel eintragen
In den Einstellungen von Zoekt MCP ist ZOEKT_URL leer; trag deinen Schlüssel ein und speichere
Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem
KI-Chat in Cursor im Agent-Modus öffnen
Ausprobieren
Nutze Zoekt MCP und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn Cursor sagt, dass es Zoekt MCP nutzt, oder ein Werkzeug von Zoekt MCP in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von Cursor abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Klappt mit VS Code, aber erst etwas vorbereiten
Du brauchst einen Schlüssel von Zoekt MCP (auf der Seite des Anbieters erstellen) · Installiere zuerst Python (uv) auf deinem Computer (nur einmal)
Python (uv) installieren
Nur einmal; gilt für alle Server, die Python (uv) brauchen
Bei Zoekt MCP registrieren und Schlüssel erstellen
Öffne die Seite des Anbieters, registriere dich und erstelle einen API-Schlüssel für den nächsten Schritt. Preise und Gratis-Tarife siehst du auf seiner Seite.
Wie du einen Schlüssel bekommst, steht unten im README des Anbieters
Mit diesem Button VS Code öffnen
VS Code fragt nach einer Bestätigung; klicke Install
Schlüssel eintragen
In den Einstellungen von Zoekt MCP ist ZOEKT_URL leer; trag deinen Schlüssel ein und speichere
Füge den Schlüssel nur in das Feld der App ein, nie in einen Chat und schick ihn niemandem
KI-Chat in VS Code im Agent-Modus öffnen
Ausprobieren
Nutze Zoekt MCP und sag mir, was du für mich tun kannst; zeig mir dann eine Sache✓ Wenn VS Code sagt, dass es Zoekt MCP nutzt, oder ein Werkzeug von Zoekt MCP in der Antwort zeigt, bist du verbunden
Menünamen am 11. Nov. 2026 mit der Hilfe von VS Code abgeglichen · dein Bildschirm kann je nach App-Version leicht abweichen
Andere Apps mit MCP, etwa Windsurf, Zed oder Gemini CLI, fügen Server unterschiedlich hinzu. Sieh in der App-Liste nach
JSON-Einstellungen stehen unten unter „Für Entwickler“
Für Entwickler: Terminal-Befehle und JSON-Einstellungen
Auf deinem Computer installiert
Claude Code
claude mcp add --scope user zoekt --env ZOEKT_URL=your-value -- uvx zoekt-mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"zoekt": {
"command": "uvx",
"args": [
"zoekt-mcp"
],
"env": {
"ZOEKT_URL": "your-value"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"zoekt": {
"command": "uvx",
"args": [
"zoekt-mcp"
],
"env": {
"ZOEKT_URL": "your-value"
}
}
}
}VS Code (mcp.json)
{
"servers": {
"zoekt": {
"type": "stdio",
"command": "uvx",
"args": [
"zoekt-mcp"
],
"env": {
"ZOEKT_URL": "your-value"
}
}
}
}Werte, die du selbst einträgst
ZOEKT_URLenvBase URL of the zoekt-webserver backend (defaults to http://localhost:6070)
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Auf einen Blick
- Downloads pro Wochei
- 29/Wo.
- Verbindung
- Läuft auf deinem Computer
- Neueste Versioni
- 0.3.2
- Kategoriei
- Suche & KI-Gedächtnis
- In der Registry veröffentlichti
- 9. Apr. 2026
- Code zuletzt geänderti
- 9. Apr. 2026
- Entwickler
- radiovisual
- Pakete
pypi: zoekt-mcpoci: ghcr.io/radiovisual/zoekt-mcp:0.3.2- Registry-Status
- Aktiv
Welche Apps ihn nutzen können
Basierend darauf, wie sich dieser Server verbindet, und auf der eigenen Doku jeder App, geprüft am 10. Nov. 2026.
Laufen auf deinem Computer in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Was er kann
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Basischecksi
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 13. Nov. 2026
- ✓ Bestanden
Entwickler passt zum Repo
Der Registry-Name wurde mit dem GitHub-Konto radiovisual bestätigt, dem das Repo gehört
- ! Vorsicht
Wird noch gepflegt
Code zuletzt geändert: vor 7 Monaten, vor mehr als 6 Monaten
- ✓ Bestanden
Hat eine Lizenz
Nutzt MIT
- – Nicht zutreffend
Endpunkt antwortet
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
- – Nicht zutreffend
Anmeldung mit OAuth
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
- … Noch nicht geprüft
Keine versteckten Anweisungen in Tool-Beschreibungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Diskussion
Fragen, Tipps teilen oder melden, dass etwas nicht geht. Sortiert nach „hilfreich“.
Noch keine Beiträge. Stell die erste Frage oder teile einen Tipp.
Beiträge hier stammen von Nutzern, nicht vom PopNx-Team.
Nutzerbewertungen
Noch keine Bewertungen
Im Vergleich mit anderen in Suche & KI-Gedächtnisi
- Mehr Sterne als 82 % der anderen 6017 Server in dieser Kategorie
- Neuer in der Registry veröffentlicht als 8 % der anderen 6017 Server in dieser Kategorie
- Basischecks gleich gut wie oder besser als bei 49 % der anderen 6017 Server in dieser Kategorie
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Häufige Fragen
Ist Zoekt MCP sicher?
Er hat 2 von 3 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Welche Schlüssel oder Codes braucht er?
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Läuft er auf meinem Computer oder in der Cloud?
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Wird er noch gepflegt?
Das GitHub-Repo wurde zuletzt vor 7 Monaten geändert, und die neueste Version (0.3.2) kam vor 7 Monaten in die Registry.
Welche Apps können ihn nutzen?
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv), Docker auf deinem Computer.
Was kann ich stattdessen nutzen?
In derselben Kategorie: Context7, Codebase Memory, Ruflo
Andere in derselben Kategorie
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Codebase Memory
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Ruflo
Agent teams, swarms, memory and hooks for Claude Code and Codex, served over MCP.
README vom Entwickler
README öffnen
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
zoekt-mcp
An MCP server that exposes Sourcegraph Zoekt code search to any MCP-capable AI agent — Claude Code, Claude Desktop, Cursor, MCP Inspector, etc. — so the agent can run fast, indexed, regex/symbol-aware code search over your repositories regardless of the language you're working in.
- MCP server: Python, built on FastMCP, runs over stdio so clients can spawn it as a subprocess. Published to PyPI, ghcr.io, and listed in the official MCP Registry, so no clone is required to use it.
- Backend: a
zoekt-webserveryou run yourself via the Docker Compose file attached to every GitHub release — or point the MCP server at any existing zoekt-webserver you have lying around. - Tools exposed:
search_code,list_repos,get_file.
Architecture
flowchart LR
subgraph Client["MCP client"] CC["Claude Code Claude Desktop Cursor, etc."] end
subgraph Server["zoekt-mcp (Python)"] Tools["search_code list_repos get_file"] end
subgraph Backend["Docker: zoekt backend"] Web["zoekt-webserver"] Idx[("zoekt index named volume")] Indexer["zoekt-indexer (one-shot)"] end
Code[("Your code bind mount")]
CC <-->|"stdio MCP protocol"| Tools Tools <-->|"HTTP JSON /api/search /api/list /print"| Web Web --> Idx Code --> Indexer Indexer --> Idx
How a single search flows through the system
sequenceDiagram
actor You participant Claude as Claude Code participant MCP as zoekt-mcp participant Web as zoekt-webserver participant Idx as zoekt index
You->>Claude: "where is getVideoId defined?" Claude->>MCP: search_code("sym:getVideoId") MCP->>Web: POST /api/search Web->>Idx: scan shards Idx-->>Web: matches + ctags symbols Web-->>MCP: raw JSON result Note over MCP: trim to {repo, file, line, text, symbols} MCP-->>Claude: shaped result Claude-->>You: "src/index.js:17 (function)"
Quickstart
Getting from "nothing installed" to "Claude can search my code" is three steps: install the MCP server, run the backend, wire it into your client. No git clone required in any of them.
Prerequisites
You need exactly one of these to run the MCP server, plus Docker for the backend:
- [uv](https://docs.astral.sh/uv/) on your `PATH` — for the
uvx zoekt-mcpinstall path. MCP clients spawn the server viauvx, sowhich uvmust resolve in whatever shell your client launches processes in. Install once per machine:
# Official installer (macOS / Linux)
curl -LsSf https://astral.sh/uv/install.sh | sh
Homebrew
brew install uv
pipx
pipx install uv
The installer drops uv and uvx into ~/.local/bin/ (Linux/macOS) or %USERPROFILE%\.local\bin\ (Windows). Verify with uv --version.
- …or Docker — for the
docker run ghcr.io/radiovisual/zoekt-mcpinstall path. Any recent Docker Desktop or engine works. You need Docker anyway for the backend, so this path saves you from installinguvif you don't already have it.
And for the backend:
- Docker with Compose v2 — runs
zoekt-webserverand the one-shot indexer via the compose file attached to every release.
1. Start the backend (once per machine)
The zoekt backend is a regular Docker Compose stack you run yourself — zoekt-mcp does not lifecycle-manage it. Grab the compose file and helper script from the latest GitHub release and bring them up against whatever directory holds your code:
# Fetch the two files you need from the latest release.
mkdir -p ~/.zoekt-mcp && cd ~/.zoekt-mcp curl -LO https://github.com/radiovisual/zoekt-mcp/releases/latest/download/docker-compose.yml curl -LO https://github.com/radiovisual/zoekt-mcp/releases/latest/download/index.sh chmod +x index.sh
Point the indexer at any parent directory on your machine.
Every top-level subdirectory becomes one searchable repo.
echo "ZOEKT_REPOS_DIR=/home/you/code" > .env
Bring up zoekt-webserver + the one-shot indexer.
docker compose up -d
So if /home/you/code looks like this:
~/code/
├── project-a/ → indexed as zoekt repo "project-a" ├── project-b/ → indexed as zoekt repo "project-b" └── scratch-notes/ → indexed as zoekt repo "scratch-notes"
…zoekt indexes all three repos in one pass and you can scope any query with repo:project-a — or leave repo: off to search across everything at once. See Indexing multiple codebases below for more on the one-server-many-repos model.
Sanity check:
curl -s -XPOST -d '{"Q":"repo:."}' http://localhost:6070/api/list \
| python3 -m json.tool | head -20
You should see each subdirectory of ZOEKT_REPOS_DIR listed as a zoekt repo.
On macOS / Windows Docker Desktop, the path you pick must be under
an allowed file-sharing root (check Docker Desktop → Settings →
Resources → File Sharing). On Linux there's no such restriction.
Just want to try it without touching your real code directory?
Clone the repo and use the in-tree test fixture:
./tests/fixtures/up.sh— see Development at the
bottom of this file.
2. Wire the MCP server into your client
Two install paths — pick whichever matches your existing tooling. Both end up running the same versioned server binary; the only difference is how it's launched.
Path A — uvx (recommended if you already have uv)
uvx downloads the latest zoekt-mcp from PyPI on first invocation, caches it, and spawns it. No permanent install, no venv to manage.
Claude Code (`~/.claude.json`):
{
"mcpServers": { "zoekt": { "type": "stdio", "command": "uvx", "args": ["zoekt-mcp"], "env": { "ZOEKT_URL": "http://localhost:6070" } } } }
Or via the claude CLI:
claude mcp add zoekt \
--env ZOEKT_URL=http://localhost:6070 \ -- uvx zoekt-mcp
Claude Desktop (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
{
"mcpServers": { "zoekt": { "command": "uvx", "args": ["zoekt-mcp"], "env": { "ZOEKT_URL": "http://localhost:6070" } } } }
Cursor (`~/.cursor/mcp.json` or `.cursor/mcp.json` in a project):
{
"mcpServers": { "zoekt": { "command": "uvx", "args": ["zoekt-mcp"], "env": { "ZOEKT_URL": "http://localhost:6070" } } } }
To pin a specific version instead of always using the latest:
"args": ["zoekt-mcp==0.1.0"]
Path B — Docker image (no Python tooling required)
If you already have Docker running for the backend and would rather not install uv, use the container image instead. MCP clients spawn it over stdio exactly like the uvx path.
Claude Code / Claude Desktop / Cursor:
{
"mcpServers": { "zoekt": { "command": "docker", "args": [ "run", "-i", "--rm", "--network=host", "-e", "ZOEKT_URL=http://localhost:6070", "ghcr.io/radiovisual/zoekt-mcp:latest" ] } } }
On Docker Desktop (macOS/Windows) the host isn't reachable via localhost from inside a container. Drop --network=host and use host.docker.internal instead:
"args": [
"run", "-i", "--rm", "-e", "ZOEKT_URL=http://host.docker.internal:6070", "ghcr.io/radiovisual/zoekt-mcp:latest" ]
To pin a specific version, replace :latest with the semver tag (e.g. :0.1.0). The image is multi-arch (linux/amd64 + linux/arm64), so it works on Apple Silicon and ARM Linux hosts without extra flags.
3. Restart the client
Restart Claude Code / Claude Desktop / Cursor and the three tools (search_code, list_repos, get_file) should appear. Try something like "where is getVideoId defined?" and watch it call search_code("sym:getVideoId").
Indexing multiple codebases
One zoekt-mcp server handles as many repos as you want — that's the default. Every top-level subdirectory of ZOEKT_REPOS_DIR becomes a separate searchable repo in one shared index. The search_code tool can scope to a subset with repo:NAME (regex matched against repo names) or leave repo: off to search across everything.
If your projects live under different parent directories (e.g. ~/work/ and ~/personal/), the simplest fix is to create a single "index root" directory with symlinks pointing at each project and set ZOEKT_REPOS_DIR to that index root. One server, one config, all repos searchable.
mkdir -p ~/.zoekt-root
ln -s ~/work/project-a ~/.zoekt-root/project-a ln -s ~/personal/side-thing ~/.zoekt-root/side-thing
cd ~/.zoekt-mcp echo "ZOEKT_REPOS_DIR=$HOME/.zoekt-root" > .env docker compose up -d
Docker has to follow the symlinks when it resolves the bind mount,
which works on Linux but is hit-or-miss on Docker Desktop. If the
linked directories don't show up inside the container, fall back
to putting real directories (or clones) under
~/.zoekt-root
instead of symlinks.
When you actually need two servers
A second zoekt-mcp instance is only worth the setup cost when you want fully isolated index pools — for example, keeping work code and personal code in completely separate search namespaces, or running two different backends (e.g. different zoekt versions) side by side. It is not needed just to index more code; one server with many subdirectories is the right tool for that.
If you genuinely want two instances:
- Copy
~/.zoekt-mcp/docker-compose.ymlto a second file, e.g.~/.zoekt-mcp/docker-compose.personal.yml. - In the copy, change:
- the compose project
name:(e.g.zoekt-mcp-personal) - the host port mapping (e.g.
6071:6070) - the named volume (e.g.
zoekt-mcp-personal-index) - the container names (e.g.
zoekt-mcp-personal-webserver)
- Give the second stack its own env file, e.g.
~/.zoekt-mcp/.env.personal, pointingZOEKT_REPOS_DIRat a different directory. - Bring each stack up with its own compose file and env file:
cd ~/.zoekt-mcp
docker compose up -d docker compose -f docker-compose.personal.yml \ --env-file .env.personal up -d
- Wire both into your MCP client as distinct servers — same
zoekt-mcpbinary, differentZOEKT_URLvalues:
{
"mcpServers": { "zoekt-work": { "command": "uvx", "args": ["zoekt-mcp"], "env": { "ZOEKT_URL": "http://localhost:6070" } }, "zoekt-personal": { "command": "uvx", "args": ["zoekt-mcp"], "env": { "ZOEKT_URL": "http://localhost:6071" } } } }
Claude Code sees two independent sets of tools (search_code / list_repos / get_file from each namespace) and decides which to call based on the question.