This document is non-normative except where it restates SPEC §9. It is the living home for community best practices on securing a context server. PRs welcome: this is exactly the document the community should own.
A PCP context is among the most sensitive datasets a person has: health, legal, citizenship, family, plus live access to email and messages. Assume:
| Threat | Primary mitigations |
|---|---|
| Server compromise (multi-tenant host) | Per-context isolation (SPEC §9.5); per-context keys; special-category data on separate keys |
| Stolen/leaked OAuth token | Short-lived tokens bound to one context, grants revocable one by one, refresh rotation, audit log (SPEC §3.4) |
| Malicious/over-curious MCP client | Scope minimization by default (§7.2); consent screen lists what is NOT granted; per-category scopes |
| Prompt-injection exfiltration via a connected LLM | Scope-gate everything; memory.sensitive and special-category extensions off by default; returned content framed as data (SPEC §9.6); audit log makes reads visible |
| Rogue host operator | User-held keys or device custody (SPEC §9.1) limit what a host can read; otherwise choose your host like you choose an email provider, or self-host |
| Data loss | Export is a user right (§8); encourage scheduled automated exports to user-controlled storage |
Origin validated on the MCP route; rate limits on the OAuth endpointsencryption declaration that matches what the server does (SPEC §9.1)Host and OriginThe conformance suite (conformance/) checks most of this from outside.
Report vulnerabilities in the spec or schemas privately through GitHub’s private vulnerability reporting. Please do not open public issues for exploitable findings.
Vulnerabilities in a specific implementation belong with that implementation’s maintainers.