
gosidian
io.github.daniele-chiappaPublished by GitHub account daniele-chiappav2.133.0Updated Nov 3, 2026
Self-hosted Obsidian-compatible markdown vault with a web UI and a 71-tool MCP server for AI agents
Overview
gosidian's local MCP server; no sign-in required; STDIO.
No AI overview yet: these facts come from the registry entry and the server itself.
Installation
In SourceWeft
- Open gosidian in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
gosidian
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
[Glama score]
[Listed on 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
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. 71 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 the agents' memory by identity (path, tag, frontmatter, backlinks) — more predictable than similarity search for an agent's working memory. Semantic search over the notes is deliberately deferred: see ADR-007 rationale. A RAG over a project's documents (manuals, reports, scans) is another matter, and an experimental part of gosidian.
- 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
The "markdown vault + agents" space is crowded. This is where gosidian sits and where it doesn't, as of September 2026:
Honest gaps, in the order they come up: semantic / hybrid search over the notes (deferred, see the FAQ; documents have an experimental RAG), mobile sync beyond git, real-time collaboration, a hosted offering. The roadmap says which of these are planned.
Feature highlights
- Single binary, ≤50 MB, Alpine-based Docker image
- Web UI: a Vue 3 SPA (Vite, Pinia, Tailwind, CodeMirror, Cytoscape), embedded in the binary — editor + live preview, sidebar, search, graph view, attachments, audit log, admin pages
- Plancia tiling window manager (niri-style): notes, graph, search and config forms open as resizable, side-by-side windows in a horizontally-scrollable workspace, restorable from the URL
- MCP server over Streamable HTTP (legacy HTTP+SSE kept) with 71 typed tools
- Bearer tokens with scopes (
read/write) and per-project restriction — including multi-project tokens for orchestrators; every token owned by an account is narrowed on each request to what that account may read and write, accounts mint their own (inherit follows their access, custom pins a subset), cascade-revoke on user disable - Agent orchestration bus: handoff notes with an atomic
claim/complete lifecycle, server-stamped identity, and a
memory_wait_changeslong-poll change feed — a minimal multi-agent task queue where everything stays plain markdown - Multi-user web login with roles (Admin / User / Read-only) as the ceiling, per-project visibility (private / internal / public) for reading and grants (read / write / admin) to accounts and teams for everything else, delegated to project admins; new accounts start restricted with a personal project of their own; invite-only signup (24h TTL)
- Optional TOTP two-factor (global mode + per-user override) and LDAP / Active Directory login with guest auto-provisioning
- Opt-in OAuth 2.1 authorization server so claude.ai / Claude Desktop custom connectors, ChatGPT connectors and Claude Code's browser login get their own tokens through a consent screen — no pasted bearer
- Claude Code hooks (
contrib/claude-code/): the project'shot.mdfocus injected at every session start, a digest of the session appended to the vault at compaction and at the end — no LLM, overPOST /mcp/append, never blocking the session - Optional git sync (debounced commits, push with token auth)
- SQLite FTS5 full-text search + ETag optimistic locking
- First-class
.htmlnotes, rendered in a sandboxed iframe (off by default, opt-in per project) - Graph analytics over the wikilink graph:
memory_hubs(most-linked notes) andmemory_path(shortest path between two notes) - Opt-in self-improve loop: agents record usage-friction insights per token, off by default
- Print / Save-as-PDF for any markdown note straight from the web UI
- Internationalization (IT + EN complete; ES / FR / DE scaffolding)
- Light & dark theme presets (Catppuccin, Tokyo Night, Solarized) + custom palette
- Opinionated Karpathy-Wiki-Stack project layout with one-call scaffolding
- Optional global projects for skills, agents & scaffold templates shared across projects (opt-in per project, local-overrides-global)
Experimental: pipelines, plugins, RAG and agents
These parts are new, off by default, and still changing from one release to the next: their settings, node types and notes may move, and docs/upgrading.md says when they do. The core above (the vault, the MCP server, the web UI) does not depend on them, and an install that leaves them off sees nothing of them.
- Pipelines (docs/pipelines.md): a note
type: pipelinethat the server runs when something happens — a file arrives, a commit, a chat message, a call from an agent or a service, the clock. Its nodes read and write notes, call a language model (any OpenAI-compatible endpoint, local or remote), run a script, or wait for a person's answer. One queue for all of them, with limits per plugin, provider and shared resource (a GPU, say), fair among the projects. Edited as text or in a visual editor. They run only once[pipelines] enabled = trueand a project turns them on. - Plugins (docs/plugins.md,
gosidian-plugins):
MCP servers beside gosidian, a container each, that add node types to
the pipelines and tools to the agents. A plugin runs only after the
owner accepts its manifest, and never sees the vault, only the files
a pipeline hands it. Published so far:
- documents:
docling(PDF, office files, HTML to markdown),ocr(scans, through a vision model),images; - data:
database(embeddings on PostgreSQL with pgvector, Qdrant or SQLite),storage(Nextcloud, S3 or Google Drive as a source of files); - people:
chat(a bot as a widget for any web page),notify(Telegram, ntfy, email, with questions to answer); - agents and code:
claude(Claude Code) andpi(pi.dev) as executors,exec(scripts in a sandbox),preview(a static build at an address no one guesses).
- documents:
- The IN folder (docs/in.md): a project's files to work on, under their own names — uploaded from the web UI in resumable pieces, sent by an agent, or read from a remote store — which the pipelines turn into notes.
- RAG on a project's documents (docs/chat.md,
docs/rag-benchmarks.md): the project
template
ragconverts the files of the IN folder, cuts the notes into paragraphs, stores them with their embeddings, and answers a question from them, citing its sources; a bot (type: chat) asks it, on a page of its own or a widget on any site. Measured with local models on the eight public corpora of ViDoRe V3 (14,514 questions): search NDCG@10 52.7 on paragraphs, 57% of the answers judged good, a median 5.5 s per answer. The agents' own memory stays retrieval by identity: the RAG is for documents, not for the vault's notes. - Teams of agents (docs/agents.md): a note
type: teamwith its roles — a coordinator, writers, developers, reviewers — each an agent that a pipeline runs (Claude Code or pi, through their plugins), on tasks that are notes of the project. gosidian gives the tasks out, checks what each agent changed against its role's paths and checks, asks a person before a merge, and counts the cost against a budget of the day. A pilot runs the same team again and again on one objective: training plans for five people and a small web app. - Compose presets (docs/deployment.md):
deploy/presets/starts gosidian with the RAG chain (docling, images, the database plugin on Qdrant, chat) from one.env.
Documentation
Full index: docs/README.md.
Contributing
Contributions welcome. See CONTRIBUTING.md for the workflow, test expectations, and translation guidelines.
Security
Security issues are reported privately. See SECURITY.md for the disclosure process.
License
Released under the MIT License.
See also
- PROJECT-STORY.md — project genesis, design philosophy, and a comparison with Obsidian / Logseq / RAG-based knowledge stacks.
- CHANGELOG.md — release history.
Source: README.md at commit dc8f966
Tools
0Version history
70- v2.133.0LatestNov 3, 2026
- v2.130.0Nov 3, 2026
- v2.118.2Oct 26, 2026
- v2.118.1Oct 26, 2026
- v2.118.0Oct 26, 2026
- v2.104.0Oct 22, 2026
- v2.103.2Oct 21, 2026
- v2.102.1Oct 21, 2026
- v2.101.0Oct 20, 2026
- v2.100.1Oct 20, 2026
- v2.100.0Oct 20, 2026
- v2.99.1Oct 19, 2026
- v2.98.0Oct 18, 2026
- v2.97.1Oct 18, 2026
- v2.96.0Oct 17, 2026
- v2.95.0Oct 17, 2026
- v2.94.0Oct 17, 2026
- v2.93.0Oct 16, 2026
- v2.92.0Oct 16, 2026
- v2.91.1Oct 16, 2026
- v2.90.0Oct 15, 2026
- v2.88.0Oct 13, 2026
- v2.87.0Oct 13, 2026
- v2.86.0Oct 13, 2026
- v2.85.0Oct 12, 2026
- v2.84.0Oct 12, 2026
- v2.81.0Oct 12, 2026
- v2.80.0Oct 11, 2026
- v2.79.0Oct 11, 2026
- v2.78.1Oct 11, 2026
- v2.76.0Oct 10, 2026
- v2.73.0Oct 9, 2026
- v2.72.3Oct 9, 2026
- v2.72.0Oct 9, 2026
- v2.71.4Oct 9, 2026
- v2.71.2Oct 9, 2026
- v2.71.1Oct 8, 2026
- v2.71.0Oct 8, 2026
- v2.70.0Oct 8, 2026
- v2.69.1Oct 7, 2026
- v2.69.0Oct 7, 2026
- v2.67.3Oct 7, 2026
- v2.63.2Oct 6, 2026
- v2.60.1Oct 6, 2026
- v2.59.1Oct 6, 2026
- v2.59.0Oct 5, 2026
- v2.58.0Oct 5, 2026
- v2.55.0Oct 5, 2026
- v2.53.0Oct 4, 2026
- v2.50.1Oct 4, 2026
- v2.46.0Oct 3, 2026
- v2.44.3Oct 3, 2026
- v2.44.1Oct 3, 2026
- v2.43.0Oct 3, 2026
- v2.42.0Oct 2, 2026
- v2.41.5Oct 2, 2026
- v2.41.3Oct 2, 2026
- v2.41.2Oct 1, 2026
- v2.41.1Sep 30, 2026
- v2.41.0Sep 30, 2026
- v2.40.1Sep 29, 2026
- v2.39.0Sep 29, 2026
- v2.38.0Sep 28, 2026
- v2.37.0Sep 27, 2026
- v2.36.1Sep 26, 2026
- v2.35.0Sep 26, 2026
- v2.34.0Sep 26, 2026
- v2.33.0Sep 25, 2026
- v2.30.0Sep 25, 2026
- v2.28.0Sep 22, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts