n1mem-mcp · N1Mem 记忆 MCP Server
powered by T1Mem engine · BYOK(自带 Key)· 零依赖(仅标准库)
让 Claude / Cursor / OpenClaw 之类支持 MCP 的客户端,直接获得 N1Mem 的长期记忆能力。
九个工具
| 工具 | 作用 |
|---|---|
memory_write |
写入一段记忆(持久化 + 建向量,写入即可召回) |
memory_recall |
按自然语言问题召回;answer 已基于命中记忆接地,retrieved 给出命中的明文记忆 |
memory_import |
把本机已有的 Agent 记忆批量迁进来(身份层 + 技能层),可 dry_run 先预览 |
memory_skill_lookup |
任务开始前查「有没有现成经验可复用」,返回匹配的 skill 与要点 |
memory_forget |
遗忘指定记忆(按 id,RLS 隔离,只能删自己的) |
memory_health |
查看服务健康与 provider 可用性 |
memory_skill_search |
在公共库里搜别人分享的经验说明(跨租户可见;只有说明文本) |
memory_skill_publish |
把自己的一条经验作为公开名片分享出去(只发说明文本,不带脚本) |
memory_skill_unpublish |
下架自己发布过的名片(下架后同一内容不可重发,防重传) |
典型用法是让模型自己用这三步:
memory_skill_lookup(先查经验)→ memory_recall(再取上下文)→ memory_write(把结论存回去)。
本 Server 是薄层透传:不含任何记忆逻辑,只把工具调用转发到 N1Mem API
(https://api.n1mem.com)。因此零依赖、可塞进任意环境。
安装
pip install n1mem-mcp
用到 memory_import 时还需本机有导入器:
pip install -U "n1mem>=0.2.0"
(不装也能用其它 8 个工具 —— memory_import 会在调用时给出这条安装提示,
而不是甩一个 ImportError 堆栈。)
实例身份(设备授权)
MCP Server 支持把请求绑定到具体设备:设置环境变量 N1MEM_INSTANCE=<local_id>:<secret>
即可让通过该 Server 的记忆写入带设备级标识,配合服务端「实例强制」模式可实现设备级隔离与撤销。
默认不设置,行为不变(0.3.1 新增)。
获取 Key
访问 https://api.n1mem.com/register 自助注册,邮箱即拿到形如 tk_xxx 的 Key。
配置(Cursor / Claude / OpenClaw)
把下面片段加进你的 MCP 配置(~/.cursor/mcp.json、Claude 的 claude_desktop_config.json、
或 OpenClaw 的 MCP 配置):
{
"mcpServers": {
"n1mem": {
"command": "n1mem-mcp",
"env": { "N1MEM_API_KEY": "tk_xxx" }
}
}
}
或用模块方式启动(无需 pip install 也可,只要能 import):
{
"mcpServers": {
"n1mem": {
"command": "python",
"args": ["-m", "n1mem_mcp"],
"env": { "N1MEM_API_KEY": "tk_xxx" }
}
}
}
环境变量
| 变量 | 说明 | 默认 |
|---|---|---|
N1MEM_API_KEY |
你的 Key(必填) | 空 |
N1MEM_SUBJECT |
主体名(谁在调用,如 workbuddy-pc)—— 服务端据此反查成员表;不设 ⇒ 不发该头 |
空 |
N1MEM_BASE_URL |
API 地址 | https://api.n1mem.com |
N1MEM_MCP_TIMEOUT |
单条调用超时(秒) | 90 |
主体声明 N1MEM_SUBJECT(0.3.0 新增)
Key 回答「哪个组织」,N1MEM_SUBJECT 回答「谁」。 同一台机器上跑多个 Agent 时,
它们共用一个主体 —— 别把它和 N1MEM_AGENT_ID 混起来:后者是「哪个 Agent」,
只用于本地埋点(跨 Agent 命中率统计),不是身份。
在你的 MCP 配置里加一个键即可:
"env": { "N1MEM_API_KEY": "tk_xxx", "N1MEM_SUBJECT": "workbuddy-pc" }
- 须与组织里已登记的主体名逐字一致;拼错不会报错,服务端只会认为「未登记」。
- 不设 ⇒ 不发该头,行为与 0.3.0 之前完全一致(可随时去掉该键回退)。
- 🔴 不要把它设成
N1MEM_AGENT_ID的值(那是 Agent 类型名,如workbuddy)—— 登记名与声明名对不上时,接入会一直停在「未登记」,而且没有任何报错。
memory_import 用法
memory_import(dry_run=true) # 先看会导入什么(条数 / 字节 / 分层),不写任何数据
memory_import() # 确认后真导(默认 identity + skill 两层)
memory_import(path="…", layers=["identity","skill","note"])
导入是在本机读你磁盘上的记忆资产,服务端只接收结构化条目。
想撤销:用服务端按批次 rollback(返回值里带 source_id),或对单条用 memory_forget。
已知限制(诚实告知)
- 暂无
update工具(服务端更新能力未就绪,故不暴露,避免客户端以为支持)。 删除是支持的(memory_forget)—— 0.1.x 的说明曾写"暂无 delete",与实现不符,0.2.0 已更正。 memory_health如实反映服务健康:未配置的上游不会拉低整体状态;只有当"已配置的上游" 或存储真的不可用时才返回degraded(0.2.1 修正:此前会把未配置的 provider 误算成 down, 导致核心链路全绿却报 degraded)。memory_import目前支持 WorkBuddy(~/.workbuddy)与关键文档目录两种来源。- Agent 间沟通通道不暴露为工具(2026-10 起平台内提供,工具清单保持 9 个不变):
线程 / 消息 / 接力装配 / 要点沉淀属平台内能力,需直接对接 C-2 API
(
/v1/comm/*、/v1/console/comm/*)。本 Server 的对外工具契约不受影响, 评估纳入须另行走契约变更。
与 n1mem 的区别
| 包 | 形态 | 用途 |
|---|---|---|
n1mem |
Python SDK(函数调用) | 代码里直接 m.ingest() / m.recall() / m.ingest_batch() |
n1mem-mcp |
MCP Server(stdio) | 让 MCP 客户端(Claude / Cursor / OpenClaw)以工具方式调用记忆 |
两者都遵守 BYOK:Key 由你提供,SDK 与 Server 都不存储、不上传你的凭据。
Metadata
Release files for n1mem-mcp 0.3.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| n1mem_mcp-0.3.5-py3-none-any.whl | Python 3 | none | any | Details |
Release files / n1mem_mcp-0.3.5-py3-none-any.whl
| Download URL | n1mem_mcp-0.3.5-py3-none-any.whl |
|---|---|
| Size | 25.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4a29831eebaaa10c57dc88d42273cdf3a59359e5493375c0f442e640280056c2
|
|
BLAKE2b-256 checksum How to use checksums |
a8b07ce0972374dfc4607b8d4743d0678def3f67d1a5a6e84e6c26419143d362
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for n1mem-mcp 0.3.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.