Semantic Search MCP
Semantische Suche
Semantische Suche über Markdown-Dateien. Finden Sie verwandte Notizen nach Bedeutung, nicht nur nach Schlüsselwörtern. Erkennen Sie Duplikate, bevor Sie neue Notizen erstellen.
Unterstützt zwei Server-Transporte:
stdio MCP — Für die Claude Code-Integration (ein Prozess pro Sitzung)
HTTP — Kombiniertes MCP-over-HTTP + REST auf einem Port; ein warmer Prozess, der von allen Clients geteilt wird
Funktionen
Semantische Suche mittels sentence-transformers
Erkennung von doppelten/ähnlichen Notizen
Automatische Aktualisierung des Index durch Dateiüberwachung
Unterstützung für mehrere Verzeichnisse
Inline-Tag-Extraktion (
#tag-name)
Installation
CPU-only Installation — empfohlen für macOS (jeder Mac, Apple Silicon oder Intel) und Linux/Windows ohne NVIDIA GPU. Spart ca. 5 GB an CUDA-Binärdateien. Unter macOS wird die Apple GPU (MPS) weiterhin automatisch erkannt und über das integrierte MPS-Backend von PyTorch genutzt — das Label "CPU" bezieht sich nur auf das Fehlen von CUDA, nicht auf das Rechengerät zur Laufzeit.
uv tool install --index https://download.pytorch.org/whl/cpu \
git+https://github.com/bborbe/semantic-searchCUDA Installation — nur für Linux/Windows mit einer dedizierten NVIDIA GPU. Nicht anwendbar auf macOS (NVIDIA CUDA wird auf dem Mac nicht unterstützt).
uv tool install git+https://github.com/bborbe/semantic-searchUpgrade
uv tool upgrade semantic-searchServer-Modi
stdio MCP (pro Sitzung Claude Code)
Startet einen Prozess pro Claude Code-Sitzung. Einfach, aber jede Sitzung lädt ihre eigene ~400 MB–1 GB Modellkopie.
claude mcp add -s project semantic-search \
--env CONTENT_PATH=/path/to/vault \
-- \
uvx --from git+https://github.com/bborbe/semantic-search semantic-search-mcpVerfügbare Tools:
search_related(query, top_k=5)— Findet semantisch verwandte Notizencheck_duplicates(file_path)— Erkennt doppelte/ähnliche Notizen
HTTP (geteilt über alle Clients)
Ein einzelner, langlebiger Prozess bedient MCP-over-HTTP unter /mcp sowie REST unter /search, /duplicates, /health, /reindex. Alle Claude Code-Sitzungen und REST-Clients teilen sich einen warmen Indexer.
CONTENT_PATH=/path/to/vault semantic-search-http --host 127.0.0.1 --port 8321Verweisen Sie Claude Code über die MCP-Konfiguration darauf:
{
"mcpServers": {
"semantic-search": {
"type": "http",
"url": "http://127.0.0.1:8321/mcp"
}
}
}REST-Endpunkte:
Endpunkt | Methode | Beschreibung |
| POST | MCP-over-HTTP (Claude Code) |
| GET | Semantische Suche |
| GET | Findet doppelte Notizen |
| GET | Gesundheitsprüfung mit Index-Statistiken |
| GET/POST | Erzwingt den Neuaufbau des Index |
Beispielabfragen:
# Search
curl 'http://127.0.0.1:8321/search?q=kubernetes+deployment'
# Find duplicates
curl 'http://127.0.0.1:8321/duplicates?file=notes/my-note.md'
# Health check
curl 'http://127.0.0.1:8321/health'Im Hintergrund ausführen
Für den produktiven Einsatz führen Sie semantic-search-http als Hintergrunddienst aus, damit jede Claude Code-Sitzung (und jeder REST-Client) einen warmen Prozess teilt.
Plattform | Anleitung |
macOS (launchd) | |
Linux (systemd) |
Kurzes Beispiel (macOS):
launchctl load ~/Library/LaunchAgents/com.github.bborbe.semantic-search-http.plistKurzes Beispiel (Linux):
systemctl --user enable --now semantic-search-http.serviceCLI-Befehle
Einmalige Befehle ohne laufenden Server:
# Search
CONTENT_PATH=/path/to/vault semantic-search search "kubernetes deployment"
# Find duplicates
CONTENT_PATH=/path/to/vault semantic-search duplicates path/to/note.mdBinärdateien
Binärdatei | Zweck |
| Kombinierter HTTP-Server — MCP unter |
| stdio MCP-Server — einer pro Claude Code-Sitzung. Verwenden, wenn kein HTTP-Dienst eingerichtet ist. |
| Nur CLI — |
Konfiguration
Umgebungsvariablen
Variable | Beschreibung | Standard |
| Zu indexierendes Verzeichnis (durch Kommas getrennt für mehrere) |
|
| Protokollierungsebene (DEBUG, INFO, WARNING, ERROR) |
|
Mehrere Verzeichnisse
Indexieren Sie mehrere Verzeichnisse, indem Sie die Pfade durch Kommas trennen:
CONTENT_PATH=/path/to/vault1,/path/to/vault2,/path/to/docsAlle Verzeichnisse werden zusammen indexiert und als ein einheitlicher Index durchsucht.
Funktionsweise
Der erste Durchlauf lädt ein kleines Embedding-Modell (~90 MB) herunter und indexiert Ihre Markdown-Dateien (<1s für typische Vaults). Der Index aktualisiert sich automatisch, wenn Dateien über den Dateisystem-Watcher geändert werden.
Indexierte Inhalte
Jede Markdown-Datei wird mit gewichteten Komponenten indexiert:
Komponente | Gewichtung | Notizen |
Dateiname | 3x | |
Frontmatter | 3x | |
Frontmatter | 2x | Zusammengeführt mit Inline-Tags |
Frontmatter | 2x | |
Inline-Tags ( | 2x | Aus dem Text extrahiert |
Erste H1-Überschrift | 2x | |
Textinhalt | 1x | Erste 500 Wörter |
Entwicklung
# Clone
git clone https://github.com/bborbe/semantic-search
cd semantic-search
# Install dev dependencies
make install
# Run checks
make check
# Run tests
make testLizenz
BSD 2-Clause License — siehe LICENSE.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bborbe/semantic-search'
If you have feedback or need assistance with the MCP directory API, please join our Discord server