Skip to main content

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.

License: Apache-2.0 Python 3.11+

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

  1. First startup: omega-obsidian walks your Obsidian vault, parses every .md file (extracting frontmatter, wikilinks, and tags), generates semantic embeddings, and stores everything in a local SQLite database at ~/.omega-obsidian/index.db.

  2. Subsequent startups: Only new or modified files are re-indexed (incremental). The index persists across sessions, so startup is fast.

  3. 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.

  4. Knowledge graph: Wikilinks ([[note]]) and tags (#tag) are parsed and stored, enabling graph traversal to find related notes.

  5. Write-back: The vault_remember tool 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

omega_obsidian-0.1.0.tar.gz (15.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

omega_obsidian-0.1.0-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

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

Hashes for omega_obsidian-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b01ea14fcea182a31bd841dae017212bd31b5ebd70717a4166a9babed305ba07
MD5 36289734bb5865b9652dfd19f7bba5f4
BLAKE2b-256 c642696bd4603a79758444e4b2d007654b0818a4c3005478556e6f6605e99107

See more details on using hashes here.

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

Hashes for omega_obsidian-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6233bd14d75ac769dab2211d9daa4ff643bcf9b4d0b095bcecd825acf72e280b
MD5 835d8914d83f4c110195f2f3c2b5b235
BLAKE2b-256 9a2c0887f342ba1a6cecae4130662811fb8a1f59f9cbf96dab79e9e7a5120e55

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page