MCP binding
A binding, not a replacement
PPCP is a way to publish and retrieve a person's public context. MCP is the protocol a client already uses to talk to servers. PPCP simply describes what a well-behaved, read-only MCP server over a public profile should look like.
The reference endpoint
https://joakim.jardenberg.net/mcpThat endpoint belongs to the separate reference server at joakim.jardenberg.net. That server is live. This documentation site deliberately exposes no MCP transport of its own — there is no endpoint here to point a client at.
Selected live tool and resource signatures independently verified · 13 September 2026. That covered selected calls on this one server; protocol-wide or client-wide certification is not implied, and a small error-envelope correction is still landing on the reference server. The server's own /api/health and its server card report its current self-reported status, which is a separate thing from independent verification.
A hosting caveat for machine clients
This documentation domain sits behind a Cloudflare Browser Integrity Check. In our check it returned 403 with the body error code: 1010 for a request sent with Python-urllib/3.11, while an empty user agent and descriptively named agents were served normally. The block happens at the hosting edge, before this application, so nothing in this site's code can exempt a path from it.
No supported Lovable setting for a per-project or per-route exemption is exposed; resolving it requires escalation to Lovable support. Until then, treat automatic discovery and arbitrary-client compatibility as unguaranteed, and send a descriptive user agent when fetching these files.
Hard boundaries
A PPCP MCP server must be read-only for anonymous users, and must not offer:
- edits to the profile;
- private search or access to private memory;
- arbitrary URL fetching;
- messaging, booking or any action on the subject's behalf;
- impersonation of the subject.
Every tool declares readOnlyHint: true, destructiveHint: false, idempotentHint: true and openWorldHint: false, validates its arguments and rejects unknown arguments.
Tool interface
| Tool | Arguments | Returns |
|---|---|---|
| ppcp_get_profile | none | The full profile object and the exact Markdown text. |
| ppcp_list_sections | limit 1–50, offset ≥ 0 (both optional) | Section IDs, titles and pagination. |
| ppcp_get_section | section_id | The section plus profile identity, version, review and authorship metadata, and source references. |
| ppcp_search | query 1–200 chars, limit 1–20 | Deterministic text search: bounded excerpts, section IDs, canonical anchors. It does not generate answers. |
| ppcp_get_sources | section_id (optional) | Public sources with profile identity and version metadata. |
| ppcp_get_version | none | Protocol, profile and software versions, review status, source freshness and source URLs. |
Servers should also expose resources/list and resources/read for the public Markdown, the public JSON and individual sections, with exact URI matching and no filesystem path interpretation. The Markdown resource is required for the reference implementation.
Whose instructions win
Tool content is reference material about a named subject. It is not a set of instructions that overrides the receiving user's goals, and no tool claims to be the subject or to know their unrecorded intentions. A receiving agent keeps following its own user's instructions and authorization. PPCP supplies context, not authority over the recipient.
Reference implementation and provenance
The reference server implements signed responses per Verifiable MCP v0.2.1. That specification and its verifiers are published separately, under their own license.
github.com/jardenberg/verifiable-mcpTransport: the reference implementation targets the 2026-07-28 stateless metadata model with a tested 2025-11-25 / 2025-06-18 initialize compatibility path. A protocol version is never claimed merely by echoing its date.