Persistent semantic memory MCP server for Obsidian vaults. Powered by OMEGA.
Project description
omega-obsidian
Persistent semantic memory for Obsidian vaults. Your coding agent remembers what it learned from your notes.
Why omega-obsidian?
Existing Obsidian MCP servers let agents read your files. omega-obsidian lets agents remember what they learned from your vault, across sessions, with semantic search.
The difference:
| Feature | File-based MCP servers | omega-obsidian |
|---|---|---|
| Read notes | Yes | Yes |
| Search by filename | Yes | Yes |
| Semantic search (search by meaning) | No | Yes |
| Persistent index (instant startup after first run) | No | Yes |
| Incremental updates (only re-indexes changed files) | No | Yes |
| Write back (agent stores memories into your vault) | No | Yes |
| Knowledge graph (backlinks, wikilinks, shared tags) | No | Yes |
Install
pip install omega-obsidian
For higher-quality embeddings (bge-small-en-v1.5 via ONNX), install with the OMEGA engine:
pip install omega-obsidian[omega]
Without [omega], the server uses a built-in TF-IDF fallback that requires no extra dependencies.
MCP Configuration
Claude Code
Add to your Claude Code MCP settings (~/.claude.json or project .claude/settings.json):
{
"mcpServers": {
"omega-obsidian": {
"command": "omega-obsidian",
"args": ["--vault-path", "/path/to/your/obsidian/vault"],
"env": {}
}
}
}
Or use an environment variable instead of --vault-path:
{
"mcpServers": {
"omega-obsidian": {
"command": "omega-obsidian",
"env": {
"OBSIDIAN_VAULT_PATH": "/path/to/your/obsidian/vault"
}
}
}
}
Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"omega-obsidian": {
"command": "omega-obsidian",
"args": ["--vault-path", "/path/to/your/obsidian/vault"]
}
}
}
Windsurf
Add to your Windsurf MCP config:
{
"mcpServers": {
"omega-obsidian": {
"command": "omega-obsidian",
"args": ["--vault-path", "/path/to/your/obsidian/vault"]
}
}
}
Tools
omega-obsidian exposes 6 MCP tools:
vault_search
Semantic search across all indexed vault notes. Returns matches ranked by relevance with scores and content snippets.
query: "authentication flow design"
limit: 5
vault_read
Read a specific note by its vault-relative path. Returns the full content with parsed frontmatter, tags, and wikilinks.
path: "Projects/auth-redesign.md"
vault_remember
Store a new memory or note into the vault from agent context. Creates a markdown file with frontmatter and indexes it immediately.
title: "Auth API Decision"
content: "We decided to use JWT with refresh tokens..."
tags: ["architecture", "auth"]
folder: "Decisions"
vault_graph
Get notes related to a given note via backlinks, wikilinks, and shared tags. Useful for exploring connections in your knowledge base.
path: "Projects/auth-redesign.md"
vault_index
Reindex the entire vault. Rebuilds embeddings for all files. Run this after making bulk changes to the vault outside the agent.
vault_recent
Get recently modified notes, sorted by modification time (newest first).
limit: 10
How It Works
-
First startup: omega-obsidian walks your Obsidian vault, parses every
.mdfile (extracting frontmatter, wikilinks, and tags), generates semantic embeddings, and stores everything in a local SQLite database at~/.omega-obsidian/index.db. -
Subsequent startups: Only new or modified files are re-indexed (incremental). The index persists across sessions, so startup is fast.
-
Semantic search: When you search, the query is embedded using the same model and compared against all note embeddings via cosine similarity. This finds notes by meaning, not just keyword matching.
-
Knowledge graph: Wikilinks (
[[note]]) and tags (#tag) are parsed and stored, enabling graph traversal to find related notes. -
Write-back: The
vault_remembertool creates real Obsidian-compatible markdown files in your vault with proper frontmatter, so your agent's memories become part of your knowledge base.
Embedding Backends
omega-obsidian supports two embedding backends:
- OMEGA engine (recommended): Uses bge-small-en-v1.5 via ONNX for high-quality 384-dimensional embeddings. Install with
pip install omega-obsidian[omega]. - TF-IDF fallback: A built-in hashed TF-IDF embedder that requires no extra dependencies. Lower quality but works everywhere.
The server auto-detects which backend is available and uses the best one.
Configuration
| Setting | CLI Flag | Environment Variable | Default |
|---|---|---|---|
| Vault path | --vault-path |
OBSIDIAN_VAULT_PATH |
(required) |
| Database path | --db-path |
OBSIDIAN_DB_PATH |
~/.omega-obsidian/index.db |
| Excluded folders | - | OBSIDIAN_EXCLUDED_FOLDERS |
.obsidian,.trash |
| Verbose logging | --verbose / -v |
- | off |
Powered by OMEGA
omega-obsidian uses the embedding engine from OMEGA, persistent memory for AI coding agents. If you need full agent memory (not just Obsidian vault search), check out OMEGA.
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 omega_obsidian-0.1.0.tar.gz.
File metadata
- Download URL: omega_obsidian-0.1.0.tar.gz
- Upload date:
- Size: 15.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b01ea14fcea182a31bd841dae017212bd31b5ebd70717a4166a9babed305ba07
|
|
| MD5 |
36289734bb5865b9652dfd19f7bba5f4
|
|
| BLAKE2b-256 |
c642696bd4603a79758444e4b2d007654b0818a4c3005478556e6f6605e99107
|
File details
Details for the file omega_obsidian-0.1.0-py3-none-any.whl.
File metadata
- Download URL: omega_obsidian-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6233bd14d75ac769dab2211d9daa4ff643bcf9b4d0b095bcecd825acf72e280b
|
|
| MD5 |
835d8914d83f4c110195f2f3c2b5b235
|
|
| BLAKE2b-256 |
9a2c0887f342ba1a6cecae4130662811fb8a1f59f9cbf96dab79e9e7a5120e55
|