omega-obsidian
Persistent semantic memory server for Obsidian vaults, enabling AI agents to search, read, write, and explore notes with semantic understanding and incremental indexing.
README
<!-- mcp-name: io.github.omega-memory/omega-obsidian -->
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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.