Claude-Mem, now presented as Grok Mem, records an agent's work, compresses it with AI, and brings relevant notes into later sessions so the agent can remember decisions and next steps. It is intended for persistent context across agent conversations and supports multiple coding-agent environments. The catalogue add-ons provide the workflows and integrations used to operate this memory system.
Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add thedotmack/claude-mem/plugin install claude-memInstalling this writes the configuration, not the program: `node` runs a file from the repository, so clone it first and make the path in the command match where you put it.
Wrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/mcp/thedotmack/claude-mem/mcp-search)<a href="https://agentmods.dev/mcp/thedotmack/claude-mem/mcp-search"><img src="https://agentmods.dev/badge/mcp/thedotmack/claude-mem/mcp-search/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/mcp/thedotmack/claude-mem/mcp-search"><img src="https://agentmods.dev/badge/mcp/thedotmack/claude-mem/mcp-search.svg" alt="Reviewed on agentmods" width="80" height="20"></a>Grade A, and why
mcp-search scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
{
"mcp-search": {
"type": "stdio",
"command": "node",
"args": [
"-e",
"const f=require('fs'),p=require('path'),o=require('os');const h=o.homedir();const C=process.env.CLAUDE_CONFIG_DIR||p.join(h,'.claude');const E=process.env.CLAUDE_PLUGIN_ROOT||process.env.PLUGIN_ROOT||'';const d=process.cwd();const S=n=>{const q=n.split('-')[0].split('.');return[parseInt(q[0],10)||0,parseInt(q[1],10)||0,parseInt(q[2],10)||0]};const W=(a,b)=>{const x=S(a),y=S(b);return(y[0]-x[0])||(y[1]-x[1])||(y[2]-x[2])||((a.indexOf('-')<0?0:1)-(b.indexOf('-')<0?0:1))||(a<b?1:a>b?-1:0)};const L=x=>{try{return f.readdirSync(x).filter(n=>/^\\d/.test(n)).map(n=>p.join(x,n)).filter(z=>{try{return f.statSync(z).isDirectory()&&!f.existsSync(p.join(z,'.orphaned_at'))}catch{return false}}).sort((a,b)=>W(p.basename(a),p.basename(b)))}catch{return[]}};const K=[E,p.join(d,\"plugin\"),d,...L(p.join(h,\".codex/plugins/cache/claude-mem-local/claude-mem\")),...L(p.join(h,\".codex/plugins/cache/thedotmack/claude-mem\")),...L(p.join(C,\"plugins/cache/thedotmack/claude-mem\")),p.join(C,\"plugins/marketplaces/thedotmack/plugin\")].filter(Boolean);let R=null;for(const k of K){const r=f.existsSync(p.join(k,'plugin','scripts'))?p.join(k,'plugin'):k;if(f.existsSync(p.join(r,'scripts',\"mcp-server.cjs\"))){R=r;break}}if(!R){process.stderr.write(\"claude-mem: mcp server not found\\n\");process.exit(1)}require(p.resolve(R,'scripts',\"mcp-server.cjs\"))"
]
}
}What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago Changed 57982fc7fe6d
- 1mo ago First seen · 10 lines scan A 6f567aa6a20d
mcp-search is an MCP server published in the GitHub repository thedotmack/claude-mem (101,048 stars, last pushed today), licensed Apache-2.0. Its token cost is not measured: an MCP server costs its tool schemas, not its config file. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other mcp servers, from other repositories
mcp-memory-server
Hosted memory for AI agents that learns from outcomes — one key across Claude, Cursor & ChatGPT. Runs locally from the @mnemoverse/mcp-memory-server npm package. Needs 2 environment variables to run.
vscode-warnerco-schematica
MCP server "vscode-warnerco-schematica" as configured in timothywarner-org/context-engineering. Runs locally from the warnerco-mcp Python package. Needs 1 environment variable to run.
ghcopilot-warner
GitHub's hosted MCP server: lets the agent search code, read and create issues and pull requests. Remote server at api.githubcopilot.com.
longhand
MCP server "longhand" as configured in Wynelson94/longhand. Launched with longhand mcp-server.
cmk
MCP server "cmk" as configured in LH8PPL/core-memory-kit. Launched with cmk mcp serve.
agentkeeper-aria
MCP server "agentkeeper-aria" as configured in Thinklanceai/agentkeeper. Launched with agentkeeper-mcp --agent-id aria --provider anthropic. Needs 2 environment variables to run.