mcp-recall-md
Enables semantic search over markdown notes stored in Logseq vaults, allowing AI assistants to find relevant content by meaning rather than exact keyword matches.
Enables semantic search over markdown notes stored in Obsidian vaults, allowing AI assistants to find relevant content by meaning rather than exact keyword matches.
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., "@mcp-recall-mdsearch my notes about Kubernetes networking"
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.
graph LR
A["<b>.md files</b><br><i>Obsidian · Logseq · plain md</i>"] -- "watch + index" --> B["<b>mcp-recall-md</b><br><i>local vector store</i>"]
C["<b>AI client</b><br><i>Claude · Cursor · Windsurf</i>"] -- "MCP search" --> B
style A fill:#f9f4eb,stroke:#c9a96e,color:#333
style B fill:#e8f0fe,stroke:#4a86c8,color:#333
style C fill:#e8f5e9,stroke:#5b9a5b,color:#333"Search my notes about Kubernetes networking"
→ finds
kubernetes-networking.md(similarity: 0.53) — even though you phrased it differently than the note
Search by meaning, not keywords — finds notes even when your wording doesn't match
100% offline — no API keys, no cloud, nothing leaves your machine
Zero config — point at your folders, restart your AI client, done
Real-time sync — file watcher picks up changes instantly, re-embeds only what changed
Quick start
Add to your MCP client config and restart:
{
"mcpServers": {
"mcp-recall-md": {
"command": "uvx",
"args": ["mcp-recall-md", "--vaults", "C:/Users/you/notes"]
}
}
}Config file location:
.mcp.json(Claude Code) ·claude_desktop_config.json(Claude Desktop) · Cursor / Windsurf MCP settings
That's it. Your notes are searchable.
Installation
The quick start above uses uvx (recommended). Other options:
pip install mcp-recall-md{
"mcpServers": {
"mcp-recall-md": {
"command": "mcp-recall-md",
"args": ["--vaults", "C:/Users/you/notes"]
}
}
}Download mcp-recall-md.exe from the latest release
Put it somewhere permanent (e.g.
C:\Tools\mcp-recall-md\)
{
"mcpServers": {
"mcp-recall-md": {
"command": "C:/Tools/mcp-recall-md/mcp-recall-md.exe",
"args": ["--vaults", "C:/Users/you/notes"]
}
}
}Configuration
Multiple vaults
List all folders — each is indexed independently:
"args": ["--vaults", "C:/notes/work", "C:/notes/personal", "C:/docs"].recallignore
Drop a .recallignore in any vault root to exclude files. Standard .gitignore syntax:
.obsidian/
_templates/
drafts/CLI flags
Flag | Default | Description |
| (none) | Folders to index and watch |
|
| ChromaDB storage location |
| off | Debug logging to stderr |
Tools
Your AI assistant gets these tools automatically via MCP:
Tool | Description |
| Find notes by meaning — returns ranked results with similarity scores and file paths |
| Show indexed article count and watched vaults |
| Manually store an article (for use without |
| Delete an article from the index |
Most users only interact with search — everything else is automatic.
Troubleshooting
Problem | Fix |
Search returns nothing | Check that |
First run is slow | Embedding model (~80 MB) downloads once on first use |
Need to debug | Add |
Force re-index | Delete |
Logs: ~/.mcp-recall-md/server.log (5 MB max, 3 rotated backups)
Limitations
Single-chunk embedding — large files (10k+ words) may search less precisely than shorter notes
English-optimized — other languages work but with lower accuracy
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/kalikin-artem/proj-mcp-recall-md'
If you have feedback or need assistance with the MCP directory API, please join our Discord server