← 返回目录
最多同时对比 4 个 SERVER

MCP Server 选型对比

把评分、权限、风险和适用场景放在同一张表里,快速判断哪个更适合你。

对比维度Memora为你的 AI 智能体提供持久的集体记忆Compartment加密、完全离线的 AI 代理长期记忆库
FMRS60 / 100 · C75 / 100 · B
可靠性12 / 2012 / 20
安全与权限11 / 2016 / 20
维护活跃度11 / 2014 / 20
文档质量14 / 2018 / 20
安装易用性12 / 2015 / 20
适合谁
  • 使用 Claude Code、Codex CLI 等 MCP 客户端并需要跨会话记忆的开发团队
  • 希望自托管 SQLite 或使用 Cloudflare D1/R2 做云同步的用户
  • 需要取代血缘(supersession lineage)与去重、而不只是追加文本的长期记忆场景
  • 愿意自行配置嵌入与 LLM 供应商(OpenAI、OpenRouter、Cloudflare Workers AI 等)的高级用户
  • 重视隐私与离线运行、不希望数据离开本机的个人或团队
  • 在多个 MCP 客户端(Claude Code、Claude Desktop、Hermes Agent、OpenClaw、Cursor、Codex、Gemini CLI 等)之间共享记忆的用户
  • 需要加密存储、审计链与可验证 vault 迁移的场景
  • 希望记忆检索延迟低、嵌入模型随包附带、无需额外 LLM 调用的用户
不适合谁
  • 只想零配置开箱即用的用户——嵌入与 LLM 需要自行准备密钥与端点
  • 不需要持久记忆、单次问答即可完成任务的场景
  • 不愿承担运行容器或 LaunchAgent 代理这类常驻服务运维成本的环境
  • 期望官方厂商支持或 SLA 的用户——该项目由社区维护
  • 需要云端多设备实时同步或团队协作式托管记忆的用户;Compartment 的同步方式是在锁定后手动复制 vault 文件
  • 希望由服务端 LLM 自动抽取事实、自动决定记忆内容的用户;Compartment 明确不在内部调用 LLM,由宿主模型决定存什么
  • 无法安全保管口令或其口令遗失后需要恢复途径的用户(Compartment 不生成也不托管任何恢复短语)
  • 在服务器端以网络传输方式(SSE / streamable-http)接入的部署:本服务器为 stdio,不开放端口
所需权限
  • 本地文件读写:创建并读写 SQLite 数据库文件(默认 ~/.local/share/memora/memories.db)及缓存目录
  • 网络访问:调用配置的嵌入端点与 LLM 端点(OpenAI、OpenRouter、Cloudflare Workers AI 等)
  • 云存储凭证:使用 S3/R2 同步时需 AWS_PROFILE、AWS_ENDPOINT_URL 等凭证;使用 D1 时需 CLOUDFLARE_API_TOKEN
  • 本地端口监听:图谱服务器默认监听 127.0.0.1:8765;HTTP 传输默认 127.0.0.1:8000
  • 容器部署需运行 Apple container CLI,并通过 LaunchAgent 启动本地代理进程
  • 读取与写入用户主目录下的 vault 文件(默认为 ~/.compartment/memory.vault)及其同目录的 .config.json 设置文件
  • 访问存放解锁凭证的会话目录(可用 COMPARTMENT_SESSION_DIR 指定),该目录同时容纳共享嵌入进程的 Unix 套接字
  • 在 macOS 上可选使用钥匙串(compartment unlock --keychain 为显式选择加入)
  • 向各 MCP 客户端的配置文件写入或合并 mcpServers 条目(写入前做字节级备份)
  • 在 Claude Code 场景下安装 PostToolUse 钩子,用于捕获代理写入的记忆文件
  • 在 127.0.0.1 上提供只读浏览器 Dashboard(带一次性随机 URL 令牌)
风险与副作用
  • 嵌入端点配置错误时(例如把嵌入指向 OpenRouter),若未设置 MEMORA_EMBEDDING_STRICT=1,Memora 会静默退化为 TF-IDF 关键词匹配,向量质量下降而表面仍显示正常
  • MEMORA_DATABASES 中写错存储名不会报错:读取正常,但写入会落入另一个项目的存储,需用 memory_stats 核对 database 字段
  • 凭证以环境变量注入进程,配置文件若权限过宽可能被本机其他账户读取(文档建议 chmod 600)
  • 记忆内容会被发送到配置的嵌入与 LLM 服务商,涉及敏感数据时需自行评估
  • 容器运行时每次启动都会重新分配 IP,若不经代理直连会产生静默挂起
  • LLM 去重与 absorb 可能合并或取代记忆,虽然保留血缘,但错误判断仍会影响检索结果
  • 文档片段受完整性保护,但整篇文档删除会连带删除全部片段
  • 口令泄漏意味着加密内容可被解密;Compartment 不生成、不托管恢复短语,口令丢失无法恢复
  • 启用 memory_unlock 工具会把口令带入模型上下文,默认因此关闭
  • 2FA 依赖的密钥文件(例如 U 盘)丢失后,即使有口令也无法打开 vault
  • 带 --plaintext 的 export 会写出未加密的 JSONL,需要自行妥善处理该文件
  • 记忆内容可能来自不可信来源;虽然召回时会以“这是数据”提示包裹,并可标记 quarantined,宿主代理仍须把记忆当作数据处理,以降低提示注入风险
  • capture 钩子与各客户端配置写入会修改用户的设置文件,尽管实现会先备份、合并而非覆盖
支持客户端Claude Code, Codex, NeovimClaude Desktop, Claude Code, Hermes Agent, OpenClaw, Cursor, VS Code, Codex, Gemini CLI, Cline, Roo Code, Zed, OpenCode, LM Studio, AnythingLLM, BoltAI, Goose, Kiro
工具能力3114