Memory Lean

io.github.zamansheikh由 GitHub 帳號 zamansheikh 發布v1.5.0更新於 Oct 24, 2026

Token-lean memory for AI agents: a knowledge graph searched cheaply. Drop-in for server-memory.

發布方自己的服務:Memory.fit

已驗證STDIO僅桌面知識與記憶開發者工具

概覽

AI 產生的概覽

給 AI 程式代理使用的本機知識圖譜記憶伺服器,以極省 token 的方式跨工作階段檢索與回想專案、事實和關聯。

可以做什麼
  • 檢索與讀取記憶:回傳排序後的名称與符合片段,開啟完整實體及其關聯,取得依類型分組的名称索引。
  • 建立與修改圖譜:新增實體、關聯和觀察記錄,重新命名實體,刪除實體、關聯或觀察記錄。
  • 管理封存事實:列出某實體被封存的內容並還原選定事實。
  • 提供本機網頁介面瀏覽、編輯並即時查看圖譜,另有命令列工具可檢查、壓縮及輸出代理使用說明。
適用情境
適合需要代理在工作階段之間記住專案、相依關係、已發布版本、待辦事項與經驗規則,且希望這種回想只佔用很少上下文的場合。若你已在使用參考版 memory 伺服器,想沿用相同檔案與工具名称但獲得更精簡的回應,也適用。
執行需求
以本機 stdio 程序執行,通常透過 npx 啟動,因此需要 Node.js。可選環境變數:MEMORY_FILE_PATH(預設 ~/.claude/memory-graph/memory.jsonl)、MEMORY_OBS_MAX_CHARS、MEMORY_OBS_MAX、MEMORY_SEARCH_LIMIT、MEMORY_BACKUPS_KEPT。不需帳號、API 金鑰或網路存取。
安裝前請注意
圖譜是代理可寫入的本機純文字檔案,寫入內容會長期保留且可被讀取;README 建議不要納入 git,也不要存放密碼、金鑰或權杖,只記錄密鑰所在位置。刪除與重新命名會改動既有資料,不過寫入有鎖、原子替換並每日備份。網頁介面僅限本機,需使用連結中印出的一次性金鑰。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Memory Lean,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[memory-lean icon]

memory-lean

Long-term memory for AI coding agents that doesn't burn the context window.
A knowledge graph your agent searches cheaply, and a web UI where you can see and edit all of it.

[npm version] [npm downloads] [tests] [listed in the MCP registry] [zero dependencies] [MIT license]

Quick start · Web UI · How it works · Tools · Setup for 12 agents · Contributing

[A tour of the memory-lean web UI: hovering an entity, selecting one to highlight its relations, searching, editing a fact, and switching between the free layout and the layout grouped by type]

memory-lean is an MCP server that gives Claude Code, Codex, Cursor, MiMo Code and any other MCP client a memory that lasts between sessions: which projects exist, what depends on what, which version shipped, what is still pending, and which rules were learned the hard way. It is a drop-in replacement for the reference memory server (@modelcontextprotocol/server-memory), with the same file and tool names, but its answers are about 40 times smaller.

Highlights

About 40× smaller answers. Search returns a ranked list of names and the lines that matched, not every entity in full, so the agent can afford to check its memory before every task.

A web UI for people. See the whole graph grouped by type, follow relations, and add, edit or delete anything. Agent writes show up live.

Drop-in replacement. Same memory.jsonl file and the same nine tools as the reference server. Switch in, and switch back whenever you like.

Works with every agent. Copy-paste setup for Claude Code, MiMo Code, Codex, Cursor, Copilot, Gemini CLI, Zed, JetBrains and more, plus the instructions that teach the agent to use it.

Stays small by itself. Short facts, a cap per entity, and an archive for the overflow, so the graph never grows into a wall of text.

Private and safe. Plain local files, daily backups, a write lock for parallel sessions, and no network access. One server file, zero dependencies.

The numbers

Measured on a real graph of 237 entities, 355 relations and 1,160 facts (tokens ≈ characters ÷ 4):

CallReference servermemory-lean
read_graph~77,800 tokens~2,000 tokens40× smaller
search_nodes, average of 5 common words~31,000 tokens~770 tokens40× smaller

A narrow search that matches one or two entities saves less, because there is little to trim. To measure your own graph, run node tools/bench.mjs from a clone; it is read-only and prints sizes, never content.

Quick start

Claude Code: install the plugin. It adds the server, the instructions as a skill, a short reminder at the start of each session, and /memory-ui.

text
/plugin marketplace add zamansheikh/memory-lean/plugin install memory-lean@memory-lean

Any other agent: add the server to its MCP config, then give it the instructions.

json
{  "mcpServers": {    "memory": { "command": "npx", "args": ["-y", "memory-lean"] }  }}
bash
npx -y memory-lean --protocol >> AGENTS.md   # into the rules file your agent reads

Just looking? Open the web UI on a made-up example graph:

bash
npx -y memory-lean --ui --demo
Setup for each agent
AgentServer configInstructions
Claude Codepluginincluded in the plugin
Xiaomi MiMo Codemimocode.jsoncskill or AGENTS.md
opencodeopencode.jsonAGENTS.md
OpenAI Codex CLIcodex mcp addAGENTS.md
Cursor.cursor/mcp.jsonAGENTS.md or a rule
VS Code (Copilot).vscode/mcp.jsoncopilot-instructions.md
Gemini CLIsettings.jsonGEMINI.md
Windsurfmcp_config.jsona rule
Clinecline_mcp_settings.json.clinerules/
Zedsettings.jsonAGENTS.md or .rules
JetBrains IDEsAI Assistant settingsa rule or guidelines
Claude Desktopclaude_desktop_config.jsonproject instructions

The graph is created on the first write at ~/.claude/memory-graph/memory.jsonl, whichever agent writes it, so all your agents share one memory. Set MEMORY_FILE_PATH to keep it somewhere else.

Web UI

bash
npx -y memory-lean --ui

This opens your memory in the browser. Everything an agent can do, you can do here:

  • Explore. Each type gets its own bubble. Click an entity to highlight everything it connects to, drag nodes to arrange them, and scroll to zoom. Search matches names, types and facts.
  • Edit. Add, edit and delete facts, rename an entity or change its type, add and remove relations, create and delete entities, and restore archived facts. Every change passes the same checks as the agents' tools.
  • Watch. Changes your agents make appear within two seconds.
  • Spot problems. The overview lists pending work, the most connected entities, and anything over budget, which is also marked on the graph.
[An entity selected: its relations highlighted on the graph and listed in the side panel][Searching for payments: matching entities stay bright, the rest fade]
Follow the connections. Select an entity to see its facts and relations.Find anything. Search names, types and facts at once.
[Editing a fact in place, with a character counter][The web UI in the light theme]
Edit in place. With the same 300-character limit the agents have.Light or dark. It follows your system, or pick one.

The page runs on your machine only (127.0.0.1) and needs the one-time key in the link it prints, so other websites cannot read or change your memory. Nothing is uploaded anywhere.

How it works

Search, then open

The reference server answers a search with every matching entity in full, as pretty-printed JSON. memory-lean answers with a ranked list of names and the lines that matched:

text
> search_nodes { "query": "deploy" }
57 match "deploy", top 10 shown (narrow the query or raise limit). open_nodes for full entities.- shop-backend [service] 12 obs, 6 rel    › 2026-03-02: deployed 2.4.0 to production    › deploy with scripts/release.sh, never by hand- PENDING shop-backend 2.4.0 [pending] 2 obs, 3 rel    › …mobile apps still call the old endpoint until the deploy of 2.4.0 reaches them

The agent then opens only what it needs:

text
> open_nodes { "names": ["shop-backend"] }
## shop-backend [service] (3 archived)- NestJS API behind api.example.com- 2026-03-02: deployed 2.4.0 to production
## relationsshop-app -talks_to-> shop-backendPENDING shop-backend 2.4.0 -blocks-> shop-app

Why it stays lean

LimitWhat it means
Small answerssearch_nodes returns at most 10 names with snippets, read_graph returns an index of names, and only open_nodes returns full entities.
Short factsAn observation longer than 300 characters is rejected, with a message telling the agent to split it or put the detail in the repo.
A cap per entityAn entity keeps 15 observations. Past that, the oldest dated ones move to archive/<entity>.md. Nothing is deleted: they can be listed and restored, and undated facts (the identity facts) always stay.
Search that narrowsEvery word must match somewhere in the entity, so adding a word narrows the result. The reference server looks for the query as one exact phrase.

How it keeps your data safe

SafeguardWhat it means
Safe to shareWriters take a lock file, so several agent sessions can use one graph without overwriting each other. Every write replaces the file atomically.
Daily backupsA copy goes to backups/ once a day; the last 7 are kept.
Damaged lines are keptA line that cannot be read is moved to memory.jsonl.unreadable on the next write and reported, never silently dropped.
Plain filesThe graph is JSON lines, archives are Markdown, backups are copies. You can read, grep and edit all of it by hand.

Tools

ToolWhat it returns
search_nodesRanked list of entity names with counts and up to two matching snippets each. Every word must match the name, type, an observation, or the type of a relation touching the entity.
open_nodesThe full entities you name, as compact text, with every relation touching them and their archive count. Unknown names come back with "did you mean" suggestions.
read_graphAn index: entity names grouped by type, with observation counts. Never the observations.
create_entitiesCreates entities; existing names are skipped.
create_relationsCreates relations between existing entities; duplicates are skipped.
add_observationsAdds facts to an entity, enforcing the length limit and the per-entity cap.
delete_observationsRemoves observations by exact text.
delete_relationsRemoves specific relations.
delete_entitiesRemoves entities and every relation touching them.
rename_entityRenames an entity, keeping its observations, relations and archive. Not in the reference server.
archived_observationsLists what was archived for an entity, optionally filtered, and restores chosen facts. Not in the reference server.

The three read tools are marked read-only, so clients that support it can run them without asking.

Command line

CommandWhat it does
memory-leanRuns the MCP server over stdio. This is what agents start.
memory-lean --ui [port]Opens the web UI. --no-open only prints the link; --demo uses a throwaway copy of a made-up graph.
memory-lean --protocolPrints the agent instructions, ready to append to AGENTS.md, CLAUDE.md or GEMINI.md.
memory-lean --skill <dir>Writes the same instructions as an Agent Skill into <dir>/memory-graph.
memory-lean --lintReports what in the graph is over budget. Read-only.
memory-lean --compactBacks up the graph, then moves overflow observations to the archive.
memory-lean --versionPrints the version.

With npx, put npx -y in front: npx -y memory-lean --ui.

Teach your agent to use it

A memory server only helps if the agent reads it before working and writes to it when something changes. docs/AGENT-PROTOCOL.md is a ready-made set of instructions: what to look up at the start of a task, what to record, how to name things, and what never to store. The Claude Code plugin includes it. For every other agent, one command installs it:

bash
npx -y memory-lean --protocol >> AGENTS.md     # into a rules file: always onnpx -y memory-lean --skill .agents/skills      # as an Agent Skill: loaded when relevant

Adjust the entity types and names in it to your own work.

Coming from the reference memory server

Point MEMORY_FILE_PATH at your existing memory.jsonl and swap the command. The file format is identical, so you can switch back at any time. Existing observations longer than 300 characters are kept as they are; only new writes are checked. To see what is over budget, and optionally fix it:

bash
npx -y memory-lean --lint      # report onlynpx -y memory-lean --compact   # back up, then move overflow to archive/

Settings

All optional, set as environment variables on the server:

VariableDefaultMeaning
MEMORY_FILE_PATH~/.claude/memory-graph/memory.jsonlWhere the graph lives
MEMORY_OBS_MAX_CHARS300Longest observation accepted
MEMORY_OBS_MAX15Observations per entity before the oldest dated ones are archived
MEMORY_SEARCH_LIMIT10Default number of search results
MEMORY_BACKUPS_KEPT7Daily backups kept

FAQ

Is my memory sent anywhere?


No. The server reads and writes local files and makes no network requests. The web UI listens on 127.0.0.1 only. Keep the graph out of git, and never store passwords, keys or tokens in it: record where a secret lives, not its value.

Can several agents or sessions share one graph?


Yes. Every write takes a lock, re-reads the file and replaces it atomically, so parallel sessions (and the web UI) do not overwrite each other.

Why plain text search instead of embeddings?


It needs no model, no index and no dependencies, and an agent's queries are mostly names it already knows. Good entity names matter more than clever queries.

What happens to old facts?


When an entity passes 15 facts, the oldest dated ones move to archive/<entity>.md next to the graph. archived_observations, or the Archive section in the web UI, lists and restores them.

Roadmap

  • Claude Code plugin with the server, a skill and /memory-ui
  • Setup guides for 12 agents
  • rename_entity and archive restore
  • A web UI to explore and edit the graph
  • Listed in the official MCP registry
  • Listed in the Claude Code plugin directory
  • Search across the archived facts of every entity
  • Undo in the web UI

Contributing

Ideas, bug reports and pull requests are welcome. The server is one file with no dependencies, the web UI is one HTML file, and npm test runs in a few seconds, so a first change is quick to make. CONTRIBUTING.md has the layout, the ground rules and a list of good first contributions.

If memory-lean saves you tokens, a ⭐ helps other people find it.

Support

memory-lean is free and MIT licensed. If it is useful to you, you can support the work:

[Buy Me a Coffee] [Ko-fi]

Author

Created and maintained by Zaman Sheikh at Silifton.

[GitHub] [X] [LinkedIn] [Website]

Built on the file format and tool names of the Model Context Protocol reference memory server.

License

MIT © 2026 Zaman Sheikh. Free to use, change and share, including commercially; keep the copyright notice.

來源:README.md,提交 f2767b0

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

2
  1. v1.5.0最新Oct 16, 2026
  2. v1.4.1Oct 9, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Memory 整合