This release adds 3 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Summary
AI summarySemantic search, surgical edits by heading/block ID, and folder-scoped permissions were added.
Full changelog
The largest feature drop since v1.0. 41 tools, 5 prompts, 3 resources now (was 23 tools, 333 tests; now 438 tests).
Highlights
- Surgical edits by heading and block id. Edit a section without rewriting the file.
- Bases support. Native
.baseparsing and a filter DSL evaluator. First filesystem-only Obsidian MCP server to ship this. - Semantic search. Embedding-based retrieval via Ollama (default, local) or OpenAI. Persistent vector index with content-hash incremental updates.
- Attachments. List, find unused, fetch image / audio / blob bytes inline.
- Folder-scoped permissions.
OBSIDIAN_READ_PATHS/OBSIDIAN_WRITE_PATHSallowlists. - Persistent mtime cache. Survives restarts; cold-start vault scans pay one stat-pass instead of a full re-read.
- Five MCP prompts.
daily-review,weekly-rollup,find-stale-notes,extract-action-items,build-moc.
New tools (18)
Sections: update_section, insert_at_section, list_sections, replace_in_note, edit_block. Plus fragment retrieval modes on get_note (section, block, lines).
Bases: list_bases, read_base, query_base (filter DSL: taggedWith(), file.hasTag(), file.inFolder(), comparison operators, and/or/not combinators).
Tags: rename_tag rewrites both inline #tag and frontmatter tags: arrays vault-wide. Hierarchical mode rebases nested sub-tags.
Read-side: get_recent_notes (mtime-sorted, ISO or relative since), get_vault_stats (counts, words, tag coverage), resolve_alias (frontmatter alias plus basename fallback).
Attachments: list_attachments, find_unused_attachments, get_attachment (image / audio / blob bytes inline; 5 MB default cap, 50 MB hard cap).
Semantic: index_vault, search_semantic, find_similar_notes.
Operational
- Folder-scoped permissions enforced at the path-resolution choke point, so every tool inherits the allowlist.
- Persistent mtime cache at `/.obsidian/cache/mcp-pro-index-cache.json`. Disable with `OBSIDIAN_CACHE_DISABLED=1`.
- Persistent embedding store at `/.obsidian/cache/mcp-pro-embeddings.json` with provider / model invalidation.
- Progress notifications on `rename_tag`, `find_unused_attachments`, `index_vault` when the client subscribes via `_meta.progressToken`.
- Elicitation on `delete_note(permanent: true)` for clients that advertise form support.
Tooling
- eslint v9 + typescript-eslint v8 (flat config). `npm run lint`, `npm run lint:fix`.
- 438 tests passing, up from 333. New suites cover sections, tag rewriting, bases, permissions, mtime cache rehydration, chunker, embedding store, attachments handler, semantic handler.
Install or upgrade
```bash
npx -y [email protected] install
```
Or pin in your MCP client config:
```json
{
"mcpServers": {
"obsidian": {
"command": "npx",
"args": ["-y", "[email protected]"]
}
}
}
```
Full changelog: CHANGELOG.md
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About rps321321/obsidian-mcp-pro
Feature-complete Obsidian vault MCP server with 23 tools and 3 resources. Full-text search, note CRUD, frontmatter queries, tag management, backlinks, graph traversal (BFS up to 5 hops), orphan/broken link detection, and canvas support. Auto-detects vault, path traversal protection, MIT licensed.
Related context
Beta — feedback welcome: [email protected]