Your users already carry their context — who they are, how they work, what they're focused on. It's a handful of plain markdown files they control, the same convention as CLAUDE.md or AGENTS.md — just written for the human instead of about a codebase. Here's how to read them.
No bespoke schema. Six files, each optional, each just markdown — matching usrkey-template exactly. If a page doesn't exist, the user chose not to write it — don't invent it, don't ask them to "complete" it.
# ~/.usrkey/identity.md # identity ## One paragraph Frank — runs a woodworking business in Ohio
Canonical location: ~/.usrkey/ (override the folder with $USRKEY_DIR). A page is just a file with that name in that folder — nothing more to parse.
One tool call and your agent knows the user. The connector exposes get_my_context (every page, concatenated) plus one resource per page — usrkey://identity, usrkey://now, etc. Never phones home.
$ npm i -g https://usrkey.dev/usrkey-connector-0.2.0.tgz // then in your MCP config: { "mcpServers": { "usrkey": { "command": "usrkey-connector" } } }
MIT, three files, ~3 kB. "Never phones home" shouldn't be taken on faith — the tarball is the entire source; read it before you install it.
They're plain text at a known path. Read whichever pages exist, show the user what you read, and let them point you at a different folder with $USRKEY_DIR.
Users can copy a scoped bundle as text from usrkey.com. If your product has a text box, it already supports USRKey.
The whole integration, concretely. A user has two pages in ~/.usrkey/ (identity.md + now.md). One line added to Claude Desktop's config wires them in:
// ~/Library/Application Support/Claude/claude_desktop_config.json { "mcpServers": { // ← everything you had before stays as-is; add one entry: "usrkey": { "command": "usrkey-connector" } } }
Restart the app. From then on, what follows is verbatim — not a mockup:
// your agent calls the MCP tool: { "method": "tools/call", "params": { "name": "get_my_context" } } // and receives, in full: Context the user chose to share about themselves. Use it to work with them as they are — don't re-ask what's already here. # identity ## One paragraph Frank — runs a woodworking business in Ohio. Wants tools to write in plain, direct language. --- # now ## Current focus Launching the new product line this month.
That's the whole contract: a preamble telling the model how to treat it, then each granted page verbatim, separated by ---. No stack.md here — Frank didn't write one, and rule three below says treat that as his choice. Want one page instead of all of them? Read the per-page resource (usrkey://now) and skip the rest.
Paste one page below to check it against the format above — no upload, this runs in your browser only.
Examples — click to load one:
Everything listed here is real and verifiable today — no logos of tools that merely could work. A format lives on visible adopters; this list is meant to grow.
Built something that reads the six files and follows the rules above? Get listed — the only criteria are that it's public and the claim is verifiable.