
USRCP — User Context Protocol
io.github.frank-bot07由 GitHub 帳號 frank-bot07 發布v0.2.8更新於 Oct 24, 2026
Encrypted local ledger of structured user state, shared across every MCP-aware AI tool.
概覽
本機加密的 SQLite 帳本,保存使用者身分、偏好、專案與活動紀錄,任何支援 MCP 的 AI 工具都能讀寫,讓上下文跨工具延續。
- 可以做什麼
- 取得某個領域的精簡啟動簡報與近期活動,或查詢身分、偏好、專案與時間軸
- 記錄互動事件,更新身分、偏好與領域範圍內的上下文
- 依領域、命名空間與鍵存取自由格式的事實
- 以精確關鍵字搜尋時間軸,並檢視加密稽核日誌
- 管理追蹤的專案、查看帳本健康狀態、輪換主加密金鑰
- 適用情境
- 適合在多个支援 MCP 的助理或編輯器(Claude Desktop、Cursor、Cline、Continue、終端機代理)之間切換,希望每個工具都了解你近期的工作、決定與偏好,而不必重複交代背景的人。鎖定希望把這類延續性保存在本機加密儲存、而非雲端帳號的開發者。
- 執行需求
- 以本機 stdio 程序執行,來自 npm 套件 usrcp;需要 Node 22.13 以上(建議 24+),macOS/Linux 也可用 Homebrew 安裝。需要通關密語來衍生帳本金鑰,可透過 USRCP_PASSPHRASE 環境變數、命令列參數提供,或存入作業系統鑰匙圈(Windows 尚未支援)。初始化會把 MCP 伺服器項目寫入用戶端設定檔。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 USRCP — User Context Protocol,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
USRCP — User Context Protocol
Switch AI tools without starting the conversation over.
You told Claude Desktop your stack on Tuesday. On Wednesday, Cursor doesn't know. Thursday, Codex asks again. Every AI tool you use has its own memory, or none.
USRCP is a local, encrypted SQLite ledger that any MCP-aware tool can read and write. Connect supported tools to the same local profile so they can share your recent work, decisions and preferences. USRCP is an early beta; automatic capture and recall depend on the integration.
Registers with Claude Desktop, Cursor, Continue, Cline, and terminal agents (Claude Code, Codex CLI, Copilot CLI, Aider, OpenCode, Antigravity). Captures structured activity from GitHub, Linear, Obsidian, Claude Code sessions, and Google Calendar — plus an experimental conversation-capture set.
→ See it work: the cross-editor demo, or check the protocol path on your own machine in one command — node scripts/cross-client-proof.mjs (uses two synthetic MCP clients and scans raw database cells for test content markers; it does not test actual AI hosts).
→ Apache 2.0 · 600+ tests · threat model in docs/SECURITY.md
Core and optional features: the structured core uses exact-keyword lookup. Optional
usrcp-streamadds semantic recall with a different storage/privacy boundary; see the capability matrix below.
Protocol Stack
One human, many AI interfaces
USRCP is the human user's context layer. The launch workflow is live retrieval of a compact brief from one shared ledger. Your next assistant should know the relevant ongoing work, decisions, constraints and next steps.
Discuss your work in one connected tool, then ask another: “What was I just working on?” You should not have to select a project, copy a summary, or repeat the background.
Connected MCP clients can read recent activity across the profile with usrcp_get_state and request a focused live brief with usrcp_handoff. The local MCP server provides startup instructions, but clients must honor them; verify actual behavior with the two-client acceptance test. A shared ledger alone does not prove automatic retrieval.
Capability and privacy boundaries
The initial beta focuses on people switching Claude Code, Codex and Cursor. Domain restrictions are optional access controls, not a required step in normal conversation. The broader goal remains continuity for the human user across tools. Read context ownership for inspection, correction, provenance, expiry and deletion alternatives.
Alternatives
OpenMemory also targets cross-tool coding context and automatic capture. Zep provides temporal knowledge graphs. These products overlap with parts of USRCP's workflow. USRCP's proposed advantage is a small, inspectable human-context brief backed by a local encrypted ledger, explicit sharing and no required cloud account for the core workflow. Compare current editions and test against your existing project notes; do not assume other products are merely vector storage or always require a particular provider.
Quickstart
Install
npm (recommended) — the usrcp CLI + encrypted ledger:
No native build, no compiler, no postinstall — usrcp uses Node's built-in SQLite (node:sqlite), so npm install just works on any npm (including npm 12+, whose allowScripts default blocks native build scripts). Requires Node ≥ 22.13 (Node 24+ recommended).
Homebrew (macOS / Linux) — alternative for the core CLI:
The CLI ships with the inline adapters (terminal, mcp-agent, openclaw). Capture adapters install as their own packages, then you configure each with the setup wizard:
See the Adapters table for the full list (the Chrome extension and VS Code viewer ship separately — see their package READMEs).
From source — for contributing or running unreleased changes:
First run
In passphrase mode, init offers to store the passphrase in the OS keychain (macOS Keychain / Linux Secret Service); pass --keychain / --no-keychain to decide non-interactively. With a keychain entry present, MCP clients auto-start the server with no plaintext passphrase in any config file. Manage the entry anytime:
init creates ~/.usrcp/users/<slug>/ with an encrypted SQLite ledger and writes the MCP server entry to Claude Desktop's config:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Single-user is the default and what every shared-machine consideration in the rest of this README assumes. If two people use the same OS account (or you run multiple identities side by side), see Multiple users on one machine below — each user gets an independent ledger and passphrase under a --user=<name> slug.
Adding capture adapters
Adapters watch a source (a GitHub org, an Obsidian vault, a Linear workspace, etc.) and append the activity you authored into the same ledger your local MCP server reads from. Install the adapter's package, then run the setup wizard to configure it:
See the Adapters tables below for the full list.
Multiple users on one machine
Each user gets an independent ledger, passphrase, and MCP server entry.
Passphrase mode and terminal agents
If you initialized USRCP in passphrase mode (usrcp init with the default), the MCP server needs the passphrase to decrypt the ledger. The terminal-adapter register() writes only command + args to each agent's config — it never bakes the passphrase in.
Recommended: the OS keychain. One command covers every agent — shell-launched and GUI alike — with nothing in plaintext on disk:
The server checks USRCP_PASSPHRASE, then --passphrase, then the keychain, so existing setups keep working unchanged. (Windows: keychain support isn't wired up yet — use the env-var paths below.)
Env-var alternatives, if you'd rather not use the keychain:
-
Shell-launched agents (
claude-code,codex,copilot-cli,aider,opencode) — add to~/.zshrc/~/.bashrcand restart your shell: -
GUI/IDE-launched agents (
cursor,cline,continue,antigravity) do not inherit shell environment. Either add anenvblock under theusrcpserver entry in the agent's config file (JSON for Cursor/Cline/Continue, TOML for Codex), or set a system-wide GUI env on macOS withlaunchctl setenv USRCP_PASSPHRASE "..."(persists until reboot; use a~/Library/LaunchAgents/plist for permanence).
Treat any config file you bake the passphrase into as a secret — it sits in plaintext on disk and is the weakest link in an otherwise-encrypted setup. This is exactly what usrcp keychain store exists to avoid.
The wizard prints this same guidance after registration, so you can also re-run usrcp setup or usrcp adapter add terminal --targets=<list> for a reminder.
Capture Adapters
Adapters are independent processes that read from a source and append events to the local ledger via the same encrypted-at-rest pipeline as the MCP server. Each adapter handles its own auth, idempotency, and cursor persistence.
Structured-state adapters
These are the headline adapters: they capture genuinely structured dev/work state — issues, PRs, notes, calendar events, coding-session context — the kind of data USRCP's schema and exact-keyword search are built for.
Alongside these, the inline adapters that ship with the brew CLI (terminal, mcp-agent, openclaw) wire the same structured state into terminal agents and agent harnesses — see Editor & CLI Integrations and Agent harness integrations. The VS Code viewer browses the resulting ledger read-only.
Conversation capture adapters (experimental)
These adapters capture allowlisted activity into the local ledger. The optional stream layer includes semantic retrieval and has a different storage boundary from the core: consult security boundaries before enabling it. Capture is not proof that another assistant retrieved or correctly understood the context. The initial product test is live cross-interface continuity using concise checkpoints.
Install an adapter's package (npm install -g usrcp-<value>), then configure it with usrcp setup --adapter=<value> (e.g. npm i -g usrcp-linear && usrcp setup --adapter=linear). Run usrcp setup alone for an interactive picker over the adapters you've installed.
All adapters write under a configurable domain (default matches the source name) and use stable, source-side IDs as idempotency keys, so re-polling or re-watching the same window cannot double-write. Capture-only adapters do not reply; bot adapters reply only to explicit @usrcp / /usrcp mentions and answer using the same ledger the user sees.
Agent harness integrations
These adapters expose USRCP's tools to a third-party AI agent harness. They don't capture new events on their own — capture from external surfaces (Discord, Slack, iMessage, etc.) still goes through the dedicated capture adapters above. Install the harness first, then run the USRCP setup route.
Ledger viewers
Read-only clients that browse the encrypted ledger via a local usrcp serve subprocess. No network calls; the viewer never sees plaintext outside the host process.
Cross-device sync
usrcp-cloud is an optional experimental ciphertext relay. The local sync client currently transfers timeline events and domain maps only. Full structured-state synchronization is outside the launch workflow; agents on the same machine and profile already share a live ledger; cross-device continuity needs separate validation. Relay metadata remains visible.
MCP Tools (12)
What's Encrypted
All your content. Every field that carries what you said, did, or stored is ciphertext at rest. What stays in the clear is structural metadata — opaque identifiers and timestamps that reveal when, never what. An attacker reading the SQLite file sees:
The same rule holds in the other tables: in active_projects, the content
fields (name, domain, status, summary) are enc: ciphertext; the
project_id you choose is stored as an HMAC (with the original encrypted in
project_ref_enc), and only last_touched (a timestamp) stays plaintext. No
field that holds user content is ever stored in the clear.
In passphrase mode, no key file exists on disk. The key is derived via scrypt on startup and zeroed on shutdown.
Each adapter's test suite includes a ciphertext-at-rest check: it captures real activity, then opens the SQLite file with raw better-sqlite3 and asserts no plaintext markers (titles, bodies, URLs, IDs) appear in any encrypted column.
Security Architecture
- AES-256-GCM encryption at rest for all content fields
- Domain-scoped keys via HKDF-SHA256 — coding key cannot decrypt health data
- scrypt passphrase derivation (N=131072, r=8, p=2) — key never on disk
- HMAC domain pseudonyms — domain names are opaque identifiers
- Blind index search with n-gram tokens and noise injection
- Encrypted audit log — access patterns are ciphertext
- Atomic key rotation — re-encrypts all data in a single transaction
- secure_delete pragma — SQLite zero-fills deleted pages
- Master key zeroed on process shutdown
- Scope enforcement — agents registered with a
--scopeflag see only the domains they're authorized for;usrcp_statusand timeline queries filter accordingly
Full model in docs/SECURITY.md.
Editor & CLI Integrations
USRCP works with any MCP-compatible client. The usrcp init wizard registers the server entry for editor clients:
Register with multiple clients at once: usrcp init --client=claude,cursor or --client=all.
For terminal-based MCP-aware CLI agents (Claude Code, Cursor CLI, Codex, Copilot CLI, Cline, Continue, Aider, Antigravity, OpenCode), a single wizard wires them all up:
No external accounts or bot tokens required — every terminal session in those agents gets cross-platform memory through the same local ledger.
All clients share the same local ledger per user.
Other Consumers
usrcp-hermes— Python memory-provider plugin for Hermes Agent. Adds USRCP as a memory backend so Hermes runs share state with Claude Code, Cursor, etc. Thin wrapper — ledger logic stays in TypeScript.
Project Structure
The legacy sdk/ was a pre-protocol exploration — see sdk/README.md for the historical context. New work should target the usrcp-core ledger directly.
Tests
Current snapshot (per-package npm test):
Plus a Python suite in usrcp-hermes (pytest).
Run a package's suite with npm test from inside its directory. Cross-package
prebuild/pretest hooks build usrcp-core (and other siblings) first so types
stay in sync. Coverage spans: ledger CRUD, crypto roundtrips, tamper detection,
domain isolation, audit log, ULID, pruning, multi-user isolation, optimistic
concurrency, schemaless facts, scope enforcement (all in usrcp-core); sync
push/pull, Ed25519 signed-request auth (usrcp-local/usrcp-cloud); and
per-adapter capture/idempotency/ciphertext-at-rest checks.
Business Model
Open-source protocol (Apache 2.0). The reference implementation is free and local-first. Potential paid offerings will be tested with users; reliable managed handoff/sync and team controls are hypotheses, not shipped commercial or compliance guarantees.
The wedge isn't "every AI-using human." It's security-conscious developers and regulated enterprises who can't adopt an AI state store that phones a third party with plaintext. See strategy/PITCH.md and strategy/GTM.md for the full positioning.
License
Apache 2.0
來源:README.md,提交 9860845
工具
0版本歷史
2- v0.2.8最新Oct 16, 2026
- v0.2.7Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分