
SoloMD
io.github.zhitongblogPublished by GitHub account zhitongblogv4.14.11Updated Oct 24, 2026
Read and search a folder of Markdown notes: search, backlinks, tags, tasks, outlines, git history.
Overview
A Model Context Protocol server that allows AI assistants to read, search, and interact with Markdown notes stored in a SoloMD vault.
- What you can do
- Read and search Markdown notes within a specified vault, providing metadata, full content, and structural information. It allows assistants to list notes, read individual files, perform substring or regex searches, and retrieve backlinks. Users can also manage tasks, view heading outlines, and access AutoGit commit history for specific notes. Write capabilities include creating, appending to, or rolling back notes, provided the server is started with the appropriate write permissions. It can also export notes to various formats.
- When to use it
- Use this when you want your AI assistant to have deep, contextual knowledge of your personal knowledge base or note-taking system managed by SoloMD. It is ideal for research, content generation based on personal archives, or automating note management tasks.
- Requirements
- It runs as a local process. Installation can be done via a one-line script, Cargo, or manually. For write operations, the server must be started with the --allow-write flag.
Installation
In SourceWeft
- Open SoloMD 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
solomd-mcp — Model Context Protocol server for SoloMD vaults
solomd-mcp lets Claude Code, Codex CLI, Cursor, Continue, and any other
MCP client read (and optionally edit) a SoloMD Markdown notes folder. Your
vault becomes a first-class tool the assistant can call.
It is a standalone Rust binary. The desktop app bundles a copy (on
macOS: /Applications/SoloMD.app/Contents/MacOS/solomd-mcp) but never runs
it itself; it only runs when an MCP client starts it. It reports the same
version as the app (solomd-mcp --version).
Multiple workspaces (v4.0+)
Pass --workspace once per vault. Each value is either a bare path (alias
defaults to the path's last component) or <alias>=<path>:
The first workspace is the default — tool calls without an explicit
workspace argument resolve to it. Existing single---workspace clients
keep working unchanged. Tools that want to target a non-default workspace
pass an extra workspace argument:
Each workspace's AutoGit history (autogit_log, autogit_diff,
autogit_rollback) is independent — the per-workspace .git repo is
opened on demand for each call.
Tools exposed
That is 16 tools. Read-only by default. Write tools are also offered
through the MCP tools/list response so clients can show them, but
invocations fail with a clear "restart with --allow-write" message until
you opt in.
Every line number (get_outline, get_backlinks, read_note headings and
wikilinks, list_tasks, search) is a 1-based line in the file as it sits
on disk, front matter included, so the tools agree with each other and with
an editor. search columns count characters, not bytes.
export_note needs Node.js and a SoloMD source checkout. It runs
app/scripts/solomd-export.mjs (the same engine as solomd export) with
the app's node_modules. The installed app ships neither, so the tool is
only listed when node is on PATH and the script is found: via
SOLOMD_EXPORT_SCRIPT=/path/to/solomd/app/scripts/solomd-export.mjs, or
automatically when the binary or the working directory is inside a
checkout where pnpm install has been run in app/.
Install
One-line installer (macOS / Linux)
This downloads the right binary for your platform from the latest GitHub
release and drops it into /usr/local/bin/solomd-mcp (falling back to
~/.local/bin/solomd-mcp if the system path is not writable).
Cargo
Manual
Grab the right archive from
github.com/zhitongblog/solomd/releases,
extract solomd-mcp, and put it on your PATH.
Wire it up
Claude Code
Easiest route is the CLI — it writes the user-scope config (~/.claude.json)
for you:
To scope the server to one project instead, drop an .mcp.json in the project
root:
Multi-workspace profile (one MCP server, several vaults):
To enable writes:
Codex CLI
~/.codex/config.toml:
Cursor / Continue / generic
Anything that speaks MCP over stdio works. Point its command at
solomd-mcp and pass --workspace <path>. The solomd CLI
(scripts/install-cli.sh) can do this for you: solomd mcp install
writes the entry into every AI client it finds, solomd mcp-config prints
it.
Hosted clients (Streamable HTTP)
For clients that can't spawn a local binary (Smithery, Claude.ai remote MCP, ChatGPT connectors), run the HTTP transport:
It binds to loopback by default, so nothing outside the machine can reach
it until you change --bind. With --auth-token (or SOLOMD_MCP_TOKEN)
every request must send Authorization: Bearer <token>; without one the
endpoint is open to anything that can reach the address.
CLI reference
Set SOLOMD_MCP_LOG=trace (or any tracing-subscriber filter expression)
for finer-grained control.
Safety
- Every input path is canonicalised and verified to live inside the
workspace before any read/write. Both
..segments and absolute paths outside the workspace are rejected. The one tool that may write outside the workspace isexport_note, and only with--allow-write; it never creates folders there and never replaces an existing file unless the call passesoverwrite: true. - The watcher / index from the SoloMD desktop app is not used here — this is a stateless per-invocation server that walks the filesystem lazily.
list_notesreads only an 8 KB prefix of each file (enough for title + summary), so even a vault with thousands of large notes is cheap to enumerate. Full file content only loads onread_note.
Verifying
You should see 16 tools listed (15 if export_note's Node backend isn't
available).
License
MIT — same as SoloMD.
Source: mcp-server/README.md at commit 8b4384a
Tools
0Version history
10- v4.14.11LatestOct 9, 2026
- v4.14.10Oct 7, 2026
- v4.14.9Oct 6, 2026
- v4.14.8Oct 5, 2026
- v4.14.7Oct 3, 2026
- v4.14.6Oct 2, 2026
- v4.14.5Oct 1, 2026
- v4.14.4Sep 26, 2026
- v4.14.3Sep 25, 2026
- v4.14.2Sep 24, 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