# USRCP — User Context Protocol (npm · usrcp)

Encrypted local ledger of structured user state, shared across every MCP-aware AI tool.

- Trust score: 65/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-07

## Components

- npm · `usrcp`: 65/100 (this document), [markdown](https://verifymcp.io/servers/frank-bot07-usrcp/usrcp.md), [page](https://verifymcp.io/servers/frank-bot07-usrcp/usrcp)

## Channel facts

- Registry: `npm`
- Package: `usrcp`
- Version: `0.2.6`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-07.

- **Supply Chain Security**: 93/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known medium-severity CVE affects @hono/node-server 1.19.17, reached via usrcp-local > @modelcontextprotocol/sdk > @hono/node-server. A fixed version is available.
  - No install/post-install scripts declared.
  - 39 of 153 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 48/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (Apache-2.0).
  - Actively maintained (last published 2 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 63/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1683 tokens (~140/item across 12 items; 12 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add frank-bot07-usrcp -- npx -y usrcp
```

### Codex

```bash
codex mcp add frank-bot07-usrcp -- npx -y usrcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "frank-bot07-usrcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "usrcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add frank-bot07-usrcp --command npx --arg -y --arg usrcp
```

### Hermes

```yaml
mcp_servers:
  frank-bot07-usrcp:
    command: "npx"
    args: ["-y", "usrcp"]
```

### Other

```json
{
  "mcpServers": {
    "frank-bot07-usrcp": {
      "command": "npx",
      "args": [
        "-y",
        "usrcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-07 (score 65, +3)

- [functional improvement] Security disclosure: fail → pass
- [functional] Dependency health: partial → 0.88

### 2026-08-05 (score 62, +27)

- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Tool coverage: unverified → 100
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 100
- [functional] First check of Schema quality: good

### 2026-08-04 (score 35)

First indexed and scored.

## MCP tools (12)

### `usrcp_get_state` (~148 tokens)

Query the user's identity, preferences, active projects, domain context, and recent interaction timeline from their USRCP State Ledger. Use this at the start of a session to understand who the user is and what they've been working on across all AI platforms.

Input parameters:

- `caller` (string): Identifying name of the calling agent/platform
- `scopes` (array): Which facets of user state to retrieve
- `timeline_domains` (array): Filter timeline to specific domains (e.g., ['coding', 'writing'])
- `timeline_last_n` (number): Number of recent timeline events to retrieve
- `timeline_since` (string): ISO 8601 timestamp — retrieve timeline events after this time

### `usrcp_append_event` (~220 tokens)

Record an interaction event to the user's USRCP State Ledger. Call this when a meaningful interaction completes — a task finished, a decision made, a file created, a bug fixed. This builds the user's cross-platform interaction history.

Input parameters:

- `artifacts` (array): References to outputs (files, commits, URLs)
- `detail` (object): Structured detail blob — varies by domain
- `domain` (string, required): Semantic domain: coding, writing, research, design, personal, health, finance, etc.
- `idempotency_key` (string): Client-generated key to prevent duplicate writes on retry
- `intent` (string, required): What the user was trying to accomplish
- `outcome` (string, required): How the interaction resolved
- `platform` (string): Platform this event originated from (e.g., 'claude_code', 'cursor')
- `session_id` (string): Session identifier to group related events
- `summary` (string, required): Concise summary of what happened
- `tags` (array): Freeform tags for filtering and search

### `usrcp_update_identity` (~159 tokens)

Update the user's core identity in the USRCP State Ledger. Use when you learn new information about the user — their role, expertise, or communication preferences.

Input parameters:

- `caller` (string): Identifying name of the calling agent/platform
- `communication_style` (string): How the user prefers AI to communicate
- `display_name` (string): User's display name
- `expected_version` (integer): Optional: version from a prior read. If the stored version differs, the update is rejected with VERSION_CONFLICT. Use for read-modify-write flows.
- `expertise_domains` (array): User's expertise areas and levels
- `roles` (array): User's roles (e.g., ['founder', 'software_engineer'])

### `usrcp_update_preferences` (~145 tokens)

Update the user's global preferences in the USRCP State Ledger. These preferences apply across all AI platforms.

Input parameters:

- `caller` (string): Identifying name of the calling agent/platform
- `custom` (object): Custom key-value preferences
- `expected_version` (integer): Optional: version from a prior read. If the stored version differs, the update is rejected with VERSION_CONFLICT.
- `language` (string): Preferred language code (e.g., 'en')
- `output_format` (string): Preferred output format
- `timezone` (string): IANA timezone (e.g., 'America/Los_Angeles')
- `verbosity` (string): Preferred verbosity level

### `usrcp_update_domain_context` (~169 tokens)

Store or update domain-scoped context in the USRCP State Ledger. Use this to persist domain-specific knowledge that should be available to any agent working in that domain (e.g., coding preferences, writing style notes, research topics).

Input parameters:

- `caller` (string): Identifying name of the calling agent/platform
- `context` (object, required): Key-value context to merge into the domain (e.g., { preferred_framework: 'nextjs', css: 'tailwind' })
- `domain` (string, required): Domain name (e.g., 'coding', 'writing', 'research', 'design')
- `expected_version` (integer): Optional: version from a prior read (0 = domain does not yet exist). If the stored version differs, the update is rejected with VERSION_CONFLICT.

### `usrcp_search_timeline` (~88 tokens)

Search the user's interaction timeline by keyword. Useful for finding past interactions, decisions, or context about specific topics.

Input parameters:

- `caller` (string): Identifying name of the calling agent/platform
- `domain` (string): Filter to a specific domain
- `limit` (number): Max results
- `query` (string, required): Search query — matches against summary, intent, and tags

### `usrcp_manage_project` (~154 tokens)

Create or update a project in the user's USRCP State Ledger. Projects track what the user is actively working on across platforms.

Input parameters:

- `caller` (string): Identifying name of the calling agent/platform
- `domain` (string, required): Project domain (coding, writing, research, etc.)
- `name` (string, required): Human-readable project name
- `project_id` (string, required): Stable handle for the project (the upsert key). Stored as an opaque HMAC — the id itself is never persisted or synced in the clear — so any string is safe. The human-readable title goes in `name`.
- `status` (string): Project status
- `summary` (string, required): Brief project description or current state

### `usrcp_audit_log` (~55 tokens)

View the USRCP audit log — every read, write, search, and delete operation recorded with timestamps, agent identity, and scopes accessed.

Input parameters:

- `limit` (number): Number of audit log entries to retrieve

### `usrcp_rotate_key` (~221 tokens)

Rotate the master encryption key. IRREVERSIBLE: replaces the on-disk master key and re-encrypts every row. DO NOT call this on your own initiative — only when the user has explicitly asked to rotate, or to respond to a confirmed key-compromise event. Rate-limited to once per 24h by default; rows that fail MAC verification under the current key are NOT silently dropped (the call will return an error and refuse to advance unless force_skip_damaged=true).

Input parameters:

- `force_rate_limit` (boolean): Bypass the 24h rate limit (USRCP_ROTATE_KEY_MIN_INTERVAL_HOURS). Set true only when the user has explicitly asked to rotate again sooner.
- `force_skip_damaged` (boolean): Proceed even when rows fail to decrypt under the current key. Those rows become permanently unreadable. Set true only after taking a snapshot and confirming the data loss is acceptable.
- `new_passphrase` (string): New passphrase for key derivation. If omitted, generates a random key (dev mode).

### `usrcp_set_fact` (~204 tokens)

Store a free-form fact in a domain namespace. Use for data the fixed schema doesn't model (habits, relationships, recurring tasks, mood, goals, etc.). Upserts one row per (domain, namespace, key) — re-calling with the same key overwrites. All values are encrypted with the domain-scoped key.

Input parameters:

- `caller` (string): Identifying name of the calling agent/platform
- `domain` (string, required): Semantic domain (coding, personal, health, etc.)
- `expected_version` (integer): Optional: version from a prior read (0 = fact does not yet exist). If the stored version differs, the write is rejected with VERSION_CONFLICT.
- `key` (string, required): Key within the namespace (e.g., 'morning_routine')
- `namespace` (string, required): Namespace within the domain (e.g., 'habits', 'relationships')
- `value` (required): Free-form value — any JSON-serializable data

### `usrcp_get_facts` (~87 tokens)

Read schemaless facts. If `key` is provided, returns a single fact; otherwise lists all facts in the domain (optionally filtered by namespace).

Input parameters:

- `domain` (string, required): Domain to read from
- `key` (string): Optional: fetch a single fact by key (namespace required if set)
- `namespace` (string): Optional: filter by namespace

### `usrcp_status` (~33 tokens)

Get the status and statistics of the local USRCP ledger — total events, domains, platforms, and projects.

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/frank-bot07-usrcp/usrcp#diagnostics

## Score history

- 2026-08-07: 65
- 2026-08-06: 62
- 2026-08-05: 62
- 2026-08-04: 35

## Links

- npm package: https://www.npmjs.com/package/usrcp
- Socket report: https://socket.dev/npm/package/usrcp
- Repository: https://github.com/frank-bot07/usrcp
- Website: https://usrcp.dev/
- Changelog RSS feed: https://verifymcp.io/servers/frank-bot07-usrcp/usrcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/frank-bot07-usrcp/usrcp.json
- HTML version of this page: https://verifymcp.io/servers/frank-bot07-usrcp/usrcp
