Kybase MCP server
io.github.Kyrzin/kybase·v0.2.4·6 starsSelf-hosted Markdown memory for AI agents: notes you can read and edit, with hybrid search.
6 stars365 downloads/wk
Reviews
Write oneNobody has reviewed Kybase yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Kybase tools (18, 6 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
append_to_noteAdd text to a note without resending the rest \u2014 prefer it over update_note for journals, logs and running lists. A blank line separates your text from what was there. The note is locked for the read-modify-write, so two sessions appending at the same moment keep both additions instead of the later one overwriting the earlier. Re-embeds in the background like any content change.
create_folderwrite actionCreate a new folder. Optionally nested under a parent.
create_notewrite actionCreate a new note. Embedding is generated automatically in the background. The server instructions' wikilink and tag rules apply: search_notes for the topic first and link the related notes it finds, and call list_tags before coining a new tag.
delete_folderwrite actionDelete a folder and its full subtree of child folders (cascade). Every note inside \u2014 including notes in nested subfolders \u2014 is soft-deleted into the trash along with it (see delete_note), recoverable via restore_note within the retention window. To preserve organization instead, move notes/subfolders out first.
delete_notewrite actionSoft-delete a note by id \u2014 it disappears from list_notes/search/get_note/the graph, but is recoverable with restore_note for … days before being purged for good. Use list_notes with trashed:true to see what's currently in the trash.
get_backlinksNotes that link to this one via [[Title]] wikilinks, by id or title. Each comes back as id/title/folder_path plus a snippet around the link; include_content:true returns their full text instead, which is expensive when many notes link here \u2014 prefer get_note on the ids you actually want. offset and limit count notes, not characters.
get_graphget_neighborsget_noteindexing_statuslist_foldersList folders with the full path already resolved \u2014 no need to walk parent_id yourself. Pass a folder's own id as parent_id to create_folder/update_folder to nest under it. Sorted by path, so a page is a contiguous slice of the tree read top to bottom; the reply is `{folders, has_more, next_offset?}`.
list_notesList notes newest first, filtered by folder, tag or date. This is the tool for "what is new" and "what changed lately": search_notes ranks by relevance and never by recency. created_* is when a note was made, updated_* when its own text last changed \u2014 a rename elsewhere rewriting a [[link]] inside it does not count as an edit here. Each row carries content_length, so you can tell a long note
list_tagsreplace_in_noteReplace exact text in a note without resending the rest. Either find/replace or old_string/new_string \u2014 the same pair, either spelling. For several replacements pass `edits` rather than the singular fields (one lock and one re-embed for the batch, not one per call); the two forms cannot be combined in one call. Edits apply in order, and each `find` is matched against the note as the edits bef
restore_noteUndo delete_note: brings a soft-deleted note back. Errors if the note isn't in the trash (never deleted, already restored, or purged past the retention window), or if a live note has since taken the same title (rename one of them first, then retry).
search_notesupdate_folderwrite actionRename a folder and/or move it under a different parent (set parent_id to null for top level). Provide at least one of name/parent_id. The response includes the resolved `path` so a rename or move can be confirmed without a follow-up list_folders call.
update_notewrite actionUpdate note fields. Re-embeds if title or content changed. Updates wikilinks if title changed. The server instructions' wikilink and tag rules apply when substantially rewriting \u2014 in particular, call list_tags before coining a new tag. Pass expected_updated_at (the updated_at you read) to be refused instead of overwriting a change made in between.
Public scan report
scanner v0.1.10 · 2026-11-03 · same rubric, same numbers if you re-run it
- Code scan2 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 5 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Kybase compares
Against every graded Web search MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 83/100
- higher than 70% of 3,470 Web search servers
- Tools
- 18
- the typical Web search server has 5
- Tools that change things
- 33%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 6
- more than 81% of 1,786 Web search servers
- Downloads a week
- 365
- more than 81% of 827 Web search servers with a package
What its tools let an agent do: 11 read · 2 create · 3 change · 2 delete
Release history: 4 versions in the registry since 2026-09-23, latest 2026-10-29, typically one every 9 days.
Install Kybase in Claude Code, Cursor or VS Code
Runs npx -y kybase-mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add kybase -- npx -y kybase-mcp
What the publisher says
From the Kybase repository's README, as published. We do not edit it. Read it on GitHub
Your AI forgets when the session ends. Kybase remembers.
Kybase gives Claude, Cursor, Windsurf and any other MCP-speaking agent a long-term memory you own: one Markdown knowledge base, running on your own machine, that every agent can search, read and update — and that you can open in a browser and edit by hand.
Self-hosted. Private by default. Plain Markdown. Yours.
The problem · Quick start · Connect your agent · What you get · Settings · Sharing · Backups · Upgrading
The problem
You tell your agent how the staging deploy works. It helps, and the session ends.
Tomorrow you open a new one:
You: what did we decide about the staging database?
Agent: I don't have that context — could you tell me again?
So you explain it again. Then you switch editors, and explain it there too.
With Kybase, the knowledge lives outside the agent:
You: what did we decide about the staging database?
Agent: (searches Kybase) You moved staging to its own Postgres
instance so migrations could be tested against real data first — that's
in "Staging environment", under "Database".
New session, same memory. Different tool, same memory.
Quick start
One local agent
Nothing to install, no Docker, no database to run:
{
"mcpServers": {
"kybase": {
"command": "npx",
"args": ["-y", "kybase-mcp"]
}
}
}Put that in your client's MCP config and restart it. Your notes live under ~/.kybase, and kybase-mcp export vault.zip gets them back out as plain Markdown at any time.
The full app
For the web UI, the graph view, share links, and several agents against one knowledge base:
macOS and Linux
git clone https://github.com/Kyrzin/kybase.git
cd kybase
cp .env.example .env
sed -i.bak "s/^KYBASE_SECRET=$/KYBASE_SECRET=$(openssl rand -hex 32)/" .env
sed -i.bak "s/^POSTGRES_PASSWORD=$/POSTGRES_PASSWORD=$(openssl rand -hex 16)/" .env
rm -f .env.bak
docker compose pull && docker compose up -dWindows (PowerShell) — no openssl or sed there, so the secrets are generated by .NET instead:
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Kybase: common questions
- Is Kybase MCP server safe?
- Mostly: it is graded B (83/100). Read the Kybase safety report
- How do I install Kybase?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Kybase need an API key?
- Yes. The registry entry asks for
GOOGLE_API_KEY,OPENAI_API_KEY,DATABASE_URL. - Is Kybase maintained?
- The last commit was 6 days ago (2026-10-29). The latest release is v0.2.4.
- What can I use instead of Kybase?
- Servers from other publishers that do the same job: DocsMint MCP server, searxNcrawl MCP server and obsei MCP server. Compare all Kybase alternatives.
- How does Kybase compare with other Web search MCP servers?
- safety score 83/100 (higher than 70% of 3,470 Web search servers); tools 18 (the typical Web search server has 5); tools that change things 33% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to Kybase
Same job from other publishers: the closest match first, then the best rated.
DocsMintCloud or self-hosted knowledge for AI agents: hybrid search, reranking, GraphRAG, scoped MCP tools.not reviewedEstablishedA- searxNcrawlWeb search via SearXNG and/or You.com, plus clean Markdown crawling via Crawl4AI. Self-hosted.not reviewedEstablishedA
- obseiSelf-hosted customer feedback with PII stripped at ingest: search, stats and themes with citations.not reviewedEstablishedA
- TinysearchFast discovery search and self-hosted web research for MCP agents.not reviewedEstablishedB
- M3 MemoryLocal-first, cloud-friendly memory — 100+ tools, 99.2% LongMemEval-S retrieval@8, hybrid search.not reviewedEstablishedA