About Obsidian MCP For Opencode
Obsidian MCP For Opencode is an MCP server published by tsujie in the Developer Tools category: obsidian MCP server working for opencode.
The repository has 3 stars and 0 forks, with the last commit 7 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/tsujie/obsidian-mcp-for-opencodeThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (6)
list_tagsList all tags in the vault
Parameters not published.
read_noteRead full content of a specific note
Parameters not published.
reindexRe-index the vault (incremental or full)
Parameters not published.
search_by_tagFind notes by tag
Parameters not published.
search_notesSemantic search across the vault
Parameters not published.
vault_statsGet indexing statistics
Parameters not published.
Ask AI
Ask AI about Obsidian MCP For Opencode
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 7 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- !License declaredNo license file. Legally you have no right to use it in a product.
- !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
Obsidian MCP Server for OpenCode
A local MCP (Model Context Protocol) server that provides semantic search over your Obsidian vault using local embeddings and SQLite vector storage.
Features
- Semantic search — find notes by meaning, not just keywords
- Fully local — no API keys, no cloud services. Embeddings run on your machine
- Incremental indexing — only re-embeds changed files (content-based change detection)
- Orphan cleanup — automatically removes deleted/renamed files from index
- Markdown-aware chunking — respects headings, frontmatter, and document structure
- Tag support — search and filter by Obsidian tags (frontmatter + inline)
- Lightweight — SQLite-based, no Docker or external databases
Setup
npm install
npm run build
Configuration
| Environment Variable | Default | Description |
|---|---|---|
| OBSIDIAN_VAULT_PATH | (required) | Path to your Obsidian vault |
| OBSIDIAN_IGNORED_KEYS | timesViewed,date modified | Comma-separated frontmatter keys to ignore for change detection |
The OBSIDIAN_IGNORED_KEYS setting allows you to exclude volatile frontmatter fields from content hash calculation. This prevents unnecessary re-indexing when only metadata like view counts or modification timestamps change, while still detecting actual content changes.
Usage
Indexing database
OBSIDIAN_VAULT_PATH=/path/to/vault npm run index
Standalone
# Via environment variable
OBSIDIAN_VAULT_PATH=/path/to/vault npm start
# Via CLI argument
node dist/index.js /path/to/vault
With OpenCode
Add to your opencode.json:
{
"mcp": {
"obsidian-mcp": {
"type": "local",
"command": ["node", "/path/to/obsidian-mcp-for-opencode/dist/index.js"],
"environment": {
"OBSIDIAN_VAULT_PATH": "/path/to/your/obsidian/vault",
},
"timeout":600000,
"enabled": true
}
}
}
MCP Tools
| Tool | Description |
|---|---|
search_notes |
Semantic search across the vault |
read_note |
Read full content of a specific note |
list_tags |
List all tags in the vault |
search_by_tag |
Find notes by tag |
reindex |
Re-index the vault (incremental or full) |
vault_stats |
Get indexing statistics |
Tech Stack
- Embeddings:
Xenova/multilingual-e5-smallvia@xenova/transformers(384 dimensions, runs locally) - Vector Store: SQLite +
sqlite-vecextension - MCP SDK:
@modelcontextprotocol/sdk - Chunking: Markdown-aware, respects headings and frontmatter via
gray-matter
README fetched from the repository 7 days ago. The original is authoritative.