Repository navigation
Home
Obsidian Turbocharged — governed, agent-ready vault access over MCP for Obsidian. Built for both humans and autonomous agents. Multi-vault native. Pluggable embeddings. Runs locally by default (bundled offline embeddings, SQLite, no cloud account).
| Version | 1.33.1 |
| Tools | 184 governed capabilities (advertised via the 3-tool facade), all visible/callable by default (toolFacade.profile: "full"); 105 with the opt-in profile: "core"
|
| Config keys | 360 |
| Golden set | 250 queries, statistical ship rule on every ranking change |
| Retrieval | contextual chunk enrichment +0.223 nDCG, defaults on |
| MCP spec | 2025-11-25 |
| License | AGPL-3.0-only |
Status: Shipped — v1.33.1. Published to npm as provenance-signed packages, with a container image at
ghcr.io/the-40-thieves/obsidian-tc:1.33.1, a one-click.mcpbbundle, and standalone binaries. The surface is the full tool set across every domain, advertised by default through a three-tool facade. Licensed AGPL-3.0-only.
-
Broad. A very wide tool surface covering the meaningful Obsidian operations — native Bases (
.base) with a real expression-DSL evaluator, Canvas, Excalidraw, deep plugin bridges, GraphRAG retrieval, a quarantined work-memory tier, and composite context calls — the broadest open-source Obsidian MCP surface we know of (surveyed 2026-07). - Governed by default. JWT auth (HS256 or asymmetric RS256/ES256/EdDSA via a local JWKS), per-vault folder ACLs, a read-only kill switch, human-in-the-loop (HITL) confirmation on destructive operations, compare-and-swap on writes, idempotency keys, and per-class rate limiting.
- Observable from day one. OpenTelemetry traces, Prometheus metrics, a CloudEvents spool, and structured event emission on every tool call.
By default tools/list advertises just five tools: three meta-tools, find_capability (BM25 search over the capability catalog), describe_capability (one capability's schema, scopes, and safety hints), and call_capability (invoke by name — routed through the same auth/ACL/HITL/idempotency/throttle pipeline as a direct call). plus the standard search and fetch tools (the pair ChatGPT deep research and company knowledge require). This keeps agent context lean while the full surface stays reachable; toolFacade.mode selects triad (default), domain, or flat. The facade is boundary-only — no gate is ever bypassed.
Beyond Tools, the server exposes the vault as MCP Resources (obsidian-tc://<vault>/<path> URIs, read-scope and folder-ACL enforced) and built-in Prompts.
obsidian-tc is a measured memory engine:
- an experiential work-memory tier — a quarantined second store (never mixed with authored notes) with retrieval logging, auto-captured agent episodes behind a poison scanner, and reader tools under a strict eligibility contract;
-
composite context surfaces —
vault_context(one-call budgeted context: graph-reranked chunks, synthesis patterns, contradictions, lesson surfacing, session bootstrap) andreflect(grounded synthesis, adversarial challenge, a versioned preference profile); -
dependency-aware deletion —
forgetwith tombstone-vs-erase modes and a hash-chained audit log; - retrieval measured, not asserted — a statistically-gated golden set governs every ranking change and contextual chunk enrichment defaults on (current sizes and gains are in At a glance above); mechanisms that lost their A/B ship dark behind flags with the numbers recorded.
npm install -g obsidian-tc # Node >= 24 or Bun >= 1.1 (runtime auto-detected)
obsidian-tc /path/to/your/vault # zero-config: boots a single vault "main" with defaultsPull the default local embeddings model once (ollama pull nomic-embed-text) and everything runs on your machine. For multi-vault, auth, ACLs, or custom embeddings, pass a JSON config file instead — see Installation and Configuration.
| Page | What's in it |
|---|---|
| Installation | Install methods, runtimes, the companion plugin, native module |
| Configuration | Config schema, vaults, auth, ACL, embeddings, retrieval + experiential knobs |
| Architecture | Components, dispatch pipeline, IPC contracts, multi-vault registry, memory engine |
| Tool Reference | The domain index for every tool with one-line descriptions |
| Deployment Modes | STDIO, HTTP local, HTTP remote, Docker, MCPB, standalone binary |
| Security and ACL | Scopes, HITL thresholds, kill switch, CAS, idempotency, elicit tokens |
| Plugin Bridges | Companion plugin, discovery probe, supported third-party plugins |
| Observability | OTLP traces, Prometheus metrics, CloudEvents, JSONL traces |
| Contributing | Dev setup, conventions, adding a tool, release process |
| FAQ | Common questions and gotchas |
Polyglot monorepo:
| Package | Language | Purpose |
|---|---|---|
packages/server |
TypeScript (Bun/Node) | MCP protocol layer, auth, routing, tool impls, plugin bridges |
packages/plugin |
TypeScript | Companion Obsidian plugin extending Local REST API |
packages/native |
Rust (napi-rs) | Optional acceleration: cosine similarity, tokenizer, BM25 — with a numerically identical pure-JS fallback |
packages/shared |
TypeScript | Shared Zod schemas and types |
- Repository: https://github.com/The-40-Thieves/obsidian-tc
-
npm:
obsidian-tc -
Container:
ghcr.io/the-40-thieves/obsidian-tc -
Docs site source:
docs/(Astro Starlight) — deep reference lives there and inARCHITECTURE.md - MCP spec target: 2025-11-25
obsidian-tc is not affiliated with or endorsed by Obsidian.md. "Obsidian" is a trademark of Dynalist Inc. This is an independent open-source MCP server that integrates with Obsidian.