关于 MMW Managed Memory Workspace
MMW 是面向个人和组织的 MCP 记忆服务,让 AI Agent 在不同客户端和会话中保存、检索事实、决策与约定。它标记冲突、过期和来源信息,帮助审阅记忆;会话同步则需用户明确授权。
主要功能
- 01保存和搜索记忆记录
- 02标记冲突与过期记录
- 03追踪来源及事实版本
- 04按来源哈希检查新鲜度
- 05组织空间与可见性管理
适用场景
- 01在不同客户端的会话间复用项目事实
- 02发现同一事实的冲突版本
- 03检查源文件变更后相关记忆是否过期
- 04管理组织内的记忆访问与交接
MCP 相关
MMW 提供通过 Streamable HTTP 连接的远程 MCP 服务,也提供将 MCP 客户端接入该服务的本地 mmw-agent。服务公开记忆操作工具;mmw-agent 另提供会话同步状态工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.mmwhub.tech/mcpclaude mcp add --transport http msingatullin-mmw https://mcp.mmwhub.tech/mcp{"mcpServers":{"msingatullin-mmw":{"type":"http","url":"https://mcp.mmwhub.tech/mcp"}}}在 Cursor 中打开{"servers":{"msingatullin-mmw":{"type":"http","url":"https://mcp.mmwhub.tech/mcp"}}}在 VS Code 中打开{"mcpServers":{"msingatullin-mmw":{"type":"http","url":"https://mcp.mmwhub.tech/mcp"}}}{"mcpServers":{"msingatullin-mmw":{"serverUrl":"https://mcp.mmwhub.tech/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://mcp.mmwhub.tech/mcp需要授权工具
详细介绍
MMW(Managed Memory Workspace)—— MCP 连接套件
MMW 的连接指南和客户端配置——值得信赖的 AI Agent 记忆服务。
用户文档:https://docs.mmwhub.tech · Русская версия: README.ru.md
MMW 是什么
MMW 是一个用于模型上下文协议(MCP)的记忆服务。你的 Agent(Claude、Codex、Cursor 或任何 MCP 客户端)可以在 MMW 中存储事实、决策和约定,并在后续会话中再次找到它们。记忆不绑定到某个模型或某台计算机。
每位用户都有个人空间。企业可以创建组织,设置单位、角色、可见性规则,以及在人员离职时交接知识。
组件:
- 记忆服务:
https://mcp.mmwhub.tech/mcp——基于 Streamable HTTP 的 MCP,无状态(每个请求独立处理),返回 JSON,并使用 API 密钥进行身份验证。 - **本地 Agent
mmw-agent:**通过 stdio 将你的 MCP 客户端连接到服务,并且只有在征得你同意后,才会上传 Claude Code 和 Codex 的会话历史记录。 - **账户:**https://app.mmwhub.tech——API 密钥、项目、记忆记录、组织和套餐。
MMW 不会:
- 自行读取你的对话:记忆仅包含 Agent 使用
remember保存的内容,以及你明确允许上传的会话。 - **目前尚不支持搜索已上传的会话,也不支持从中自动提取事实。**会话会被存储,但不会出现在搜索结果中。
- 保存机密信息:密钥、令牌和密码会在存储前替换为占位符。
MMW 的独特之处
只有 Agent 能信任记忆,记忆才有用。最危险的故障不是遗忘,而是 Agent 信心十足地给出过时事实。MMW 围绕这一点构建:
- **显示矛盾,而非将其隐藏。**具有相同
fact_key但内容不一致的记录会被标记为conflict。搜索会优先返回最新版本,旧版本则带有superseded_by。在账户中,“Needs a decision”会将每处争议转化为一个直白的问题——“哪一个才对?”——并列展示各个选项;“Help me decide”会请求大模型措辞该问题(仅在点击后触发)。由用户做决定;系统不会悄悄覆盖任何内容。 - **事实护照。**每条记录都会显示其来源、时间、来源哈希、同一事实的所有版本,以及替代它的链接。
- **来源锚定。**当
source_id是文件路径时,mmw-agent会直接对文件进行哈希;如果文件发生变化,来自该文件的记录会被标记为stale。 - **一份记忆,随处可用。**Claude Code、Cursor、Codex、Claude Desktop、claude.ai、ChatGPT、Telegram 机器人,以及(在俄罗斯)Alice,共享同一份记忆。账户会显示已连接的应用,以及每个应用最后一次访问的时间。
快速开始
- 在 https://app.mmwhub.tech 注册并确认邮箱。
- 选择套餐。免费套餐可试用 3 天,无需银行卡。
- 复制你的 API 密钥(以
mmw_开头)。密钥只会显示一次,请将其保存在密码管理器中。 - 连接客户端(见下文),重启客户端,然后向 Agent 提问:“在 MMW 中记住:staging 使用 systemd 单元 app-staging 部署。”在新会话中提问:“在 MMW 中搜索如何部署 staging。”
推荐:本地 Agent mmw-agent(Claude Code、Claude Desktop、Cursor、Codex)
要求:Python 3.11+ 和 uv(uvx 命令)。该 Agent 未发布到 PyPI;uvx 会在首次启动时获取 wheel:
https://app.mmwhub.tech/downloads/mmw-agent/mmw_agent-0.1.6-py3-none-any.whl
Claude Code
claude mcp add mmw \
-e MMW_API_KEY=mmw_your_key \
-e MMW_ENDPOINT=https://mcp.mmwhub.tech \
-- uvx --from https://app.mmwhub.tech/downloads/mmw-agent/mmw_agent-0.1.6-py3-none-any.whl mmw-agent
或者手动将下面的 mcpServers.mmw 配置块添加到 ~/.claude.json。
Claude Desktop 和 Cursor — 使用相同的 JSON 配置块:Claude Desktop 的配置文件为 claude_desktop_config.json(Settings → Developer → Edit config),Cursor 的配置文件为 ~/.cursor/mcp.json。
{
"mcpServers": {
"mmw": {
"command": "uvx",
"args": [
"--from",
"https://app.mmwhub.tech/downloads/mmw-agent/mmw_agent-0.1.6-py3-none-any.whl",
"mmw-agent"
],
"env": {
"MMW_API_KEY": "mmw_your_key",
"MMW_ENDPOINT": "https://mcp.mmwhub.tech"
}
}
}
}
Codex — ~/.codex/config.toml:
[mcp_servers.mmw]
command = "uvx"
args = ["--from", "https://app.mmwhub.tech/downloads/mmw-agent/mmw_agent-0.1.6-py3-none-any.whl", "mmw-agent"]
env = { MMW_API_KEY = "mmw_your_key", MMW_ENDPOINT = "https://mcp.mmwhub.tech" }
重启后,客户端会显示 remember、search、forget、validate_memory、gateway_call 和 mmw_sync_status。
在终端中检查:
MMW_API_KEY=mmw_your_key MMW_ENDPOINT=https://mcp.mmwhub.tech \
uvx --from https://app.mmwhub.tech/downloads/mmw-agent/mmw_agent-0.1.6-py3-none-any.whl mmw-agent status
Agent 命令
| 命令 | 功能 |
|---|---|
mmw-agent | 通过 stdio 作为 MCP 服务运行(客户端通过这种方式启动它)。 |
mmw-agent consent | 允许上传会话历史记录。仅限交互式终端;必须由用户作出回答。 |
mmw-agent revoke | 撤回同意:立即停止上传。 |
mmw-agent status | 查看本地同意状态,以及服务端已有多少个来源。 |
mmw-agent hook-stop | Claude Code Stop hook:如果在上次 remember 后文件发生了更改,则阻止回合结束。 |
mmw-agent support CODE | 使用账户提供的一次性代码开启支持会话:操作人员只能看到你同意发送的诊断信息,并会提出修复方案,由你逐项批准。 |
Agent 环境变量
| 变量 | 用途 |
|---|---|
MMW_API_KEY | 账户中的 API 密钥(必填)。 |
MMW_ENDPOINT | 服务端地址。设置为 https://mcp.mmwhub.tech。 |
MMW_LANG | 消息语言,en 或 ru(默认值取决于服务端地址)。 |
MMW_AGENT_HOME | Agent 状态目录,默认为 ~/.mmw。 |
Agent 会将每次调用转发到服务端,因此客户端可以看到服务端的完整工具列表。如果启动时无法连接服务端,客户端不会报错:Agent 会在本地响应,并在服务端恢复后重新连接。
claude.ai(网页)— OAuth 连接器
- Settings → Connectors → Add custom connector。
- URL:
https://mcp.mmwhub.tech/mcp - 在 MMW 授权页面粘贴 API 密钥并选择 Allow。Claude 会获得自己的 30 天令牌(使用 PKCE 的 OAuth);你的密钥不会共享给 claude.ai。
网页应用不会运行本地 Agent,因此无法在其中同步会话。
其他 MCP 客户端 — 直接连接远程 HTTP
如果你的客户端(例如 VS Code 或其他 MCP 客户端)支持通过 Streamable HTTP 连接远程 MCP 服务,则无需 Agent 即可连接:
{
"mcpServers": {
"mmw": {
"url": "https://mcp.mmwhub.tech/mcp",
"headers": { "Authorization": "Bearer mmw_your_key" }
}
}
}
具体的键名(url、headers)因客户端而异;请查阅客户端的 MCP 文档。只有通过 mmw-agent 才能使用会话同步和 mmw_sync_status。
MCP 工具
| 工具 | 所在位置 | 描述 |
|---|---|---|
remember | 服务端 | 存储一条记忆记录。 |
search | 服务端 | 按查询条件查找记录。 |
forget | 服务端 | 删除一条记录或某个来源的所有记录。 |
validate_memory | 服务端 | 根据来源当前的哈希值检查该来源的记录。 |
gateway_call | 服务端 | 调用连接到该密钥所属项目的集成工具。 |
mmw_sync_status | 仅限 mmw-agent | 只读:查看是否已同意同步会话,以及上一次同步周期的情况。 |
连接到项目的集成(例如 github_readonly)也可能显示为工具,但仅适用于该项目的密钥。
remember
| 参数 | 描述 |
|---|---|
content | 记录文本(必填)。 |
workspace | 工作区,默认为 default。 |
scope | 用于筛选的标签(shared、private 等)。它不会限制访问;在组织中,访问权限由可见性决定。 |
source、source_id、source_hash、source_revision | 记录的来源。这是来源信息,不是证明:新记录始终为 unverified;之后会使用 source_hash 检查时效性。 |
derived_from | 此记录所总结的记录 ID。这些记录中的冲突和过时状态会在摘要中保留。 |
fact_key | 事实键:具有相同键的记录会进行冲突比较。 |
confidence | 0–1,默认为 0.5。 |
X-Idempotency-Key 标头可确保安全重试:使用相同的键和相同的内容会返回同一条记录。
search
| 参数 | 描述 |
|---|---|
query | 查询文本。 |
workspace | 工作区。 |
scope | 标签筛选条件。 |
limit | 1–50,默认为 10。 |
current_source_hash | 最新来源哈希:过时记录会变为 stale。 |
exclude_stale | 隐藏过时记录。 |
返回的记录包含来源、置信度、状态(unverified、stale、conflict)、derived_from 和图链接(graph_relations)。同一 fact_key 的最新记录排在最前;较旧版本会带有 superseded_by。摘要会继承其来源记录的 conflict 或 stale 状态。
forget
memory_id 用于删除一条记录;source_id 用于删除该来源的所有记录。已删除的记录不会出现在搜索结果和图链接中;删除记录会保留供审计。在组织中,你只能删除自己可见的内容。
validate_memory
source_id 和 current_source_hash:显示已检查的该来源记录数量,以及哪些记录已过时、哪些存在冲突。
gateway_call
server、tool、arguments:代表项目调用已连接集成中的工具。集成密钥保留在服务端,不会传给 Agent。可在 MCP Gateway 下的账户设置中启用集成。
会话同步(可选,仅限 mmw-agent)
- **同意:**未经同意,电脑上的任何数据都不会传出。请在终端中运行
mmw-agent consent:Agent 会显示找到的会话数量,并征求许可。模型或脚本无法代为同意。你可以随时运行mmw-agent revoke停止同步。 - **上传内容:**来自 Claude Code 和 Codex 的用户与助手消息、工具调用,以及最多 4,000 个字符的工具结果。
- **不上传内容:**模型推理、系统提示词、Token 计数器、文件快照、文件路径。
- 密钥(API 密钥、Token、密码)会在上传前于你的电脑上替换一次,并在服务端再次替换。
- **可靠性:**服务端会记住每个文件已接收至哪个字节。网络中断、重启或服务端恢复后,Agent 会发送缺失的内容。如果服务端暂时空间不足,Agent 会等待并稍后继续。
- **尚不可用:**搜索已上传的会话,以及从会话中提取事实并存入记忆。目前会话虽已压缩存储,但不会出现在搜索结果中。
各套餐的会话历史容量(按最新会话优先;根据清理后的文本计算):
| 套餐 | 历史容量 | 深度 |
|---|---|---|
| Free | 25 MB | 7 天 |
| Starter | 100 MB | 30 天 |
| Pro | 500 MB | 90 天 |
| Enterprise and organizations | 20 GB | 完整历史 |
组织
- 空间: 一个登录账号、一个个人空间和任意数量的组织,可在账号中切换。组织永远不会成为默认空间。组织无法查看个人空间。
- 结构: 控股公司 / 法律实体 / 分支机构 / 部门 / 单位 / 团队。
- 角色:
| 角色 | 权限 |
|---|---|
| 管理员 | 结构、人员、邀请、所有密钥(永远无法查看密钥内容)、审计日志、套餐。 |
| 负责人 | 其所属单位及其下级单位的记录;为该层级内的人员办理离职。 |
| 成员 | 自己的记录,以及向其所属单位、项目或组织开放的记录。 |
| 承包商 | 仅自己的记录和项目记录;访问期限可受限。 |
| 审计员 | 组织审计日志,不含记录内容。 |
- 记录的可见范围: 仅作者可见(草稿)、单位(及其所有下级单位)、项目、整个组织。服务器会在每条读取路径上强制执行此规则:搜索、验证、删除、图链接、账号和档案管理员。负责人看不到仍在职人员的草稿。
- 邀请: 针对特定邮箱的一次性链接,有效期为 7 天。目前不会发送邮件,由管理员转发链接。
- 成员密钥: 成员自行创建密钥。管理员可以查看密钥列表并撤销任何密钥,但永远无法查看或轮换他人的密钥。
- 离职处理: 管理员或单位负责人选择知识的接收者。该人员的密钥会立即撤销。接收者可以在账号中以及通过自己的 Agent 查看其所有记录,包括草稿,并可将其开放给单位或组织。
- 承包商期限: 期限以天为单位(1–365)。期限结束后,该人员无法读取或写入任何内容,且不计入席位费用。延期操作会记录在日志中。
- 审计日志: 离职处理的开始和完成、读取移交的知识(账号和 MCP)、可见范围变更、访问期限变更。绝不记录内容。
- 暂不提供: SSO/SAML、通过邮件发送邀请、组织自动计费、控股公司下法律实体之间的共享、目录导入。
组织由 MMW 团队启用:请联系 [email protected]。
套餐
| 套餐 | 价格 | 记录数 | 调用次数/分钟 |
|---|---|---|---|
| Free | $0,3 天试用 | 250 | 60 |
| Starter | $5/月 | 每个项目最多 5,000 条 | 120 |
| Pro | $35/月 | 最多 100,000 条 | 120 |
| Enterprise | $117/月(SLA、NDA) | 最多 1,000,000 条 | 300 |
| On-premise | 联系我们 | 按协议约定 | — |
组织: 每个席位每月 $18,或按年计费时每个席位每月 $14;至少 5 个席位。已离职人员和期限已结束的承包商不占用席位。试点期:14 天,最多 10 个席位。
达到上限时,系统会拒绝写入并返回明确错误;读取不受影响。
安全性
- 脱敏: 密钥(API 密钥、令牌、密码)会在存储前替换为占位符,包括记录和会话。看起来试图向 Agent 记忆注入指令的记录会被拒绝。
- 隔离: 账号、项目和工作区彼此隔离;组织内部适用上述可见范围规则。
- 密钥: 仅显示一次;服务器只保存哈希(PBKDF2)和查找索引。撤销会立即生效。
- 日志: MCP 操作日志绝不包含记录文本。
- 传输: 无状态 Streamable HTTP;每个请求都会单独进行身份验证,因此暂停后无需重新连接。
- 备份: 每晚备份并压缩,保留最近 7 份,另有一份存储在服务器之外的副本。Enterprise 和组织套餐会备份内容(记录和会话);所有套餐都会备份系统数据(账号、付款、密钥、项目)。
Connect Kit(connect.sh、connect.ps1)
这些脚本会将直接远程连接(url + Authorization 标头)写入客户端配置,并可通过 --verify 验证连接。它们不会安装 mmw-agent,也不会启用会话同步。默认端点:https://mcp.mmwhub.tech/mcp。
# macOS / Linux — preview first
MMW_CREDENTIAL='mmw_your_key' ./connect.sh --client cursor --dry-run
MMW_CREDENTIAL='mmw_your_key' ./connect.sh --client cursor --verify
# Windows (PowerShell)
$env:MMW_CREDENTIAL='mmw_your_key'
.\connect.ps1 -Client cursor -Verify
警告 — 运行 connect.sh 前请阅读:
- 如果不指定
--client,脚本会配置它在本机检测到的所有客户端。 --client codex会完全覆盖~/.codex/config.toml,只保留一个[mcp_servers.mmw]块;该文件中的其他 Codex 设置都会丢失。请先备份文件,或手动添加 Quickstart 中的 Codex 配置块。--client claude还会向~/.claude/CLAUDE.md追加一个“MMW Omnipresent Memory”指令块(如果该文件存在且尚未包含该内容);如果找到了mmw_proxy.py,还会在 Claude Code CLI 中将其注册为 stdio 服务。- 密钥存储在
~/.config/mmw/credential(模式 600)中,并以明文写入客户端配置文件。 --uninstall会删除生成的客户端配置文件(而不只是其中的mmw条目)和已存储的密钥。
connect.ps1 会从头开始为所选客户端写入配置文件;对于 Codex,它只会打印要添加的配置块。
旧版:mmw_proxy.py
mmw_proxy.py 是较早版本的本地 stdio 代理,带有本地 SQLite 暂存区。它是旧版且不再维护:仅提供 remember、search、forget 和 spool_status,不支持 validate_memory、gateway_call 或会话同步。请改用 mmw-agent。
链接
- 网站:https://mmwhub.tech
- 账户和 API 密钥:https://app.mmwhub.tech
- 用户文档:https://docs.mmwhub.tech(俄语:https://docs.mmwhub.ru)
- MCP 端点:https://mcp.mmwhub.tech/mcp
- Smithery:https://smithery.ai/servers/mmsingatullin/mmw
- 支持:[email protected]
许可证
MIT,详见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。