Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

Linksee Memory

by michielinkseeversion 0.19.0i★ –iRuns on your computer
Registry nameio.github.michielinksee/linksee-memory

Install

Overview

Description from the maker (original English)

Hand a project over with the reasons attached. Local-first cross-agent memory MCP + drift detection.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Search & AI memory

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • The registry lists no key to fill in.

You need

  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "linksee-memory": {
      "command": "npx",
      "args": [
        "-y",
        "linksee-memory"
      ]
    }
  }
}

Run this in your terminal

claude mcp add linksee-memory -- npx -y linksee-memory

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "linksee-memory": {
      "command": "npx",
      "args": [
        "-y",
        "linksee-memory"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "linksee-memory": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "linksee-memory"
      ]
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account michielinksee, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Search & AI memoryi

  • More stars than 0% of the other 5714 servers in this category
  • Published to the registry more recently than 94% of the other 5714 servers in this category
  • Basic checks equal to or better than 100% of the other 5714 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is Linksee Memory safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.19.0) reached the registry 2 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: Context7, Codebase Memory, Exa

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Context7

Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.

by upstashWidely used↓ 972.7K/wk★ 64.2KUpdated 2 days ago

Computer or cloud

Codebase Memory

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

by DeusDataWidely used↓ 18K/wk★ 48.1KUpdated 22 days ago

Runs on your computer

Exa

Connect AI agents to Exa for web search, content fetching, and multi-step research.

by exa-labsWidely used★ 5.2KUpdated 2 months ago

Runs in the cloud✓ exa.ai

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

linksee-memory

A local MCP memory server: one SQLite file on your machine that Claude Code, Cursor, Windsurf, OpenAI Codex and Gemini CLI all read and write. No account, no credit card, no cloud, no API key. The server makes no network calls; telemetry is opt-in and off by default.

It is for handing a project over — to your next session, to another client, to the person after you — with the reasons attached. Every client can save and search the memory. In Claude Code, hooks also bring a recorded decision back at session start and before an edit. Drift detection shows which recorded decisions the code has since left.

Needs Node.js 22.16 or later (recommended: SQLite with FTS5 is built into Node, nothing is compiled), and Claude Code or Codex to try it (either one is enough). Node 20 and Node 22.0–22.15 still work through better-sqlite3, which then has to be built on install — on npm 12 that means allowing its install script (see troubleshooting).

Install

Claude Code, from inside a session (plugin: MCP server and skill, no hooks):

/plugin marketplace add michielinksee/linksee-memory

/plugin install linksee-memory@linksee-memory

Or from a shell, which also installs the hooks:

npx -y linksee-memory setup                       # Claude Code: MCP server, skill, hooks

codex mcp add linksee -- npx -y linksee-memory # Codex: the same memory

The plugin starts the server with npx -y linksee-memory@latest and ships the same skill setup installs. It has no hooks: the Stop hook (auto-capture) and the re-injection guard come only from setup. One or the other, not both:

  • Already ran setup? Do not add the plugin. With both, Claude Code runs the server twice (linksee and plugin:linksee-memory:linksee).
  • Installed the plugin and want the hooks? Disable it (/plugin → Installed → linksee-memory → disable, or claude plugin disable linksee-memory@linksee-memory), then run npx -y linksee-memory setup. The memory file is the same; nothing is lost.
  • Plugin only: no hooks, so nothing is saved unless the agent calls remember (the skill tells it when).
  • Windows: after installing the plugin, run /mcp and check that plugin:linksee-memory:linksee is connected. If it is not, disable the plugin first (previous bullet), then run npx -y linksee-memory setup from the shell block above. setup registers the server with claude mcp add, the form that is known to work on Windows, and it does not disable the plugin for you.

One command for Claude Code. setup --dry-run prints what it would change. It edits ~/.claude/settings.json, so the hooks apply in every repo, and keeps the old file as settings.json.bak- (what it writes).

First round trip

A new install has an empty memory, so "how did we solve this before?" finds nothing yet. Try this instead:

  1. In Claude Code or Codex, say: *"Remember: in this repo we decided to use X, because Y. Use Linksee."*
  2. Open a new session — in either one — and ask: *"What did we decide about X? Use Linksee."*
  3. Two repos: record a decision in repo A, then in repo B (e.g. Codex) ask the same. It does come back — the memory is per machine, not per repo — labelled entity: repo-a and by: ; entity_name on the recall narrows by a part of the entity name (repo-a also matches repo-a-backup).
  4. Reverse it: remember the new decision with supersedes: . recall then shows only the new one (supersedes # ); include_superseded: true shows both.

Works for me

Where the first round trip is known to work. Most cells are empty because nobody has tried them yet, not because they fail.

ClientWindowsmacOSLinux
Claude Codeverifiedreporteduntested
Codexuntesteduntesteduntested
Cursoruntesteduntesteduntested
Windsurfuntesteduntesteduntested
Gemini CLIuntesteduntesteduntested
  • verified: run by the maintainer with a record. Claude Code on Windows: remember in one session, recall in a new one, on 0.18.1 (record). The plugin install path connected on 2026-11-05; its round trip is not in the record.
  • reported: someone said it works, without a version or log. Claude Code on macOS: the maintainer on one Mac (#16); the hooks there are not checked.
  • untested: nobody has reported it either way.

If you fill one cell, your name goes in the weekly report under "Added by others". Report your client and OS — five fields, no database contents.

Weekly report: Discussion #16.

What it does not do

  • Reminders and blocks before an edit are Claude Code hooks. Cursor, Windsurf, Codex and Gemini CLI share the memory but get no warning before an edit.
  • Saving every session automatically is also Claude Code only. Other clients save when the agent calls remember.
  • The memory is shared on one machine. There is no sync to another machine; to hand it over, copy ~/.linksee-memory/ (with every client closed).
  • A database from a very early version (schema 1–5) is refused without being changed. Close every client and keep them closed while it runs, then npx -y linksee-memory@0.17.2 migrate --dry and npx -y linksee-memory@0.17.2 migrate: it migrates a copy and moves the original files, as one set, into memory.db.pre-migrate- / (details and how to go back).

Docs: docs.linksee.app · Site: linksee.app (setup guides for non-developers) · Free, MIT, local only — there is no paid tier you need.

What setup writes, and how to undo it

setup registers the MCP server (claude mcp add -s user linksee -- npx -y linksee-memory), installs the agent skill, adds a Stop hook that saves each session, and wires the re-injection guard for every repo (--project-guard for this repo only, --no-guard to skip). Running it again changes nothing that is already in place.

FileWhat
~/.claude.jsonthe linksee MCP server (via claude mcp add) — undo with claude mcp remove linksee
~/.claude/skills/linksee-memory/SKILL.mdthe agent skill
~/.claude/settings.jsonthe Stop hook (auto-capture) and the SessionStart / PreToolUse guard hooks. Merged into what is there — other hooks and settings are kept. If the file does not parse, setup leaves it untouched and says so. Before changing it, setup keeps the previous file as settings.json.bak- : to undo, copy that file back over settings.json.
~/.linksee-memory/runtime/ /only when setup ran from a temporary location (npx, pnpm dlx, bunx, or the system temp directory): setup runs npm install --prefix ~/.linksee-memory/runtime/ --no-save --omit=dev linksee-memory@ once (shown with its size; this downloads from the npm registry), because the hooks call node on it directly and those locations are temporary. Older versions are not removed automatically (about 35 MB each): setup prints the folder, and npx -y linksee-memory runtime prune lists them with what references each. With --yes --scope-confirmed it deletes only versions no settings file references; it cannot see other repos where you ran setup --project (pass their .claude/settings.json with --settings), and if a settings file cannot be read or parsed it deletes nothing. If the install fails, the hooks stay on the npx form.
~/.linksee-memory/telemetry-consentyour telemetry answer (off unless you said yes)

To remove everything: claude mcp remove linksee, delete the linksee hooks from settings.json (or copy the .bak back), then rm -rf ~/.claude/skills/linksee-memory ~/.linksee-memory — the last one deletes the memory stored in that folder. It does not reach copies you made yourself (for example to hand the memory over) or telemetry already sent if you opted in. Linksee itself never sends memory text anywhere. Step by step, with manual setup: docs/install.md.

Other clients

Every client points at the same stdio command and the same ~/.linksee-memory/memory.db. A decision made in Claude Code is recalled in Cursor.

ClientWhere
OpenAI Codexcodex mcp add linksee -- npx -y linksee-memory
Cursor~/.cursor/mcp.json
Windsurf~/.codeium/windsurf/mcp_config.json
Gemini CLI~/.gemini/settings.json
Claude Desktopclaude_desktop_config.json

The JSON clients take the same block:

{ "mcpServers": { "linksee": { "command": "npx", "args": ["-y", "linksee-memory"] } } }

Full configs, including Codex's config.toml: docs/install.md.

Everyday use

Say thisWhat happens
"use linksee"Recalls relevant memories before acting
"linksee this"Saves the decision or lesson now
"what's drifting?"Checks reality against the decisions you recorded

Adding "Use Linksee Memory" to your system prompt or CLAUDE.md prompts the agent to call recall more often; whether it does is still up to the agent.

What each part does, and where:

  • Shared (every client): remember saves to the one SQLite file; recall searches it when the agent calls it.
  • Re-injected (Claude Code only, hooks): remember({ content, anchor: {} }) also records the decision as an anchor. At session start the guard hook adds a short digest of recorded decisions (up to 8). Before an Edit / Write / Bash, a decision comes back only if it matches: with affects globs, the edited path must match (a Bash command that names no file can still match on a violation_signal); without affects, a detect_terms or violation_signal hit is needed. An empty anchor: {} has none of these, so it appears only in the session-start digest, never before an edit.
  • Contradiction warned or blocked (Claude Code only): the guard can only tell that an edit contradicts a decision if you give it the strings that mean "contradiction": anchor: { violation_signal: ["pgvector"] }. An empty anchor: {} is stored as a constraint and is re-injected, never matched as a contradiction. A match warns; after resolve_drift(action: "harden") it blocks. The guard fails open: its own errors never block anything. Details: docs/guard.md.

Tools: seven, six for memory and drift and one you ask for

Three for memory, three for drift, and share_draft,

Only the beginning is shown; read the rest in the repo

Ask PopNx