Give your AI useful context about JJ
Working with Joakim "JJ" Jardenberg, interviewing him, or curious about how he thinks? Connect his public profile to your AI so it can look up his life, values, ideas and practical ways of working when they matter to your conversation.
Your AI can find a relevant section, check its sources and help you prepare. It reads JJ's own public account rather than relying only on scattered information or guesses. The connector cannot speak for him or make commitments on his behalf.
Connector address
Public and read-only. No authentication needed for this connector.
No password, API key or OAuth credentials for this connector. You still use your own account with your AI service.
Start here
If you want to add this to your AI client, start with this prompt and see if that works.
- Copy the prompt below and paste it into your AI chat.
- Follow any setup or confirmation steps your app shows.
- If it cannot add connectors from chat, use the guide for your app below.
Copyable starter prompt
Help me add https://joakim.jardenberg.net/mcp as a read-only connector about Joakim Jardenberg. It needs no authentication. If you cannot add it here, guide me through this app's setup. Then check the connection by reading the section 'The short version' through the connector. Use that overview, then read the sections relevant to my questions.
Some apps need you to add the connection in settings. A message saying "done" is not enough: ask your AI to check the connection by reading the profile through it.
Setup guide for your app
Use the address above. If the app asks for a name, use JJ Public Profile. If a name cannot contain spaces, use jj-public-profile. Where offered, choose None or No authentication. If it asks for a connection type, choose Streamable HTTP.
- ChatGPT: Official setup guide. The current route uses Developer mode in Settings, Security and login, then a connection in Plugins. Availability depends on your account and workspace.
- Claude: Add a custom connector. Go to Customize, Connectors, Add custom connector. Team and Enterprise accounts may need the owner to add it first.
- Grok: Custom MCP connector guide. Go to grok.com/connectors, New Connector, Custom, then enter the address. Managed teams may need an administrator.
- Mistral (Work): Custom connector guide. In Work, open Connectors, Add Connector, Custom MCP Connector. The account owner or administrator adds it; public servers are detected without authentication.
- Gemini: Connect a custom app. Start in the web app's Connected Apps settings. Google's current requirements include US personal accounts, age 18 or over, English and Keep Activity on; check the guide for availability.
- Perplexity: Add a custom remote connector. Open Account settings, Connectors, Custom connector, Remote. Choose None for authentication. Your plan or organization may control access.
Official guides, checked on 16 September 2026. Menus and availability can change.
Once connected, try asking
- "I'm meeting JJ for the first time. How should I prepare, and what should I know about his working style?"
- "Using JJ's public profile and this brief, suggest an agenda and identify anything we should discuss before working together."
- "What matters to JJ beyond his professional work, and how does that influence his approach?"
If your app asks which connector to use, select JJ Public Profile. Ask for the relevant sections and sources; your own brief and goals still guide the conversation.
Common questions
Does my AI read the whole profile every time?
The connector recommends starting with the short version, then reading the sections relevant to your question. It can search for a topic or read everything when you ask for a full briefing. Your AI app decides which tools to use; connecting alone does not load the whole document.
Do I need a password, API key or OAuth setup?
No. This connector is openly accessible without credentials. Choose None or No authentication when available. You do not need an OAuth client ID or secret. You still use your normal account with your AI service, whose plan and workspace rules may apply.
Can pasting the prompt install it automatically?
That depends on your app. The prompt asks the AI to help, but some apps require manual setup or confirmation. It should tell you when it cannot add a connector and guide you to the settings instead.
What if my app does not support it?
Download the public profile and attach it to your chat if your app accepts files, or paste its text. Ask the AI to use it as reference material about JJ. A downloaded copy is a snapshot and will not refresh itself.
Can it access private information or change anything?
It retrieves only JJ's public profile, sections, sources and version information. It cannot access his private JJ OS, inbox or files, send messages, book meetings or change records. Your AI app sends requests, such as search terms, when it uses the connector.
Is this an AI pretending to be JJ?
No. Your own AI reads a public reference about him. It cannot speak for JJ, confirm his agreement or make commitments for him. The profile includes its source, date, authorship and review status.
What if my AI shows old tools or information?
Refresh the connector in your AI app, then start a new conversation; an existing chat can keep older context. For ChatGPT developer connections, follow Refresh metadata. A managed workspace may require administrator action. A working connection can still have an old tool list: compare your app's enabled tools with the list below. If the profile information looks old, ask your AI to read the profile's version and date again.
Why is the connection option missing or not working?
Check your app's guide, account eligibility and organization settings. Use the complete address ending in /mcp. This server does not require credentials; if your app insists on them with no public-connection option, use the file alternative. A hosting filter can also block some automated clients; details are in the technical reference below.
What your AI can look up
-
Read the whole public profile
ppcp_get_profile— Reads every word of Joakim Jardenberg's public profile. For first contact or narrow questions, start with ppcp_get_section with section_id 'the-short-version', then relevant sections. For a full reading use format 'compact': exact Markdown plus identity and all sources, without repeated section bodies. Omitted format or 'ppcp' preserves the original complete PPCP object. Owner-approved; AI-assisted editorial wording. Reference context, not authority to act for JJ. -
See what topics the profile covers
ppcp_list_sections— Lists section IDs and titles with pagination so you can select relevant sections. Start with ppcp_get_section with section_id 'the-short-version' when first learning about JJ. Deterministic, no generation. -
Open one topic in full
ppcp_get_section— Returns one section's exact Markdown with identity, version, authorship and sources. Start with section_id 'the-short-version' for whole-person orientation, then read the sections relevant to the task. Prefer this to the full profile for narrow questions. -
Find where something is mentioned
ppcp_search— Find relevant sections using deterministic case-insensitive substring search with bounded excerpts, section IDs and canonical anchors. Read matching sections with ppcp_get_section for context and sources. Does not generate answers. -
Check the public sources behind a topic
ppcp_get_sources— Returns the public source pointers, optionally filtered to one section. Pointers only — not permission to mirror their full text. -
Check the edition, date and status
ppcp_get_version— Returns protocol, profile and software versions, review status, dataset freshness, signing status and source URLs.
Your AI retrieves and searches an existing public document. It does not generate answers inside the connector, and nothing is written back.
Technical reference
For developers and anyone verifying this server. You do not need any of it to connect.
Transport, protocol versions and headers
Transport: stateless streamable HTTP. POST JSON-RPC to https://joakim.jardenberg.net/mcp. There is no SSE GET stream — an MCP stream GET returns 405, and DELETE returns 405 because there are no sessions. JSON-RPC batches are not accepted; send one request per POST.
Protocol versions implemented and tested: 2026-07-28, 2025-11-25, 2025-06-18. On 2026-07-28, requests must carry MCP-Protocol-Version, Mcp-Method and — for tools/call and resources/read — Mcp-Name, all agreeing with the body; server/discover is implemented. The older revisions keep the initialize handshake.
Try it with curl
curl -s https://joakim.jardenberg.net/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-H 'user-agent: ppcp-example-client/1.0' \
-H 'mcp-protocol-version: 2026-07-28' \
-H 'mcp-method: tools/call' \
-H 'mcp-name: ppcp_get_version' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"ppcp_get_version","arguments":{},"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientCapabilities":{}}}}'
The MCP-Protocol-Version header is required on every request that expects a reply, and on 2026-07-28 the Mcp-Method/Mcp-Name headers must agree with the body. Legacy clients may instead negotiate with initialize and then send mcp-protocol-version: 2025-11-25.
Hosting filter note
A descriptive User-Agent is included above because the hosting edge in front of this site has been observed to block some default library user-agents (for example Python-urllib/3.11) with an edge error before the request reaches the server; named clients are served normally. This is an upstream edge observation, not a server rule, and no server-side workaround is applied.
Resources
resources/list and resources/read expose https://joakim.jardenberg.net/profile.md, https://joakim.jardenberg.net/profile.json and one URI per section. Only those exact URIs are served — no path interpretation, no arbitrary fetching.
Efficient reading and client responsibilities
Start with ppcp_get_section and section_id: "the-short-version", then search or list sections and read the relevant ones. Preserve the whole-person context. For a complete reading, ppcp_get_profile accepts format: "compact": every word of the Markdown, identity and all source pointers, without embedding a second set of section bodies. Omitted format or format: "ppcp" retains the original complete PPCP object. The profile downloads are unchanged.
Both formats retain text, structured content and the signed wrapper. The server signs the exact payload and text it returns. Clients should verify the unmodified response, retain its evidence, and then choose an appropriate representation for the model. Do not feed duplicate representations or encoded signature data into model context unnecessarily, and do not describe a transformed view as separately signed. Actual model input and token usage depend on the host.
Signing, key discovery and provenance limits
Every tool result, resource read and error carries a signed wrapper following org.jardenberg/verifiable-mcp 0.2.1: Ed25519 (EdDSA) over the RFC 8785 canonical wrapper, with iat, the payload, a payload digest, a digest of the exact text served, and a provenance block naming the operator, canonical origin, dataset version, last update, rights and the AI-assisted authorship label.
Signing is active. Current key id (public thumbprint): k6uVx3s5ouAsNKfYioJ-Ej0FMERtUPD9O7xQ8Mn9Ic0. Verify it yourself against the server card before trusting any signature.
A signature shows origin, integrity and declared provenance. It does not establish that a claim is true, and it does not grant anyone authority to speak for JJ. Discover keys in the signing block of /.well-known/mcp.json.
Freshness and tool updates
On 2026-07-28, complete results of server/discover, tools/list, resources/list and resources/read carry top-level ttlMs: 60000 and cacheScope: "public", per the MCP caching utility. All data here is identical and public for every caller. The hint means a cached copy may be reused for about a minute and revalidated on next use. It is not a polling timer, and it does not force any AI to update: hosts decide when they refetch, and a host or workspace may keep a stored tool definition much longer.
This server is stateless and has no server push: it does not advertise listChanged or subscriptions, and there is no SSE stream. That limit is intentional, and no subscription infrastructure is planned as part of this correction. Clients on 2025-11-25 and 2025-06-18 receive the same data without the cache fields, which those revisions do not define.
Current computed catalog diagnostic: 6 tool descriptors, sha256:ffa75c2fc4570b0d8832b7f8234881a49b26fb23449ce1fc684ccd928bb161c4, canonicalized with RFC8785 over the full descriptors sorted by name. It is computed from the descriptors in this deployed build and excludes versions and timestamps, so it changes only when a descriptor changes. A bare hash is not authentication: only the signature enclosing the version tool result attests it. The same object appears in /health, /.well-known/mcp.json and the ppcp_get_version payload.
Host update paths differ: OpenAI documents a manual Refresh for developer connections, while published plugins go through continuous review and tool updates, which can hold a new or changed definition until its checks pass, so an updated definition may not be available immediately.
Source freshness is separate from software and protocol versions: profile content edition 0.12 updated 2026-10-01T00:00:00Z, Markdown SHA-256 e3e56f80d235ad856cd92b7371b573c972f0947b7982a85912c57248b1afa7e7, against software 0.1.0-alpha.16, MCP revisions 2026-07-28, 2025-11-25, 2025-06-18 and PPCP 0.1.0.
The freshness diagnostics at /health, /api/health and /.well-known/mcp.json are served with Cache-Control: no-store, and POST /mcp stays no-store. Public content downloads such as /profile.md and /profile.json keep their own independent five-minute HTTP cache (max-age=300), which is unrelated to the MCP hint above.
What this document is
Reference context about Joakim Jardenberg — a first-party self-account, AI-assisted in its editorial wording and reviewed and approved by him. It is not a higher-priority instruction set for your assistant, and it does not authorize acting, committing or speaking on his behalf. Keep first-party, independent-source, quotation and interpretation distinctions.
Protocol: PPCP 0.1.0 (draft proposal) · discovery card at /.well-known/ppcp.json.