USRCP — User Context Protocol について
USRCPは、MCP対応AIツール間で構造化されたユーザーコンテキストを共有する、ローカル暗号化SQLite台帳です。AIインターフェースを切り替える人向けで、連携機能が作業履歴を取り込み、接続クライアントが最近の状態や引き継ぎ用の要約を取得できます。
主な機能
- 01構造化コンテキストをローカル暗号化台帳に保存
- 02最近の活動と用途別の引き継ぎ要約を取得
- 03ソース別アダプターで活動を取り込み
- 04対応エディターとターミナルエージェントを登録
- 05usrcp-streamによる任意のセマンティック検索
活用シーン
- 01AIツール間でプロジェクトの文脈を引き継ぐ
- 02新しいセッションに最近の決定事項と次の手順を渡す
- 03GitHub、Linear、Obsidianで作成した活動を記録
- 04同じマシンの複数ユーザーに個別の台帳を用意
MCP 対応
ローカルMCPサーバーは、接続クライアントに`usrcp_get_state`で最近の活動を読み取らせ、`usrcp_handoff`で用途別の要約を取得させます。対応MCPクライアントの登録と起動手順も提供しますが、自動取得はクライアントの動作に依存します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
13掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| domain | string | はい | |
| max_chars | integer | いいえ |
詳細
USRCP — User Context Protocol
会話を最初からやり直さずに、AI ツールを切り替えられます。
火曜日に Claude Desktop に自分の技術スタックを伝えました。水曜日には Cursor がそれを知りません。木曜日には Codex がまた尋ねてきます。使う AI ツールごとに独自の記憶があるか、記憶がまったくありません。
USRCP は、MCP 対応ツールなら読み書きできる、ローカルの暗号化された SQLite 台帳です。対応ツールを同じローカルプロフィールに接続すれば、最近の作業、決定事項、好みを共有できます。USRCP は初期ベータ版です。自動記録と想起は、インテグレーションによって異なります。
Claude Desktop、Cursor、Continue、Cline、およびターミナルエージェント(Claude Code、Codex CLI、Copilot CLI、Aider、OpenCode、Antigravity)に登録できます。GitHub、Linear、Obsidian、Claude Code セッション、Google Calendar から構造化されたアクティビティを記録します。さらに、実験的な会話記録アダプターセットも利用できます。
brew install frank-bot07/usrcp/usrcp
usrcp init
→ 動作を確認する: エディター間デモをご覧ください。または、コマンドを 1 つ実行して、お使いのマシンでプロトコルの経路を確認できます — node scripts/cross-client-proof.mjs(2 つの合成 MCP クライアントを使用し、データベースの生データセルをスキャンしてテストコンテンツのマーカーを探します。実際の AI ホストはテストしません)。
→ Apache 2.0 · 600 件以上のテスト · 脅威モデルは docs/SECURITY.md を参照してください
コア機能とオプション機能: 構造化コアは完全一致キーワード検索を使用します。オプションの
usrcp-streamを追加すると、保存先とプライバシーの境界が異なるセマンティック想起を利用できます。以下の機能マトリックスをご覧ください。
プロトコルスタック
┌─────────────────────────────────┐
│ Agent Layer │ ← ACP (Agent-to-Agent)
├─────────────────────────────────┤
│ Model Layer │ ← MCP (Model Context Protocol)
├─────────────────────────────────┤
│ >>> USRCP <<< │ ← Structured User State (THIS PROTOCOL)
├─────────────────────────────────┤
│ User / Client │
└─────────────────────────────────┘
1 人の人間、多数の AI インターフェース
USRCP は人間であるユーザーのコンテキストレイヤーです。起動時のワークフローでは、1 つの共有台帳からコンパクトなブリーフをライブ取得します。次に使うアシスタントには、関連する進行中の作業、決定事項、制約、次のステップを把握していてほしいものです。
接続済みのツールで作業について話したら、別のツールに 「今、何に取り組んでいたっけ?」 と尋ねてください。プロジェクトを選択したり、要約をコピーしたり、背景を繰り返し説明したりする必要はありません。
接続済みの MCP クライアントは usrcp_get_state を使ってプロフィール全体の最近のアクティビティを読み取り、usrcp_handoff を使って要点を絞ったライブブリーフをリクエストできます。ローカル MCP サーバーは起動時の指示を提供しますが、クライアント側でその指示に従う必要があります。実際の動作は2 クライアント受け入れテストで確認してください。共有台帳があるだけでは、自動取得が行われる証明にはなりません。
機能とプライバシーの境界
| コンポーネント | 目的 | 境界 |
|---|---|---|
| 構造化コア | ID、好み、プロジェクト、事実、タイムライン | 保存時にコンテンツを暗号化します。許可されたエージェントは復号されたコンテキストを受け取ります |
| ライブコンテキスト取得 | 接続済みエージェント向けの最近の作業とコンパクトなコンテキスト | ローカル台帳からオンデマンドで生成します。ファイル転送は不要です |
| オプションのストリーム | 記録とセマンティック想起 | ローカルの埋め込みベクトルはディスク上で平文です。外部の埋め込みプロバイダーを任意で使用する場合、同意を得た後にコンテンツが送信されます |
| オプションのデバイスリレー | タイムライン/ストリームイベントの同期 | コンテンツは暗号文で同期されますが、メタデータは表示されます。ローカルクライアントは構造化プロフィール全体を同期しません |
初期ベータ版は、Claude Code、Codex、Cursor を切り替えて使う人を主な対象としています。ドメイン制限は任意のアクセス制御であり、通常の会話で必須の手順ではありません。より広い目標は、ツールをまたいで人間であるユーザーの継続性を保つことです。確認、修正、出所、有効期限、削除に関する選択肢については、コンテキストの所有権をご覧ください。
代替製品
OpenMemory も、ツールをまたいだコーディングコンテキストと自動キャプチャを対象としています。Zep は時間的なナレッジグラフを提供します。これらの製品は、USRCP のワークフローの一部と重複しています。USRCP が提案する優位性は、ローカルの暗号化台帳に支えられた、規模が小さく確認可能な人間のコンテキスト概要、明示的な共有、そして中核的なワークフローでクラウドアカウントが不要な点です。現在のエディションを比較し、既存のプロジェクトノートを使って試してください。他の製品は単なるベクトルストレージである、または特定のプロバイダーが常に必要であると決めつけないでください。
クイックスタート
インストール
npm(推奨) — usrcp CLI +暗号化台帳:
npm install -g usrcp # the `usrcp` command + local ledger
# …or run without installing:
npx usrcp init
ネイティブビルド、コンパイラー、postinstall は不要です。usrcp は Node の組み込み SQLite(node:sqlite)を使用するため、あらゆる npm で npm install を実行するだけで動作します(ネイティブビルドスクリプトをブロックする allowScripts がデフォルトで有効な npm 12 以降を含みます)。Node ≥ 22.13 が必要です(Node 24 以降を推奨)。
Homebrew(macOS / Linux) — コア CLI の代替インストール方法:
brew install frank-bot07/usrcp/usrcp
CLI にはインラインアダプター(terminal、mcp-agent、openclaw)が付属しています。キャプチャアダプターは個別のパッケージとしてインストールし、セットアップウィザードでそれぞれを設定します。
# structured-state adapters:
npm install -g usrcp-github # or usrcp-linear, usrcp-obsidian, usrcp-claude-code, usrcp-google-calendar
usrcp setup --adapter=github
# experimental conversation-capture set:
npm install -g usrcp-slack # or usrcp-discord, usrcp-telegram, usrcp-imessage, usrcp-gmail
usrcp setup --adapter=slack
全アダプターについては、アダプターの表をご覧ください(Chrome 拡張機能と VS Code ビューアーは別途配布されます。各パッケージの README をご覧ください)。
ソースから — コントリビュートする場合、または未リリースの変更を実行する場合:
git clone https://github.com/frank-bot07/usrcp.git
# Build the protocol core first — usrcp-local's build compiles it.
cd usrcp/packages/usrcp-core && npm install && npm run build
cd ../usrcp-local && npm install && npm run build && npm link
初回実行
# Interactive init — prompts for passphrase by default
usrcp init
# Non-interactive:
usrcp init --passphrase "your secret phrase" # passphrase mode
usrcp init --dev # dev mode (key on disk)
# Start the server
usrcp serve
パスフレーズモードでは、init によってパスフレーズをOS のキーチェーン(macOS Keychain / Linux Secret Service)に保存するかどうかを選択できます。対話なしで指定するには、--keychain / --no-keychain を渡してください。キーチェーンにエントリーがある場合、MCP クライアントは設定ファイルにプレーンテキストのパスフレーズを記載せずに、サーバーを自動起動できます。エントリーはいつでも管理できます。
usrcp keychain store # add/replace (verifies the passphrase unlocks this ledger first)
usrcp keychain status # show backend + whether an entry exists
usrcp keychain clear # remove it
# Prefer no keychain? The env var path still works:
USRCP_PASSPHRASE="your secret phrase" usrcp serve
init は暗号化された SQLite 台帳を含む ~/.usrcp/users/<slug>/ を作成し、Claude Desktop の設定に MCP サーバーのエントリーを書き込みます。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
デフォルトは単一ユーザーであり、この README の以降にある共有マシンに関する説明はすべて、この前提に基づいています。同じ OS アカウントを 2 人で使う場合(または複数の ID を並行して実行する場合)は、以下の1 台のマシンで複数のユーザーを使うをご覧ください。各ユーザーには、--user=<name> のスラッグを使って、独立した台帳とパスフレーズが割り当てられます。
キャプチャアダプターの追加
アダプターはソース(GitHub 組織、Obsidian Vault、Linear ワークスペースなど)を監視し、ユーザー自身が作成したアクティビティを、ローカル MCP サーバーが読み取る台帳に追加します。アダプターのパッケージをインストールしてから、セットアップウィザードを実行して設定します。
npm install -g usrcp-linear # install the adapter you want
usrcp setup --adapter=linear # configure it (validates credentials, picks scope)
# or, to browse what's installed:
usrcp setup # interactive picker
全アダプターについては、以下のアダプターの表をご覧ください。
1 台のマシンで複数のユーザーを使う
usrcp init --user=frank
usrcp init --user=jess
usrcp serve --user=frank # or rely on --user in the registered MCP entry
usrcp users # list available slugs
各ユーザーには、独立した台帳、パスフレーズ、MCP サーバーのエントリーが割り当てられます。
パスフレーズモードとターミナルエージェント
USRCP をパスフレーズモードで初期化した場合(デフォルトで usrcp init を実行)、MCP サーバーは台帳を復号するためにパスフレーズを必要とします。ターミナルアダプターの register() は、各エージェントの設定に command + args のみを書き込み、パスフレーズを埋め込むことはありません。
推奨:OS キーチェーン。 次のコマンドを実行すれば、シェルから起動するエージェントと GUI から起動するエージェントの両方に適用され、ディスク上に平文で保存されるものはありません。
usrcp keychain store
サーバーは USRCP_PASSPHRASE、次に --passphrase、その次にキーチェーンを確認するため、既存の設定は変更なしで引き続き動作します。(Windows:キーチェーンのサポートはまだ組み込まれていません。以下の環境変数を使う方法を使用してください。)
キーチェーンを使わない場合の環境変数を使う方法:
-
シェルから起動するエージェント(
claude-code、codex、copilot-cli、aider、opencode)—~/.zshrc/~/.bashrcに追加し、シェルを再起動してください。export USRCP_PASSPHRASE="your secret phrase" -
GUI/IDE から起動するエージェント(
cursor、cline、continue、antigravity)は、シェル環境を継承しません。エージェントの設定ファイルにあるusrcpサーバーエントリーの下にenvブロックを追加するか(Cursor/Cline/Continue は JSON、Codex は TOML)、macOS でシステム全体に適用される GUI 環境変数をlaunchctl setenv USRCP_PASSPHRASE "..."で設定してください(再起動するまで有効です。永続化するには~/Library/LaunchAgents/の plist を使用してください)。
パスフレーズを埋め込んだ設定ファイルは、すべて秘密情報として扱ってください。パスフレーズはディスク上に平文で保存されるため、それ以外は暗号化されている設定の中で最も弱い部分になります。これを避けるために用意されているのが usrcp keychain store です。
セットアップウィザードは登録後に同じ案内を表示するため、usrcp setup または usrcp adapter add terminal --targets=<list> を再実行して確認することもできます。
キャプチャーアダプター
アダプターは独立したプロセスです。ソースからデータを読み取り、MCP サーバーと同じ保存時暗号化パイプラインを通じて、ローカルの台帳にイベントを追加します。各アダプターが独自に認証、冪等性、カーソルの永続化を処理します。
構造化状態アダプター
これらは主要なアダプターです。課題、PR、ノート、カレンダーイベント、コーディングセッションのコンテキストなど、実際に構造化された開発/作業の状態をキャプチャーします。こうしたデータは、USRCP のスキーマと完全一致キーワード検索に適しています。
| アダプター | キャプチャーする内容 | モード | 要件 |
|---|---|---|---|
usrcp-github | 自分が作成/マージ/クローズした PR、自分が作成した課題、自分が投稿したコメントとレビュー。任意で組織の許可リストを指定できます | キャプチャー専用(v0) | GitHub 個人アクセストークン(repo + read:user スコープ) |
usrcp-linear | Linear で自分が作成した課題とコメント | キャプチャー専用(v0) | Linear 個人 API キー |
usrcp-obsidian | Obsidian 保管庫で作成または編集したノート | キャプチャー専用(v0) | ローカルの保管庫ディレクトリ |
usrcp-claude-code | Claude Code CLI セッションでのユーザー/アシスタントの発言。~/.claude/projects/<cwd>/*.jsonl を追跡します | キャプチャー専用(ストリーム) | Claude Code CLI のインストール。~/.usrcp/claude-code-config.json の allowlisted_projects |
usrcp-google-calendar | すでに終了した、メインカレンダーの時間指定イベント | キャプチャー専用(v0) | Google Cloud OAuth クライアント + Calendar API の有効化 |
これらに加えて、brew CLI に同梱されているインラインアダプター(terminal、mcp-agent、openclaw)は、同じ構造化状態をターミナルエージェントやエージェントハーネスに接続します。詳しくはエディターと CLI の統合およびエージェントハーネスの統合を参照してください。VS Code ビューアーでは、作成された台帳を読み取り専用で閲覧できます。
会話キャプチャアダプター(実験的)
これらのアダプターは、許可リストに登録されたアクティビティをローカル台帳に記録します。オプションのストリームレイヤーにはセマンティック検索が含まれており、コアとはストレージ境界が異なります。有効にする前に、セキュリティ境界を確認してください。キャプチャされたからといって、別のアシスタントがコンテキストを取得したことや、正しく理解したことの証明にはなりません。最初の製品テストでは、簡潔なチェックポイントを使った、インターフェースをまたぐリアルタイムの継続性を検証します。
| アダプター | キャプチャする内容 | モード | 要件 |
|---|---|---|---|
usrcp-imessage | Apple iMessageであなたが送信したメッセージ | キャプチャ + リーダー | macOSのみ。 Messages.appへのフルディスクアクセス;brew install steipete/tap/imsg |
usrcp-slack | Slackであなたが送信したメッセージ;チャットからの@usrcpクエリ | キャプチャ + リーダー + ボット | 有料のSlackプラン(Pro/Business+/Enterprise)— 無料プランではボットAPIが制限されます;@usrcpの返信にはAnthropic APIキーが必要です |
usrcp-discord | Discordであなたが送信したメッセージ;チャットからの@usrcpクエリ | キャプチャ + リーダー + ボット | 自分が管理するDiscordサーバー;@usrcpの返信にはAnthropic APIキーが必要です |
usrcp-telegram | Telegramであなたが送信したメッセージ;チャットからの@usrcpクエリ | キャプチャ + リーダー + ボット | Telegramボットトークン(BotFather);@usrcpの返信にはAnthropic APIキーが必要です |
usrcp-gmail | Gmailであなたが送信したメッセージ(件名、本文、宛先、ラベル) | キャプチャのみ(v0) | Google Cloud OAuthクライアント + Gmail APIの有効化 |
usrcp-extension | claude.aiでの会話;台帳検索用の/usrcpスラッシュコマンド | キャプチャ + インジェクター | Chromeのみ。 手動での展開済み拡張機能の読み込み(デベロッパーモード → 展開していない拡張機能を読み込む) |
アダプターのパッケージ(npm install -g usrcp-<value>)をインストールし、usrcp setup --adapter=<value>で設定してください(例:npm i -g usrcp-linear && usrcp setup --adapter=linear)。usrcp setupのみを実行すると、インストール済みのアダプターから対話形式で選択できます。
すべてのアダプターは、設定可能なdomain(デフォルトではソース名と一致)配下に書き込みます。また、ソース側の安定したIDを冪等性キーとして使うため、同じウィンドウを再ポーリングまたは再監視しても二重に書き込まれることはありません。キャプチャのみのアダプターは返信しません。ボットアダプターは、明示的な@usrcp//usrcpへのメンションにのみ返信し、ユーザーが見るものと同じ台帳を使って回答します。
エージェントハーネス連携
これらのアダプターは、USRCPのツールをサードパーティ製AIエージェントハーネスに公開します。アダプター自体が新しいイベントをキャプチャすることはありません。Discord、Slack、iMessageなどの外部サービスからのキャプチャは、引き続き上記の専用キャプチャアダプターを通じて行われます。まずハーネスをインストールし、その後USRCPのセットアップ手順を実行してください。
| 連携 | 目的 | モード | 要件 |
|---|---|---|---|
usrcp-hermes | Hermes Agent用のメモリープロバイダープラグイン。USRCPを9番目の外部メモリープロバイダーとして追加します。システムプロンプトのコンテキスト、プリフェッチ、sync_turnによるキャプチャを提供します。 | 双方向プラグイン | Hermesがインストール済みであること;usrcp CLIがPATH上にあること;mcp Pythonパッケージ |
openclaw | OpenClawの設定でusrcp serveをMCPサーバーとして登録します。OpenClawのエージェントは、Claude Codeと同じ経路ですべてのUSRCPツール12個を利用できます。 | 読み取り側(MCPサーバー) | OpenClawがすでにインストールされていること — まずhttps://docs.openclaw.ai/start/getting-startedでインストールし、その後`usrcp setup --adapter=openclaw`を実行してください |
Ledger ビューアー
ローカルの usrcp serve サブプロセスを介して暗号化された台帳を閲覧する読み取り専用クライアントです。ネットワーク呼び出しはなく、ビューアーがホストプロセスの外部で平文を見ることはありません。
| ビューアー | 表示領域 | モード | 要件 |
|---|---|---|---|
usrcp-vscode | VS Code のアクティビティバーにある USRCP ビュー — ドメイン別の Facts ツリー、ステータスインジケーター、「Open Ledger Directory」コマンド。 | 読み取り専用クライアント | VS Code、PATH 上の usrcp CLI(または usrcp.binaryPath の設定) |
デバイス間同期
usrcp-cloud は、任意で利用できる実験的な暗号文リレーです。現在、ローカル同期クライアントが転送するのはタイムラインイベントとドメインマップのみです。構造化状態の完全な同期は、リリース時のワークフローの対象外です。同じマシンとプロファイル上のエージェントはすでにライブ台帳を共有しています。デバイス間での継続性については、別途検証が必要です。リレーメタデータは引き続き表示されます。
MCP ツール(12)
| ツール | 説明 |
|---|---|
usrcp_handoff | レビュー済みの事実と最近の作業を含む、ドメイン固有の簡潔な開始概要 |
usrcp_get_state | ID、設定、プロジェクト、タイムラインを照会 |
usrcp_append_event | インタラクションイベントを記録 |
usrcp_update_identity | ユーザーの役割、専門知識、コミュニケーションスタイルを更新(読み取り・変更・書き込み用の expected_version を任意で指定) |
usrcp_update_preferences | 言語、タイムゾーン、詳細度を更新 |
usrcp_update_domain_context | ドメインにスコープされたキーと値のコンテキストを保存 |
usrcp_set_fact | (domain, namespace, key) の下に、自由形式のスキーマレスな事実を保存 |
usrcp_get_facts | 1 つの事実を読み取るか、ドメイン/名前空間内のすべての事実を一覧表示 |
usrcp_search_timeline | ブラインドインデックストークンで検索(意味検索ではなく、完全一致キーワード検索) |
usrcp_manage_project | 追跡対象のプロジェクトを作成/更新 |
usrcp_audit_log | 暗号化された監査証跡を表示 |
usrcp_rotate_key | マスター暗号化キーをローテーション(すべてのデータを再暗号化) |
usrcp_status | 台帳の統計情報と健全性(スコープを認識し、スコープ指定されたエージェントには自身のドメインのみを表示) |
暗号化される内容
すべてのコンテンツです。 ユーザーが発言、実行、または保存した内容を含むすべてのフィールドは、保存時に暗号文になります。平文のまま残るのは、いつなのかは示しても、何なのかは決して示さない、不透明な識別子やタイムスタンプなどの構造メタデータです。SQLite ファイルを読み取る攻撃者に見える内容は次のとおりです。
| 列 | 表示される内容 |
|---|---|
event_id | 不透明な ULID(平文 — ランダムな識別子であり、コンテンツを含みません) |
timestamp | いつなのかを示します。何なのかは示しません(平文) |
domain | HMAC 擬似名(d_1ac6397ab4d2) |
summary | enc:base64ciphertext... |
intent | enc:base64ciphertext... |
outcome | enc:base64ciphertext... |
platform | enc:base64ciphertext... |
detail | enc:base64ciphertext... |
tags | enc:base64ciphertext... |
audit_log.* | enc:base64ciphertext... |
同じルールは他のテーブルにも適用されます。active_projects では、コンテンツフィールド(name、domain、status、summary)は enc: 暗号文です。選択した project_id は HMAC として保存され(元の値は project_ref_enc に暗号化されます)、平文のまま残るのは last_touched(タイムスタンプ)のみです。ユーザーコンテンツを保持するフィールドが平文で保存されることはありません。
パスフレーズモードでは、ディスク上にキーファイルは存在しません。起動時に scrypt でキーが導出され、シャットダウン時にゼロ化されます。
各アダプターのテストスイートには保存時の暗号文チェックが含まれています。実際のアクティビティを取得してから、raw better-sqlite3 で SQLite ファイルを開き、暗号化対象の列に平文の目印(タイトル、本文、URL、ID)が一切含まれていないことを検証します。
セキュリティアーキテクチャ
- AES-256-GCM による、すべてのコンテンツフィールドの保存時暗号化
- HKDF-SHA256 によるドメインスコープの鍵 — コーディング用の鍵で健康データを復号することはできません
- scrypt によるパスフレーズ導出(N=131072、r=8、p=2)— 鍵はディスクに保存されません
- HMAC ドメイン仮名 — ドメイン名は不透明な識別子です
- n-gram トークンとノイズ注入を用いたブラインドインデックス検索
- 暗号化監査ログ — アクセスパターンも暗号文です
- アトミックな鍵ローテーション — 1 回のトランザクションですべてのデータを再暗号化します
- secure_delete pragma — SQLite が削除済みページをゼロで埋めます
- プロセスのシャットダウン時にマスターキーをゼロ化
- スコープの適用 —
--scopeフラグを付けて登録されたエージェントには、認可されたドメインのみが表示されます。usrcp_statusとタイムラインのクエリもそれに応じてフィルタリングされます
モデルの全容については、docs/SECURITY.md をご覧ください。
エディターと CLI の統合
USRCP は MCP 対応のあらゆるクライアントで動作します。usrcp init ウィザードは、エディタークライアント用のサーバーエントリーを登録します。
| エディター | --client= の値 | セットアップドキュメント |
|---|---|---|
| Claude Desktop | claude(デフォルト) | この README |
| Cursor | cursor | docs/INTEGRATIONS/cursor.md |
| Continue.dev | continue | docs/INTEGRATIONS/continue.md |
| Cline(VS Code) | cline | docs/INTEGRATIONS/cline.md |
複数のクライアントを一度に登録できます。usrcp init --client=claude,cursor または --client=all を実行してください。
ターミナルベースの MCP 対応 CLI エージェント(Claude Code、Cursor CLI、Codex、Copilot CLI、Cline、Continue、Aider、Antigravity、OpenCode)では、ウィザードを 1 回実行するだけですべてを設定できます。
usrcp setup --adapter=terminal
外部アカウントやボットトークンは不要です。これらのエージェントのすべてのターミナルセッションで、同じローカル台帳を通じてプラットフォームをまたいだメモリを利用できます。
すべてのクライアントは、ユーザーごとに同じローカル台帳を共有します。
その他の利用者
usrcp-hermes— Hermes Agent 用の Python メモリプロバイダープラグイン。USRCP をメモリバックエンドとして追加することで、Hermes の実行間で Claude Code、Cursor などと状態を共有できます。薄いラッパーであり、台帳のロジックは TypeScript のままです。
プロジェクト構成
usrcp/
├── spec/
│ └── PROTOCOL.md # Protocol specification
├── schemas/ # JSON schemas (get_state, append_event, handshake)
├── docs/
│ ├── SECURITY.md # Security & privacy model
│ └── INTEGRATIONS/ # MCP client integration guides
├── strategy/ # GTM, pitch, positioning
├── packages/
│ ├── usrcp-core/ # Framework-agnostic protocol core (ledger, crypto, encryption, pairing, rotation, scope)
│ ├── usrcp-local/ # Local MCP server + CLI
│ ├── usrcp-cloud/ # Hosted ledger for ciphertext-only sync
│ ├── usrcp-discord/ # Discord capture+reader adapter
│ ├── usrcp-extension/ # Chrome extension (claude.ai capture)
│ ├── usrcp-hermes/ # Hermes Agent memory plugin (Python)
│ ├── usrcp-imessage/ # iMessage capture+reader (macOS)
│ ├── usrcp-linear/ # Linear issues + comments capture
│ ├── usrcp-obsidian/ # Obsidian vault capture
│ ├── usrcp-slack/ # Slack capture+reader
│ └── usrcp-telegram/ # Telegram capture+reader
└── sdk/ # Legacy prototype (Jan-Feb 2026); not the reference impl
旧 sdk/ はプロトコル策定前の試行用でした。これまでの経緯については sdk/README.md をご覧ください。新しい開発では、usrcp-core の台帳を直接対象にしてください。
テスト
現在のスナップショット(パッケージごとの npm test):
| パッケージ | テスト数 |
|---|---|
usrcp-local | 321 |
usrcp-core | 230 |
usrcp-stream | 125 |
usrcp-github | 90 |
usrcp-obsidian | 65 |
usrcp-imessage | 54 |
usrcp-telegram | 53 |
usrcp-linear | 52 |
usrcp-slack | 52 |
usrcp-extension | 46 |
usrcp-discord | 45 |
usrcp-gmail | 41 |
usrcp-google-calendar | 33 |
usrcp-adapter-kit | 32 |
usrcp-cloud | 30 |
usrcp-claude-code | 28 |
| 合計 | 約1297 |
これに加えて、usrcp-hermes に Python のテストスイート(pytest)があります。
パッケージのディレクトリ内で npm test を実行すると、そのパッケージのテストスイートを実行できます。パッケージをまたぐ
prebuild/pretest フックは、型の同期を保つために、最初に usrcp-core(および他の兄弟パッケージ)をビルドします。テスト範囲には、台帳の CRUD、暗号化の往復処理、改ざん検出、ドメイン分離、監査ログ、ULID、プルーニング、複数ユーザーの分離、楽観的並行性、スキーマレスなファクト、スコープの適用(すべて usrcp-core 内)、同期のプッシュ/プル、Ed25519 署名付きリクエスト認証(usrcp-local/usrcp-cloud)、および各アダプターのキャプチャ/冪等性/保存時暗号文のチェックが含まれます。
ビジネスモデル
オープンソースのプロトコル(Apache 2.0)です。リファレンス実装は無料で、ローカルファーストです。将来的な有料サービスはユーザーと検証していきます。信頼性の高いマネージドな引き継ぎ/同期とチーム向け制御は仮説であり、リリース済みの商用機能でも、コンプライアンスを保証するものでもありません。
対象とするのは「AIを使うすべての人」ではありません。平文データを第三者に送信するAI向けの状態ストアを導入できない、セキュリティを重視する開発者や規制対象の企業です。ポジショニングの詳細については、strategy/PITCH.md と strategy/GTM.md を参照してください。
ライセンス
Apache 2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。