Skip to main content
Glama

Apocrypha

Apocrypha 是 Jensen 的单用户、仅追加的远程 MCP 记忆,用于存储助手判断不应放入其常规内置记忆中的有用个人上下文。Claude 和 ChatGPT 共享同一个标准 Streamable HTTP 端点 /mcp。它为 Claude 等客户端支持基于标准的 OAuth 2.1,同时为可以直接设置授权头的客户端保留独立的静态 bearer 令牌。

范围:仅限例外记忆

Apocrypha 遵循 OptMem 的通用记忆和压缩语义,但有一个专门化:它不是第二个通用记忆存储。一个助手只应在下述情况下写到这里:个人上下文值得记住,但助手判断该上下文不应保存到自己的个人记忆库中——例如住房、收入、资金储备、社会经济状况,或相关工作流程上下文。有资格进入普通内置记忆的事实属于其所在的系统,不应同时复制到 Apocrypha。这种隔离避免了记忆跨系统时的重复或冲突。

LOG.txt 是权威记录。它使用 OptMem 的 320 字节定长记录(每条记录以换行符结尾存一条记忆),而 TREE/<size> 使用其 288 字节定长二进制合并记录。更正体现为之后的日志条目;原始记忆永不编辑或删除。Google Drive 只是一个手机可读的镜像。

Related MCP server: JauMemory MCP Server

工具

  • apocrypha_wake: 强制性的常驻上下文读取,按客户端响应限制分页;只要有压缩任务未完成就拒绝请求。

  • apocrypha_note: 只记录其他情况下不被允许记入的持久上下文,折叠空白字符,追加一条带日期的记忆,镜像到 Drive,并返回下一个新可执行的压缩任务。

  • apocrypha_sleep: 取得或处理下一个合并树压缩任务。

  • apocrypha_recall: 对完整原始日志进行不区分大小写的正则表达式搜索。

  • apocrypha_forget: 截断某个错误摘要及其上方的所有摘要,但不会触碰日志。

Wake 在日志仍然适配其 96 行渲染预算时会刻意返回每一条原始记录。一旦日志超出该预算,它就用已存储的树摘要铺满当前历史,越向过去越概括,越靠近现在越精细。一次 note 只返回一个最新可执行的压缩;每次 sleep 响应返回这个级联中的下一项。在 wake 之前把这个级联全部排空是有意为之,因为 wake 永远不会从部分构建的树渲染内容。

压缩遵循 OptMem 的类别中立规则:保留具有持续影响的内容,丢弃不具备的内容,不虚构任何东西。原始日志免除摘要的任何省略仍然保持权威性。

本地验证

npm install
npm test

这里包括一次 2,000 条记忆的 OptMem 压力运行、定长记录和树的恒长不变量、分页、向现在方向逐步细致、遗忘/重建字节的一致性、重启持久性、MCP 模式以及 Drive batchUpdate 请求。

开发与部署工作流

C:\Users\Jensen\code\apochrypha 是开发检出的工作副本。GitHub 的公共 main 分支是发布源,Alpha 部署的是已发布分支,而不是尚未发布的本地文件。

  1. 在本地工作副本中修改并运行 npm test

  2. 提交变更并将 main 推送到 GitHub。

  3. 从 PowerShell 运行 ./scripts/deploy-alpha.ps1

部署脚本会拒绝对一个脏工作树、非 main 分支或与 origin/main 不一致的本地提交进行部署。在 Alpha 上,它执行仅允许冲突并执行中继号的 executor,安装锁定的生产依赖,重启服务,并验证本地健康端点。运行时状态保持独立:凭据放在 /etc/apocrypha.env,仅追加日志、摘要树和 OAuth 状态放在 /var/lib/apocrypha;它们都不属于 Git 管理。

Google 授权(一次性,在笔记本上)

  1. 在 Google Cloud 中,启用 Google Docs API,并创建一个 Desktop OAuth 客户端。

  2. 配置 OAuth consent screen,并将其发布为 Production。如果保留在 Testing 下,刷新令牌会在七天后过期。

  3. 如果客户端配置要求提供 authorized redirect URI,则添加 http://127.0.0.1:53682/oauth2callback

  4. 运行:

    GOOGLE_CLIENT_ID='...' GOOGLE_CLIENT_SECRET='...' npm run oauth:google

该助手请求 access_type=offlineprompt=consent,并且只用 https://www.googleapis.com/auth/documents 范围。将打印出的刷新令牌放入 /etc/apocrypha.env;不要提交它。

镜像的目标是 GOOGLE_DOC_ID,而不是文档标题。重命名 Google 文档不会中断同步,也不应该被替换为基于标题的查找。

在 Alpha 上部署

将该文件复制作到 /srv/apocrypha,然后以 root 身份运行:

cd /srv/apocrypha
npm ci --omit=dev
useradd --system --home /var/lib/apocrypha --shell /usr/sbin/nologin apocrypha || true
chown -R apocrypha:apocrypha /var/lib/apocrypha
install -o root -g root -m 600 deploy/apocrypha.env.example /etc/apocrypha.env
install -o root -g root -m 644 deploy/apocrypha.service /etc/systemd/system/apocrypha.service
systemctl daemon-reload
systemctl enable --now apocrypha

在启动服务之前,编辑 /etc/apocrypha.env,填入真实、独立的 MCP_BEARER_TOKENOAUTH_ACCESS_KEY。进程始终只绑定到 127.0.0.1;nginx 是唯一的公开监听者。

连接 Claude

在 Claude 的自定义连接器对话框中,输入 https://mcp.jensenabler.com/mcp,并将可选的 OAuth Client ID 和 Client Secret 保留空白。Claude 会发现 Apocrypha 的 OAuth 元数据并动态注册自身。当 Apocrypha 授权页面打开时,粘贴私有的 OAUTH_ACCESS_KEY,并批准访问。不要在这里使用 Google 的 OAuth 客户端凭据。

该批准密钥仅在授权页使用。Claude 会收到一个带作用域、过期的访问令牌,以及一个轮换的刷新令牌;它永远不会收到批准密钥或静态 bearer 令牌。

连接 bearer 令牌客户端

对于支持自定义请求头的 MCP 客户端,请使用 https://mcp.jensenabler.com/mcp 上的 Streamable HTTP,并携带头部 Authorization: Bearer <MCP_BEARER_TOKEN>。静态令牌与 Claude 的 OAuth 凭据相互独立。

验收调用

curl https://mcp.jensenabler.com/healthz
curl -i -X POST https://mcp.jensenabler.com/mcp

若要通过协议层进行检查,可使用 MCP Inspector 配合 Streamable HTTP,URL 为 https://mcp.jensenabler.com/mcp,并选择其 OAuth 流程或自定义请求头 Authorization: Bearer <MCP_BEARER_TOKEN>

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Cross-session, cross-device memory for your agent: remember and recall notes. No key to start.

  • Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.

  • Universal memory for AI agents and tools. Save, organize and search context anywhere.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JensenAbler/apocrypha'

If you have feedback or need assistance with the MCP directory API, please join our Discord server