/ 目录 / 演练场 / MARM-Systems
● 社区 Lyellr88 ⚡ 即开即用

MARM-Systems

作者 Lyellr88 · Lyellr88/MARM-Systems

Persistent, searchable memory across Claude, Qwen, Gemini, and any MCP client — sessions, notebooks, and semantic recall in one server.

MARM-Systems is a Python MCP server that gives any AI client a persistent memory layer: sessions, notebooks, auto-classifying contextual logs, and semantic vector search. STDIO, HTTP, and WebSocket transports. SQLite backend with WAL mode for concurrent access.

为什么要用

核心特性

实时演示

实际使用效果

marm-systems.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "marm-systems": {
      "command": "uvx",
      "args": [
        "MARM-Systems"
      ],
      "_inferred": true
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "marm-systems": {
      "command": "uvx",
      "args": [
        "MARM-Systems"
      ],
      "_inferred": true
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "marm-systems": {
      "command": "uvx",
      "args": [
        "MARM-Systems"
      ],
      "_inferred": true
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "marm-systems": {
      "command": "uvx",
      "args": [
        "MARM-Systems"
      ],
      "_inferred": true
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "marm-systems",
      "command": "uvx",
      "args": [
        "MARM-Systems"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "marm-systems": {
      "command": {
        "path": "uvx",
        "args": [
          "MARM-Systems"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

claude mcp add marm-systems -- uvx MARM-Systems

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: MARM-Systems

Build persistent memory across sessions on a long project

👤 Anyone working a multi-week effort with an AI ⏱ ~15 min beginner

何时使用: You keep re-explaining the same project background every session.

前置条件
  • MARM-Systems installed and running — docker pull lyellr88/marm-mcp-server && docker run -d -p 8001:8001 lyellr88/marm-mcp-server
步骤
  1. Start a session tagged to the project
    marm_start with project tag 'dataplatform-migration'. Log that we're migrating from Redshift to Snowflake, deadline end of Q2.✓ 已复制
    → Session started; initial entry saved
  2. Drop context as you work
    marm_contextual_log: 'Decided to use Fivetran for CDC replication, evaluated Airbyte but config overhead too high.'✓ 已复制
    → Auto-classified and stored
  3. Next session, recall
    marm_smart_recall 'what did we decide about CDC tooling?'✓ 已复制
    → Relevant past decision surfaces

结果: Session N+1 starts with all of session 1-N context accessible by query, not re-type.

注意事项
  • Dumping every chat into memory clogs recall — Use marm_contextual_log for decisions and milestones, not every exchange
  • Vector search misses on jargon — Tag entries explicitly with project names for keyword fallback
搭配使用: drift

Share memory across a team using multiple AI assistants

👤 Teams where different members use Claude / Qwen / Gemini ⏱ ~45 min advanced

何时使用: Knowledge trapped in one person's AI shouldn't be.

步骤
  1. Run MARM as a shared HTTP server
    Deploy MARM-Systems on a team server; each teammate points their MCP client at http://marm.team.internal:8001/mcp.✓ 已复制
    → All clients connect
  2. Log shared context
    marm_contextual_log: 'Database backup runbook is at /runbooks/db-backup.md; last updated 2026-04-10.'✓ 已复制
    → Everyone can recall it
  3. Recall from any client
    From a teammate's Qwen session: marm_smart_recall 'how do I restore the DB'?✓ 已复制
    → Same answer surfaces

结果: Cross-AI shared institutional memory.

注意事项
  • Shared memory needs real OAuth — Don't rely on the dev hardcoded credentials — wire to your IdP before prod use
  • Sensitive data leaks into shared recall — Use project tags and scope queries by tag

Use notebooks as AI-queryable scratchpads

👤 Learners, researchers ⏱ ~5 min beginner

何时使用: You want a topic-scoped note area the AI can search later.

步骤
  1. Create a notebook
    marm_notebook_add name='rust-ownership' with entry: 'Move vs borrow: move transfers ownership, borrow lets you peek.'✓ 已复制
    → Notebook created
  2. Add as you learn
    marm_notebook_add 'rust-ownership': 'Mutable borrow is exclusive; only one at a time.'✓ 已复制
    → Entry appended
  3. Recall later
    marm_notebook_show 'rust-ownership'✓ 已复制
    → Full notebook

结果: A queryable learning journal.

组合

与其他 MCP 搭配,撬动十倍杠杆

marm-systems + drift

drift remembers code conventions; MARM remembers project decisions

Recall drift conventions AND MARM decisions for project 'dataplatform-migration' and summarize where they interact.✓ 已复制
marm-systems + claude-code-organizer

Move short-lived memories out of CC into MARM for long-term recall

Organizer listed my 12 biggest memories — move the 5 project-specific ones into MARM notebooks.✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
marm_start project?, tags? Start of any working session free (local)
marm_refresh session_id? Reload context mid-session free
marm_smart_recall query: str, top_k?: int Semantic search past entries free (local embeddings)
marm_contextual_log text: str, tags?: str[] Persist a decision/milestone/fact free
marm_log_session session_id Review a past session free
marm_notebook_add name: str, entry: str Topic-scoped notes free
marm_notebook_use name: str Pin a topic for the session free
marm_notebook_show name: str Read a notebook free
marm_summary scope: session|notebook|tag, id Condense long history free (local)
marm_context_bridge from_session, to_session Cross-project reasoning free

成本与限制

运行它的成本

API 配额
None — local-only
每次调用 Token 数
Recall responses 500-2000 tokens typically
费用
Free, open source
提示
Rotate or archive old sessions periodically — SQLite handles scale but recall quality degrades with noise.

安全

权限、密钥、影响范围

凭据存储: Local SQLite; for shared HTTP mode use env-based OAuth secrets
数据出站: None by default (local storage); if you run shared, only within your network
切勿授予: Exposing port 8001 to the public internet without an auth layer

故障排查

常见错误与修复

Cannot connect to localhost:8001

Container not running. docker ps to check; docker start marm-mcp-server.

验证: curl http://localhost:8001/docs
Embeddings model download fails

First run downloads the model; needs outbound net. After that, offline works.

验证: Check docker logs for HuggingFace download
Recall returns unrelated entries

Too few entries for good embeddings; add more, or pre-filter by tag.

验证: marm_smart_recall with tag filter

替代方案

MARM-Systems 对比其他方案

替代方案何时用它替代权衡
driftYou want code-specific memory (conventions, decisions)Code-focused; less general
Letta (MemGPT)You want a research-grade memory agent, not just a serverHeavier to run; opinionated architecture
CC native memoriesClaude Code only; no cross-client needNo semantic search; bloats context

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills