Gosidian
Self-hosted Obsidian-compatible markdown vault with a web UI and a 57-tool MCP server for AI agents
- Transport
- Not stated
- Package
- —
- Registry id
- io.github.daniele-chiappa/gosidian
No install snippet on purpose. A working MCP config is a command, its arguments and an environment block — the last two are where API keys live, so this catalogue never stores them and cannot publish them. Follow the link above for the authors' own instructions.
Markdown notes your AI agents can read, write, and reason over — via MCP.
A self-contained markdown vault with a built-in MCP server. Humans
edit through a web UI, agents talk to it over MCP, everything lives
in plain .md files that Obsidian (and every other markdown tool)
reads natively.
Listed on the official MCP Registry
as io.github.daniele-chiappa/gosidian,
Glama and
mcpservers.org

Try it in your browser
Launch a free, throwaway gosidian in
GitHub Codespaces — no install,
running on your own Codespaces quota. It builds from source, seeds a small
demo vault, and opens the web UI. Log in with demo /
gosidian-demo.
Quick start
docker run -d --name gosidian \
-p 8080:8080 \
-v "$(pwd)/vault:/vault" \
ghcr.io/daniele-chiappa/gosidian:latest
# open http://localhost:8080, create admin, copy the MCP token from /admin/tokens
claude mcp add gosidian http://localhost:8080/mcp \
--transport http --header "Authorization: Bearer $TOKEN"
Three commands: Docker up → token created from the web UI → agent
wired. Your .md vault is persisted under ./vault/; stop the
container and the files are still there.
Other installation paths (source, custom compose, bare-metal): docs/getting-started.md.
What is gosidian
- A markdown vault. Notes are
.mdfiles on disk. Open the same folder in Obsidian, VS Code,vim, or any editor you already use. Zero lock-in: delete.gosidian/and you have a pure Obsidian vault. - An MCP server. 57 typed tools let agents bootstrap a session, ingest files, search, read, write, link, handoff, self-check, audit. Bearer tokens and OAuth grants, each narrowed on every request to what its account may read and write.
- A web UI. A Vue 3 single-page app served from the same binary
(built with Vite, embedded via
go:embed). Notes, graph, search and config forms open as windows in a tiling "plancia" workspace — full-text search, backlinks, graph view, editor with live preview, audit trail, admin pages for tokens and users.
All three views hit the same files on disk. The SQLite FTS5 index is a cache — drop it and it rebuilds.
Who it's for
- AI engineers wiring agents that need persistent structured memory: note-taking, plans, skills, ADRs, handoffs, audit.
- Obsidian users who want a programmable layer on top of a vault they already trust.
- Teams sharing one vault: per-project visibility and grants to accounts and teams, restricted new accounts with their own project, self-service tokens per agent that never outrun their owner.
Why gosidian instead of X
- vs RAG / vector search: gosidian retrieves by identity (path, tag, frontmatter, backlinks) — more predictable than similarity search for an agent's working memory. Semantic search is deliberately deferred: see ADR-007 rationale.
- vs Obsidian Sync: Sync mirrors a vault between human devices. gosidian adds a typed automation surface (MCP) to the same vault. Not competitive — complementary.
- vs Notion / Roam: hosted or proprietary formats; migration is
a project. gosidian's vault is already
.mdfiles you can take anywhere.
FAQ covers the long form.
Compared to similar projects
From the project's README.