MCP server for semantic search over markdown vaults
Project description
You like Obsidian? Your LLM will love it too.
memex-md-mcp
MCP server for semantic search over markdown vaults. Hybrid FTS5 + embeddings search, wikilink graph traversal, and YAML frontmatter awareness (aliases, tags).
Quick Start
claude mcp add memex uvx memex-md-mcp@latest
Then ask Claude to help configure your vaults - it has mcp_info() which explains everything. Or manually edit your settings (see Configuration below).
What This Does
Memex gives Claude read access to your markdown vaults. It creates a local index at ~/.local/share/memex-md-mcp/memex.db containing:
- Full-text search index (FTS5) for keyword matching
- Embeddings (google/embeddinggemma-300m) for semantic similarity
- Wikilink graph for backlink queries
- Extracted frontmatter (aliases, tags)
On each query, memex checks file mtimes and re-indexes any changed files. First run on a large vault takes time to compute embeddings.
Writing to notes happens through Claude Code's normal file tools.
Configuration
Global vault (always available)
In ~/.claude/settings.json:
{
"env": {
"OBSIDIAN_VAULTS": "/home/user/obsidian/knowledge"
},
"mcpServers": {
"memex": {
"command": "uvx",
"args": ["memex-md-mcp@latest"]
}
}
}
Adding project-specific vaults
In your project's .mcp.json, use variable expansion to append to global vaults:
{
"mcpServers": {
"memex": {
"command": "uvx",
"args": ["memex-md-mcp@latest"],
"env": {
"OBSIDIAN_VAULTS": "${OBSIDIAN_VAULTS}:/home/user/projects/myproject/docs"
}
}
}
}
This keeps your global vault active while adding project-specific ones.
Tools
search(query, vault?, limit=5, concise=False) finds notes using hybrid search. Works when you don't know exact note names.
search("terraform state locking issues")
search("architecture decisions for the auth system", vault="work")
search("preferences for error handling in this codebase")
explore(note_path, vault, concise=False) shows a note's neighborhood: outlinks (what it references), backlinks (what references it), and semantically similar notes that aren't yet linked.
explore("architecture/api-design.md", "work")
mcp_info() returns this README plus an example workflow.
Example Workflow
See examples/claude-md-workflow.md for a template showing how to integrate memex with handover files and knowledge distillation.
Development
uv sync
make check # ruff + ty
make test # pytest
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file memex_md_mcp-0.2.0.tar.gz.
File metadata
- Download URL: memex_md_mcp-0.2.0.tar.gz
- Upload date:
- Size: 10.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.12 {"installer":{"name":"uv","version":"0.9.12"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e031eb3b3ace85f6997f17e0def25d1d2fea99dff118aff9ac053260c30c0a31
|
|
| MD5 |
40949937c64246bfbc2c4b860bd890d0
|
|
| BLAKE2b-256 |
c57220a14375b105991ef379551ac9b4f355a791870fc778576392fcb5efba82
|
File details
Details for the file memex_md_mcp-0.2.0-py3-none-any.whl.
File metadata
- Download URL: memex_md_mcp-0.2.0-py3-none-any.whl
- Upload date:
- Size: 12.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.12 {"installer":{"name":"uv","version":"0.9.12"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e72b76992eea22acfd95aec35727a9c432bc8f1f0f46cfefec7160021fef154c
|
|
| MD5 |
65fb226994fbd1d59b91967ff9820142
|
|
| BLAKE2b-256 |
328c3d7a13265f6b8c69efd5b473ed1ae8b0f94f2b844278c724775a193e28c3
|