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.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。