Context7
Up-to-date docs for AI agents
作者提供的说明(英文原文)
Give any agent self-improving memory you can trust in production. Built-in memory security.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
MEMORY_PULSE_KEY, MEMORY_PULSE_LEDGER, MEMORY_PULSE_BOARD标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"memory-pulse": {
"command": "npx",
"args": [
"-y",
"memory-pulse"
],
"env": {
"MEMORY_PULSE_KEY": "your-value",
"MEMORY_PULSE_LEDGER": "your-value",
"MEMORY_PULSE_BOARD": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add memory-pulse --env MEMORY_PULSE_KEY=your-value --env MEMORY_PULSE_LEDGER=your-value --env MEMORY_PULSE_BOARD=your-value -- npx -y memory-pulse运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"memory-pulse": {
"command": "npx",
"args": [
"-y",
"memory-pulse"
],
"env": {
"MEMORY_PULSE_KEY": "your-value",
"MEMORY_PULSE_LEDGER": "your-value",
"MEMORY_PULSE_BOARD": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"memory-pulse": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"memory-pulse"
],
"env": {
"MEMORY_PULSE_KEY": "your-value",
"MEMORY_PULSE_LEDGER": "your-value",
"MEMORY_PULSE_BOARD": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
MEMORY_PULSE_LEDGER envMEMORY_PULSE_BOARD env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
注册名称已通过 GitHub 账户 t-crew 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:MEMORY_PULSE_KEY
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.16.1)于14天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Context7, Codebase Memory, Exa
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Up-to-date docs for AI agents
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Site: pulse.strategic-innovations.ai, where the guard runs in the browser. Compare with Mem0, Zep, Letta and CLAUDE.md. Guide: docs/GUIDE.md, the day-to-day protocol with runnable examples.
Give any agent self-improving memory you can trust in production.
Every correction is kept, put in front of your agent when it matters, and enforced. Memory security is built in: a stored note that reads like an instruction never reaches your agent, every row is hash-chained so any edit to the record shows, and a guard blocks the edit that writes a retired value back.
Your agent acknowledged the correction, then wrote the old value back next session. memory-pulse records it once, puts it at the top of every session, and blocks the edit that reintroduces it, quoting the line that retired it. For Claude Code, Codex, Cursor, any MCP client and GitHub Actions. The record is a file in your own repository.
Most memory tools stop at showing the correction to the model. The guard is the part that acts on it.
The four tool definitions come to 3,406 chars, 3.3 KB, about 900 tokens at 3.8 chars per token, measured 2026-09-09. test/client.test.js fails the build past 4,000 chars or 60 tokens either side of 900. Independent measurements put a typical five to ten server MCP setup at 50-67k tokens of tool definitions before your first prompt, roughly a third of a 200k context window.
A session ends and everything it learned goes with it. memory-pulse keeps a ledger of cause -> effect events in a local file, and gives the agent four tools over it:
| tool | what it does | runs |
|---|---|---|
remember | record a finding (or a correction) | locally, offline |
pulse | re-enter the project on a ranked brief, sized to a budget you set | hosted engine |
recall | what caused X? what did X cause? when was the link strongest? | hosted engine |
execute | run JS against memory in a sandbox, where only the return value enters context | hosted engine |
Two design decisions do the heavy lifting.
Corrections come first, always. An event recorded with kind: "correction" outranks everything at every brief size and never decays. The failure this prevents is your agent confidently quoting the benchmark number you withdrew three sessions ago.
A weak answer returns nothing. When recall cannot clear its confidence floor it returns an empty result, and the brief says so.
Every route, host by host, with what runs on each: docs/INSTALL.md (also at pulse.strategic-innovations.ai/install).
Six routes. Pick the row for your agent. Node 18 or newer (package.json engines); the test suite runs on 22 and 24.
remember and help from the shell arrive in 0.5.9. npm served 0.5.8 on 2026-09-09, where both exit 1 with unknown command. If npx serves an older cached release, pin this one: npx -y memory-pulse@0.16.1; from a checkout, run node server.mjs. Four more things in this README are 0.5.9 behaviour and differ on 0.5.8: guard --verbose names non-JSON stdin on stderr (0.5.8 prints nothing), handoff with no transcript writes nothing and says handoff skipped (no transcript) (0.5.8 records a row that reads asked: n/a | files: none), remember reports boundFromEffect when it read the terms out of the effect slug, and a replacement term under 2 characters is dropped like a withdrawn one. 0.5.8's install-hook --codex also says trust the two memory-pulse entries while writing three hooks: trust all three.
One line, any shell. Installs the Claude Code hooks, the Codex hooks when codex is on PATH, and registers the MCP server. It prints its plan first, runs nothing as root, and downloads nothing itself (npx caches the package under ~/.npm). Append -s -- --dry-run after bash to see the commands without running them, or -s -- --project to write the hooks and the Claude Code MCP registration into the current repository. codex mcp add has no project scope; it writes ~/.codex/config.toml on each machine under either flag.
curl -fsSL https://pulse.strategic-innovations.ai/install.sh | bash
Claude Code, as a plugin. Skill, MCP tools and two hooks (SessionStart brief, PreToolUse guard) from this repo, typed inside Claude Code:
/plugin marketplace add t-crew/memory-pulse
/plugin install memory-pulse@memory-pulse
claude plugin details memory-pulse shows what you pay. About 120 tokens are always on, which is the skill's description (Claude Code, 2026-09-01). The four tool schemas resolve at runtime and the hooks are free. The hooks run the plugin's own server.mjs, so what enforces your corrections is the version you installed. The plugin does not carry the PreCompact handoff; to add it, put this entry under hooks.PreCompact in ~/.claude/settings.json:
{ "hooks": [{ "type": "command", "command": "npx -y memory-pulse handoff" }] }
Codex CLI, as a plugin. Same files, read from .codex-plugin/plugin.json:
codex plugin marketplace add t-crew/memory-pulse
codex plugin add memory-pulse@memory-pulse
Then, inside Codex, run /hooks and trust the three memory-pulse entries (session start, prompt and guard). Codex runs no hook it has not shown you, and installing a plugin does not trust its hooks. That is Codex's rule and a good one.
npm, global install. install-hook writes four hooks into ~/.claude/settings.json: SessionStart brief, UserPromptSubmit prompt, PreToolUse guard and PreCompact handoff. --codex targets ~/.codex/hooks.json instead, --project writes them into the repository, and --ambient adds the UserPromptSubmit observer.
npm i -g memory-pulse
memory-pulse install-hook
Claude Code or Codex without the plugin. Register the stdio server, then add the hooks:
claude mcp add memory-pulse -- npx -y memory-pulse
codex mcp add memory-pulse -- npx -y memory-pulse npx memory-pulse install-hook # Claude Code: ~/.claude/settings.json npx memory-pulse install-hook --codex # Codex: ~/.codex/hooks.json (then /hooks to trust each entry) npx memory-pulse install-hook --cursor # Cursor: ~/.cursor/hooks.json (brief, fail-closed guard, capture)
claude mcp add without a scope registers the server for the current directory; -s user registers it once for every project. codex mcp add has no scope flag and writes ~/.codex/config.toml (codex-cli 0.153.2, 2026-09-09). Add --project to install-hook and the hooks are written into the repo, at .claude/settings.json or .codex/hooks.json. Commit that and every clone is re-entered and guarded with nothing for anyone to install. A Codex clone still trusts the entries once via /hooks, and a scripted codex exec needs that trust in place beforehand.
Cursor. Cursor runs hooks, so npx memory-pulse install-hook --cursor (or --cursor --project for .cursor/hooks.json in the repo) gives Cursor the same brief, guard and capture as Claude Code: the brief at session start, the guard on every write and shell command (fail-closed, so a broken guard blocks rather than passes), and capture with fixes and open threads. For the MCP tools, register command: npx with the args below in .cursor/mcp.json or ~/.cursor/mcp.json. Written from Cursor's hook reference (cursor.com/docs/agent/hooks, read 2026-10-21) and tested against its documented payloads; not yet run inside Cursor itself.
Other stdio clients. The same MCP entry works in any client that speaks MCP over stdio.
{ "mcpServers": { "memory-pulse": { "command": "npx", "args": ["-y", "memory-pulse"], "env": { "MEMORY_PULSE_KEY": "" } } } }
A rule file at .cursor/rules/memory-pulse.mdc tells the agent to call pulse before answering about prior work; the guide has the text.
From source. server.mjs plus the plain modules in lib/, zero dependencies:
git clone https://github.com/t-crew/memory-pulse.git
cd memory-pulse && node server.mjs brief --offline
The second command prints the corrections in this repository's own committed ledger, so you see the output format before installing anything.
Read from server.mjs and hooks/hooks.json, 2026-10-21.
| Claude Code plugin | Codex plugin | install-hook | install-hook --cursor | other MCP clients | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| four tools | yes | yes | with claude mcp add or codex mcp add | with .cursor/mcp.json | yes | ||||||||||
| brief at session start | yes | after /hooks trust | yes | yes | no | ||||||||||
| guard before an edit | `Edit\ | Write\ | MultiEdit\ | apply_patch\ | Bash` | apply_patch measured, after trust; Bash is in the matcher, unmeasured in Codex (2026-09-09) | `Edit\ | Write\ | MultiEdit\ | Bash (Claude Code), Edit\ | Write\ | apply_patch` (Codex) | `Write\ | Shell`, fail-closed | no; check --ci in CI |
| capture and consolidation | yes | after /hooks trust, unmeasured in Codex | yes for Claude Code (--no-capture leaves it out); not for --codex | yes | no | ||||||||||
| handoff before compaction | no | no | yes | no | no | ||||||||||
| ambient capture | mode agent | no | --ambient or mode agent | no | no | ||||||||||
| CLI and GitHub Action | everywhere | everywhere | everywhere | everywhere | everywhere |
The hooks stay silent in a project that has no ledger: brief prints nothing and exits 0. The first remember creates .memory-pulse/events.jsonl, from a tool call or from the shell:
npx -y memory-pulse@0.16.1 remember pricing-shipped price-corrected --kind correction --withdrawn '$49' --replacement '$29' --note 'measured willingness to pay is $29'
git clone https://github.com/t-crew/memory-pulse.git && node memory-pulse/server.mjs remember pricing-shipped price-corrected --kind correction --withdrawn '$49' --replacement '$29' --note 'measured willingness to pay is $29'
The hook command install-hook writes is npx -y memory-pulse guard, and npx resolves the package on every call: 0.99 s warm and 1.4 s cold (empty npm cache) per edit on an M1 Pro on 2026-10-16 with 0.8.0, against 52 ms for node server.mjs guard on the same ledger, which is the path the plugin runs. If the cost matters, install the plugin, or install globally and edit the hook command to memory-pulse guard.
export MEMORY_PULSE_KEY=mp_live_... in the shell that starts Claude Code or Codex; the plugins and the hooks read the shell environment. On claude mcp add, pass --env MEMORY_PULSE_KEY=.... In Cursor, the env block above. Do not also run claude mcp add on a plugin install, or you get two servers.
Showing an agent a correction is not enough. TRACE (arXiv 2606.13174) measured agents re-violating more than half of the corrections they had been shown, with a memory tool installed. The PreToolUse guard sees every Edit, Write and MultiEdit in Claude Code, plus a Bash command whose write is literal in the command string (a heredoc, a redirect or a tee, read with nothing executed), and every apply_patch in Codex, where one patch may touch several files and each is checked under its own path. An edit that writes back a withdrawn value is blocked, and the agent is told which ledger line retired it and when. An edit that names the replacement beside the old value passes, because "was $49, now $29" is a comparison. Only a bare reintroduction is blocked. A shell command who
只显示了开头部分;其余内容请在仓库中阅读