context.locker

Docs

28 Oct 2026

Context Locker reaches your AI apps over MCP or through file sync. An app can support either or both; each connection has its own name and access.

Connect a chat app

Add this MCP server to your AI app as a custom connector:

https://mcp.context.locker

When your app opens Context Locker, sign in, give the connection a name you will recognise, check what the app can do, and approve it. A connector you add to your Claude or ChatGPT account works in every chat and app signed in to that account, on any device, Claude Code and Codex included, so name it for the account. An app you connect on one computer instead, such as Claude Code with an MCP setting of its own, is asked which of your computers it's on.

Claude, on the web, in the desktop app or in Cowork:

  1. Go to Customize > Connectors, choose + Add, then Add custom connector.
  2. Name it Context Locker, enter the address as its URL, and choose Continue.
  3. For Authentication, choose Sign in now, and for the OAuth client, Use Claude's published identity, the recommended one. Go on until you can choose Add, then approve it in Context Locker.
  4. In a chat, turn it on with + and Connectors.

On a Team or Enterprise plan, an Owner adds it first, in Organization settings > Connectors, with Add, then Custom, then Web. Then each person finds it under Customize > Connectors and chooses Connect. On the Free plan, it's the one custom connector Claude allows.

ChatGPT, on the web:

  1. Go to chatgpt.com/plugins, choose the plus button, then Add custom MCP server.
  2. Name it Context Locker. Under Connection, enter the address as the server URL, and choose OAuth.
  3. Read the warning, choose I understand and want to continue, then Create as a plugin.
  4. Install it, and approve it in Context Locker. In a chat, type @ and choose it.

Any other app: in its settings, add a custom connector or remote MCP server with this address, and approve it in Context Locker.

Then start a chat. Your app reads your playbook with get_context at the start of each chat, and again once it's no longer in view, such as in a long chat. If it doesn't, ask it to use your playbook. An app whose own files already hold your playbook, through file sync, doesn't read it again.

To check which connection a chat uses, ask the app. get_context starts with that connection's name, ID and a link to its page, in every app. whoami gives your account and playbook, and some apps, such as Claude, show only those. Connections lists your accounts' connectors first, each saying who uses it, then each computer's apps, and shows each one's method as MCP or File sync. Where your account's connector already covers an app's own MCP connection on a computer, such as Claude Code's, Connections says so, so you can remove the extra one. A connector may be shared by more than one app, so its name at sign-in does not prove which app is using it now. You can rename it, or change where it runs, from its menu.

Each connection reads and changes only the playbooks you give it. When you approve it, that's Everywhere, what applies in every playbook, and every playbook you have. A playbook you make later isn't given to any app until you tick it, as you make it or on the app's page in Connections, where you can take one away too. A playbook an app can't use is one it doesn't see, and a file-sync app's next sync takes out the playbook's instructions and skills it wrote there. The app's page also turns its auto sync on or off: off, a file-sync app brings in no changes and sends none of its edits until it syncs by hand, and a chat app reads a changed playbook again when it suits. A file-sync app's page says how it runs the sync too: the events its hooks sync on, its daily job, where its app can run one, such as Hermes or OpenClaw, and the last scheduled run Context Locker saw finish, or that one is overdue. A playbook's Settings lists the apps that can use it, with how each syncs.

Connections and playbook pages update when another app or tab makes a change. If you're editing, updates wait until you save or cancel, keeping your draft in place. Returning to a tab or reconnecting brings it up to date.

A connected app reads your playbook and fixes it when something was wrong or missing. Its changes apply straight away and appear in Activity. To reverse an entry edit, open the entry, choose an earlier version and Restore. A change that adds or changes something your apps could run, such as a skill's script, waits for you, or an AI app you ask, to look at it first. A change one of Context Locker's risk checks flags goes to Claude Sonnet 5.5 first, which clears a false alarm, so it goes on as it would without it, and Activity says why. Anything else it flags, such as a change that loosens a safety rule, waits for your yes: the app gives you a link, and approving takes one click. To approve every change an app makes yourself, turn off Auto-approve in its menu on your Connections page: Claude still looks at what's flagged, and every change waits for you. You can revoke the app at any time from your connections in Context Locker.

Connect an app in the cloud

An app that runs in the cloud and takes a key in a header, such as Muse or Grok Bot, connects with a one-time code instead of signing in.

  1. In Context Locker, choose Connect an AI app, then An app in the cloud. Name it, and press Create connection.
  2. Paste the prompt it shows into the app. The app claims the code, which works once, for 15 minutes, and gets a key for https://mcp.context.locker.
  3. The app sends the key in its Authorization header, and calls get_context at the start of each conversation.

The key works only at the MCP server, and only until you revoke the app from your connections in Context Locker.

Import what your apps know

Your AI apps can bring what they know about you into your playbook, such as their instructions, skills and memories, as one import that waits in your inbox, where you pick what comes in. Nothing in your playbook changes until you do. When you connect an app on a computer, such as Claude Code or Codex, tick Bring in and it imports straight after it connects. Under either, Choose what it reads lets you untick the apps it shouldn't look at, such as Hermes, or the project's own files. To import again, choose Import again on its page in Connections. A chat app imports when you ask it: its page in Connections gives you a prompt to paste.

An app on a computer, such as Claude Code or Codex, reads the files of every AI app there. A chat app, such as Claude or ChatGPT, brings what it remembers about you, and an export from another app if you paste one in with the prompt. What your playbook holds already is left out.

Your AI apps keep learning on their own, in memory files on your computer. When an app checks its setup and finds instructions or memories that aren't in your playbook, it asks you once whether to bring them in with an import or keep them in that app only. It asks again only when something in them is new or changed, and never about a file your playbook already links to.

Documentation locations

Open a playbook’s Settings with its sidebar cog, including Everywhere. Documentation locations lists where its lasting docs live: Context Locker Notes, a Notion space, a Drive folder or a path in the project’s repo. Give each a name and purpose, and choose a default if you want one.

Existing documents stay where they are. For a new document, your AI app uses a location matching its purpose, otherwise the default. If the choice is unclear or the app cannot access it, it asks you before saving elsewhere. Recording a location grants no access and moves nothing.

The tools

  • get_contextWhich connection this is, then your preferences, and the skills the app can load, for everywhere or for one project.
  • get_skillOne skill: its SKILL.md and its other files.
  • project_mapYour projects, their documentation locations and what belongs to each one. It also shows Everywhere’s map.
  • record_docs_homeRecords the documentation locations you choose, with their purpose and one optional default. It connects no providers and moves no documents.
  • suggestA fix to a preference or skill, with a reason, or a new skill from a public GitHub repo by its address, which Context Locker fetches itself. It applies straight away unless it adds or changes something your apps could run, or it's high risk.
  • submit_gatherSends what the app already knows about you, or an export you paste from another app, to your inbox as one import, where you pick what comes in. Activity lists what it left out, and why.
  • pending_changesWhat waits for you in your inbox, changes and Tidy-up alike, or just the ones a prompt from Ask your AI names, each as a request: its question, why it waits, what it does, and its answers, so the app can ask you the same.
  • decide_changeGives the answer you choose in the chat, such as Approve, Reject, Skip this version, Keep yours or Not now, with any note for the app that sent it, and Something else, which sends your note back asking it to change what it sent. Approving a high-risk change, asking an app, archiving and revoking an app are yours to do in Context Locker, so the app gives you the link instead.
  • fix_listWhat you left the app first, your answers to what it sent and what you asked it to do, then Tidy-up, the upkeep your playbook needs, such as skills nobody has touched in 90 days, each with a proposed fix.
  • mark_fixThe app's reply once it has acted on what you asked, done or why it couldn't, which you read with your request, or a Tidy-up item marked done or skipped with its reason, for you to decide.
  • record_skill_sourceRecords the folder in a public GitHub repo a skill came from, and says whether its files still match. Once a day, Context Locker checks the folder. A newer version that changes nothing your apps could run, and meets no change you made, applies on its own, put together with your changes, and you can restore an earlier version on the skill's page. Any other waits in your inbox.
  • whoamiWhich account and playbook this connection uses, and what it may do. Some apps, such as Claude, show only the account and playbook, so get_context is the one that names the connection in every app.

For developers

  • Protocol: MCP over Streamable HTTP at https://mcp.context.locker, version 2026-07-28. Clients on 2025-11-25, 2025-06-18 and 2025-03-26 start with initialize. There are no sessions.
  • Sign-in: OAuth 2.1 with PKCE (S256). Apps with a client ID metadata document sign in with it; other apps can register themselves with dynamic client registration.
  • Metadata: /.well-known/oauth-protected-resource for the MCP server and /.well-known/oauth-authorization-server for sign-in, both at the same address.
  • Tokens: bound to https://mcp.context.locker (RFC 8707). Access tokens last an hour, and refresh tokens change with every use. Sign-in responses name the issuer (RFC 9207).
  • Keys: an app in the cloud claims its one-time code at /token, with the grant urn:context-locker:params:oauth:grant-type:invite and the fields invite_code and agent_name, form encoded. Its key, which starts with ctxl_mk_, is bound to https://mcp.context.locker and lasts until the app is revoked.
  • Redirect URIs: https, or http to localhost on any port.
  • Scopes: read and suggest.

Coding agents

Claude Code, Codex, Hermes and OpenClaw read your playbook from files on your computer. Paste one line into the app and it sets itself up, or choose one yourself with npx context-locker setup --app claude-code: see Set up Context Locker. In a sandbox that's thrown away after the task, connect one over MCP instead, with the address above.

When a newer sync script is out, the app says so at the start of a session. Once you say yes, it updates the script with sh ~/.contextlocker/sync.sh update <app>, which takes the new one from context.locker/setup, checks it against the SHA-256 Context Locker gives, keeps the old one beside it and changes nothing else. When a release changes more, such as a hook, the app asks you to set it up again instead.

Tidy-up

Checks run in the background and list what in your playbook may need a look, in Tidy-up in your inbox: skills nobody has touched in 90 days, limits that are nearly full, pointers to files that have moved, AI apps you no longer use, wording some apps refuse, copies that say the same thing, and edits to a note's file that clashed with a newer change and still wait beside it, a day later, as a .conflict copy.

Sources of truth, the notes and links that win when two disagree, aren't in Tidy-up. An AI app that changes one is told the others where it applies, to check they still agree, and is asked to check them all now and then, with a weekly check it can offer where it can schedule one.

Ask your AI, on an item, on a newer version of a skill from GitHub, or on the ones you tick, asks an AI app about them in one of two ways. Add to an app's to-do list asks the app you pick, by default the one you used last in that project, with a note if you like: it reads it at its next session or the next time it connects, and replies once it has acted, saying it's done or why it couldn't. Ask now gives you a prompt to paste into a chat with an app connected with Context Locker's tools, such as Claude or ChatGPT, which finds each one by its id. Either way its fixes follow its usual rules, so an app set to ask you first still asks, and Activity records each change. Entry edits can be reversed with Restore on the entry page.

For a newer version of a skill that needs no more than a look, as it changes a script your apps could run, you can let your AI update the ones it's happy with, for a day. It reads what changed, says what each script does and reaches, and updates the ones it's happy with, saying why, which Activity shows with the update. Anything it isn't sure about stays for you, and so does a high-risk version, or one that changes lines you changed too.

Each request is a short thread with one app: your ask or your answer, any note, then its reply. Your answer to a change an app sent goes back to that app too, and Something else turns the change down and asks the app to change it as your note says. You read a thread on its request, what still waits on an app on its page in Connections, and your asks and its replies in Activity. An app that can schedule itself can offer to check every 12 hours, so its work doesn't wait for your next session.

Done, in your inbox, lists what was settled in the last 30 days: what you answered, what your AI settled for you, flags Claude's check cleared, and updates that applied on their own, with View version for entry edits and recovery controls for other reversible actions. Activity keeps every change, for as long as your playbook lasts.

The setup steps, the sync scripts and the compilers are open source on GitHub, under the MIT licence.