Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Semantic Search MCPfind notes related to machine learning algorithms"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Semantic Search
Semantic search over markdown files. Find related notes by meaning, not just keywords. Detect duplicates before creating new notes.
Supports two server modes:
MCP mode — For Claude Code integration
REST mode — For OpenClaw, scripts, and HTTP clients
Features
Semantic search using sentence-transformers
Duplicate/similar note detection
Auto-updating index with file watcher
Multi-directory support
Inline tag extraction (
#tag-name)
Installation
Permanent install (recommended)
💡 No GPU? Use CPU-only PyTorch
The default install includes CUDA support (~7GB). If you don't have a dedicated GPU, install with CPU-only PyTorch to save ~5GB disk space:
uv tool install --index https://download.pytorch.org/whl/cpu \ git+https://github.com/bborbe/semantic-searchPerformance is identical for typical vault sizes — embedding models run fine on CPU.
One-off usage
From PyPI (when published)
Server Modes
MCP Mode (for Claude Code)
Tools available:
search_related(query, top_k=5)— Find semantically related notescheck_duplicates(file_path)— Detect duplicate/similar notes
REST Mode (for OpenClaw/HTTP)
Endpoints:
Endpoint | Method | Description |
| GET | Semantic search |
| GET | Find duplicate notes |
| GET | Health check with index stats |
| GET/POST | Force index rebuild |
Example queries:
CLI Commands
One-shot commands without running a server:
Configuration
Environment Variables
Variable | Description | Default |
| Directory to index (comma-separated for multiple) |
|
| Logging level (DEBUG, INFO, WARNING, ERROR) |
|
Multiple Directories
Index multiple directories by separating paths with commas:
All directories are indexed together and searched as one unified index.
How It Works
First run downloads a small embedding model (~90MB) and indexes your markdown files (<1s for typical vaults). The index auto-updates when files change via filesystem watcher.
Indexed Content
Each markdown file is indexed with weighted components:
Component | Weight | Notes |
Filename | 3x | |
Frontmatter | 3x | |
Frontmatter | 2x | Merged with inline tags |
Frontmatter | 2x | |
Inline tags ( | 2x | Extracted from body |
First H1 heading | 2x | |
Body content | 1x | First 500 words |
Development
License
BSD 2-Clause License — see LICENSE.