apocrypha
Apocrypha
Apocrypha は、Jensen のシングルユーザー専用・追記専用のリモート MCP メモリであり、アシスタントが通常の組み込みメモリに保存すべきではないと判断した有用な個人コンテキストを保存するためのものです。Claude と ChatGPT は、/mcp にある同じ標準 Streamable HTTP エンドポイントを共有します。Claude などのクライアント向けに標準ベースの OAuth 2.1 をサポートしつつ、認証ヘッダーを直接設定できるクライアント向けに別の静的ベアラートークンも保持します。
スコープ: 例外的なメモリのみ
Apocrypha は OptMem の一般的なメモリおよび圧縮セマンティクスに従いますが、1 つの特殊化があります。それは、2 つ目の汎用メモリストアではないということです。アシスタントは、個人コンテキストが記憶に値するが、そのコンテキストを自身の個人メモリバンクに保存すべきではないと判断した場合にのみ、ここに書き込むべきです。たとえば、住居、収入、財務的余裕、社会経済的状況、または関連するワークパイプラインのコンテキストなどです。通常の組み込みメモリに保存できる事実はそこに属し、Apocrypha にコピーすべきではありません。この分離により、システム間での冗長または競合するメモリを回避します。
LOG.txt が正本です。OptMem の 320 バイト固定幅レコード(レコードごとに改行で終了する 1 メモリ)を使用し、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 のカテゴリ中立のルールに従います。永続的な効果を持つものを保持し、持たないものを破棄し、何も invent しません。サマリーが何を省略しても、生ログが正本のままです。
ローカル検証
npm install
npm testテストには、2,000 メモリの OptMem ストレス実行、固定レコードおよびツリーの不変条件、ページング、現在に向かう詳細度の増加、forget/rebuild のバイト同一性、再起動後の永続性、MCP スキーマ、および Drive の batchUpdate リクエストが含まれます。
開発およびデプロイワークフロー
C:\Users\Jensen\code\apochrypha は開発チェックアウトです。GitHub の公開 main ブランチがリリースソースであり、Alpha は未公開のローカルファイルではなく、その公開ブランチをデプロイします。
ローカルチェックアウトで変更を加え、
npm testを実行します。変更をコミットし、
mainを GitHub にプッシュします。PowerShell から
./scripts/deploy-alpha.ps1を実行します。
デプロイスクリプトは、ダーティツリー、main 以外のブランチ、または origin/main と異なるローカルコミットを拒否します。Alpha では fast-forward のみの更新を実行し、ロックされた本番依存関係をインストールし、サービスを再起動し、ローカルのヘルスエンドポイントを検証します。ランタイム状態は別のままです。資格情報は /etc/apocrypha.env にあり、追記専用ログ、サマリーツリー、OAuth 状態は /var/lib/apocrypha にあります。いずれも Git の一部ではありません。
Google 認可(ラップトップで 1 回だけ)
Google Cloud で Google Docs API を有効にし、デスクトップ OAuth クライアントを作成します。
OAuth 同意画面を構成し、本番環境に公開します。テストのままにすると、リフレッシュトークンは 7 日後に期限切れになります。
クライアント構成で許可されたリダイレクト URI が求められる場合は、
http://127.0.0.1:53682/oauth2callbackを追加します。実行します:
GOOGLE_CLIENT_ID='...' GOOGLE_CLIENT_SECRET='...' npm run oauth:google
ヘルパーは access_type=offline、prompt=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_TOKEN と OAUTH_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 はスコープ付きの期限付きアクセストークンとローテーションするリフレッシュトークンを受け取ります。承認キーや静的ベアラートークンを受け取ることはありません。
ベアラートークンクライアントを接続
カスタムヘッダーをサポートする 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プロトコルレベルのチェックには、Streamable HTTP で MCP Inspector を使用し、URL https://mcp.jensenabler.com/mcp を指定し、OAuth フローまたはリクエストヘッダー Authorization: Bearer <MCP_BEARER_TOKEN> のいずれかを使用します。
This server cannot be deployed
Maintenance
Related MCP Connectors
Cross-session, cross-device memory for your agent: remember and recall notes. No key to start.
- memoryOAuthcom.leapmemory
Long-term memory for AI assistants. Isolated per-user storage, recall across conversations.
Persistent memory for AI assistants: store, search, and connect knowledge across conversations.
Gives your AI assistant persistent memory and intelligence about your work patterns.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to save and recall information from files or free-form notes using natural language, acting as a long-term memory system.93 PyPIMIT

JauMemory MCP Serverofficial
AlicenseAqualityCmaintenanceProvides persistent memory capabilities for AI assistants, enabling storage, recall, and analysis of information across conversations with intelligent memory management.2533 npmMIT- AlicenseAqualityDmaintenanceGives AI assistants a persistent memory across conversations, allowing them to remember user preferences, notes, and facts between chats.64 npmMIT
- AlicenseAqualityDmaintenanceEnables AI assistants to store, search, and manage memories, chat history, and uploaded files via the MemoryPlugin API.1317 npm1MIT