Rule of thumb · Pick Obsidian for solo local-first PKM. Pick Bcontext when agents need to write back to a shared workspace via MCP.
Markdown export at any time. Re-imports are idempotent — running the migration again updates in-place instead of duplicating.
Most tools support a markdown or JSON export. Drop the folder into the bcontext importer — sub-folders become folder nodes, pages become docs.
Run the auto-typer to suggest kinds — tasks, decisions, runbooks, meetings — based on title patterns and frontmatter. Review the diffs as proposals.
Side-by-side view of original + bcontext-typed nodes. Accept what's right, reject what's noise. The whole thing exports back to clean markdown anytime.
The local-first principle that makes Obsidian beloved — your vault is just a folder — comes with a tax on team work and on agent integration. To share a vault across teammates you bring in Sync ($10/mo) or a third-party git workflow. To let Claude Code write into the vault you either expose the filesystem (security implications) or proxy through a plugin (eventual consistency issues). For a solo user this is fine. For a small team building with AI, it's friction in the critical path.
Bcontext keeps the Markdown round-trip — every node exports cleanly, you can `git clone` your workspace export and read it in Obsidian — but adds the multi-user infrastructure on top: workspaces, memberships, RLS, agent tokens, MCP gateway, webhooks. The cost is that the source of truth lives in a Postgres database, not in a filesystem. The benefit is that 15 humans and 5 agents can write to the same workspace concurrently with idempotency and rate limits.
The agent surface is the wedge. Obsidian's plugin ecosystem includes several AI plugins (Smart Connections, Copilot, etc.), but none expose the vault as an MCP server in a way that survives multi-device. Bcontext was built MCP-first; the typed-node shape is exactly what an MCP server wants to expose; and the agent-write path is a documented HTTP endpoint, not a plugin's internal API.
The importer runs both ways. Keep your existing tool live, add bcontext as the agent surface, decide later.