Personal knowledge wiki as MCP tools β search, context, graph traversal.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Link gives Codex, Claude, Cursor, Kiro, VS Code, Copilot, Antigravity, and other local agents the same source-backed memory, stored locally as Markdown.
Website Β· How it works Β· Memory Β· Tools & CLI Β· Setup Β· Docs Β· MCP Registry Β· PyPI Β· Homebrew
Link is an open-source memory layer for local AI agents. Raw sources become an inspectable Markdown wiki. Explicit "remember this" requests become reviewable memories. Agents retrieve compact, source-backed context through the CLI, MCP, official skills, or the local viewer without dumping the whole wiki into a chat window.
The wiki is the storage layer. The product is durable memory that stays on your machine, remains readable in plain files, and can be shared across multiple agents instead of locked inside one vendor profile.
Ask in your own words; Link matches by meaning, not keywords. All local, all plain files.
Link gives agents four simple moves:
raw/.wiki/.Most agent sessions start from zero. You re-explain preferences, repo decisions, project constraints, and why something matters. Link turns that repeated context into local memory agents can query.
| Pain | Link's answer |
|---|---|
| Agents forget you between sessions. | Save reviewed preferences, decisions, facts, and project context. |
| Notes are private or messy. | Keep raw sources local, then turn them into source-backed Markdown. |
| Context windows are expensive. | Return compact query packets with provenance and follow-up actions. |
| Memory needs trust. | Every page and memory can be inspected, reviewed, archived, or forgotten. |
Link follows Andrej Karpathy's LLM Wiki pattern: keep knowledge outside the chat window, make claims inspectable, and let context compound over time.
Every other agent-memory system stores memory as embeddings in a vector database or as an LLM-extracted graph. Link made four architectural commitments those designs cannot bolt on:
And the claims are measured, not asserted β see the benchmarks below. Named comparisons against Mem0/OpenMemory, Zep/Graphiti, and Letta: Why Link?
Plain files with no LLM in the memory layer, measured against the systems that have one everywhere:
| What | Link | For comparison |
|---|---|---|
| LoCoMo end-to-end QA β full 1,540 questions under mem0's own open harness | 84.8% | mem0's cloud platform: 83.2% under the same judge β with GPT-5 writing their answers and a budget model (claude-haiku-4-5) writing Link's. Confirmed by a second, independent judge (Tencent Hunyuan 3): 85.5% vs 83.6% |
| LongMemEval evidence retrieval β did the memory layer put the gold evidence in context? (deterministic, no LLM judge) | 99.4% of 500 questions | of 102 answer failures, only 3 were retrieval misses β the rest happened with the evidence already retrieved |
| Memory hygiene β junk stored over a simulated multi-month session stream | 0% (by construction, CI-enforced) | the same pipeline with governance off: 36.5% |
| Memory poisoning β 18 authored prompt-injection attacks on the capture pipeline (guardrail bypass, exfil conventions, credential planting, spoofed approvals, MemGhost-class untrusted-channel writes) | 0 reach the inbox unlabeled; 0 false positives on benign directives (CI-enforced) | to our knowledge the only published adversarial benchmark on an agent-memory write path |
| Token economics β real recall packets, measured through the query path | 1,951β4,835 tokens per recall (microβlarge budget); a 64Γ larger store grows the packet 1.58Γ, and the last quadrupling moves it 0.3% | bounded by the budget you ask for, not by how much you have remembered; CI-enforced. Over MCP, the first response of a session also carries a one-time memory brief, bounded to a hard 4,000-character budget (~360 tokens of overhead, measured) β see RESULTS.md |
| Bundled 1,176-case recall benchmark β deterministic, no network, no LLM | pip default (lexical) hit@1 0.589; lnk setup provisions the fast local tier by default: 0.703; optional quality tier 0.749, plus rerank 0.839 | reproducible with one command; CI runs the suite and gates dataset integrity, not the score |
Every number ships with its config, judge model, caveats, and the experiments that lost β including LongMemEval end-to-end, where we re-judged both sides under the neutral Hunyuan 3 referee: mem0's GPT-5 answers score 91.0%, Link's budget-model answers 80.6%. Their published number holds up, and the gap tracks the answering model, not the memory layer β that's what the 99.4% evidence-retrieval row above isolates. Full methodology and reproduction steps: benchmarks/RESULTS.md.
Three questions every memory system should answer, and how Link answers them with mechanisms instead of promises:
"Is it on all my machines?" lnk sync moves reviewed memory through
a git remote you control β a private GitHub repo, a homelab bare repo β
with no server and no account. Secrets are scanned before anything
leaves, conflicts become review items instead of git markers, and private
captures never sync. lnk team-sync runs a shared team brain on the same
rails.
"What did I believe back then?" Ask in plain language: lnk recall "where does local data live in March" returns what was true then,
reconstructed from the dated files and their supersede lineage β while
the same question without the date returns today's truth. Deterministic:
a regex and a calendar, no model. Point-in-time accuracy from plain
language: 0.917, identical to asking with an ISO date.
"Is my agent actually using this?" The question most memory systems
cannot answer about themselves. Link records retrievals locally β session
briefs pushed to agents, recalls they chose to make β and lnk wins
answers with counts, while lnk digest reports the weekly story
including memories that have never been retrieved. The ledger stores
which memory was read and when, never what you asked; it never syncs, and
LINK_USAGE=off disables it. And memory reaches every agent, not just
the hooked ones: the first MCP tool response of a session carries the
brief, whatever tool was called.
Two commands: see it work, then make it yours.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/link)<a href="https://allmcps.com/mcp/link"><img src="https://allmcps.com/api/badge/link?style=directory" alt="Link on AllMCPs" /></a>