Connect Codex, Cursor, Gemini CLI, VS Code and Claude Desktop
Applies to OML v0.6.x · Status: Stable · Last verified 2026-11-06
Every tool here reaches the same /mcp endpoint with the same three tools. The configuration
for each comes from the agent kit, oml-agent-kit-X.Y.Z.tar.gz (or .zip), attached to each
release and signed with cosign. The kit's
README names each file, where
it goes and the tool's documentation with its fetch date.
You need an agent key (get one). Which tools we have run against a live client is under Limits.
1. Export the key
Export the agent's key in the shell that starts the tool:
export OML_API_KEY="$(cat "$HOME/.config/oml/keys/crew-agent-7")"
The key file is the one oml keys issue-agent --out wrote. Without one, export the key you were
given. None of the kit's files holds a key.
2. Copy the tool's file
| Tool | Copy |
|---|---|
| Cursor | cursor/.cursor/mcp.json to .cursor/mcp.json |
| Gemini CLI | merge gemini/.gemini/settings.json into .gemini/settings.json; also wires the session-start hook |
| OpenAI Codex CLI | add codex/config.toml's [mcp_servers.oml] to ~/.codex/config.toml |
| VS Code | vscode/.vscode/mcp.json to .vscode/mcp.json; the header's ${env:OML_API_KEY} is unverified |
| Claude Desktop | claude-desktop/claude_desktop_config.json to the app's config directory; runs the mcp-remote bridge, unverified on Windows |
Every file names the public server's /mcp address (install). With a key
from that server, there is nothing to edit. For your own server, replace the host with its
address and keep /mcp. The edit is the same in every file. A key sent to the wrong server is
refused there with 401 auth.invalid, and that server's operator has seen it.
Gemini CLI's session-start hook reads OML_URL beside the key and takes no default, so for it
also export the address of the server the file names:
export OML_URL=<server address> # without /mcp; the address of the server the file names
Paste the kit's AGENTS.md block into the project's AGENTS.md. It says when to search and when
to save.
3. Check the connection
Ask the agent what OML holds about the project. It calls oml_read; a refusal names its reason,
such as auth.invalid. A save answers held. The agent reads it back at once, and others
find it after a reviewer approves it. If it fails, see client troubleshooting.
What these tools get
The three tools and the AGENTS.md guidance. Gemini CLI also gets the session-start context
through oml hook session-start, when oml is on PATH. Cursor's session-start hook uses a
different output field, so the kit wires none. No tool here gets the librarian or failure recall.
Claude Code without the plugin
claude mcp add --transport http oml <server address>/mcp --header "Authorization: Bearer $OML_API_KEY"
For the public server, use its address from install.
This gives the three tools and nothing else: no skill, no hooks, no librarian. The shell expands
the key into the command line, and Claude Code stores the header in its own configuration file,
not the keychain. The plugin, through oml setup claude-code, keeps the key in the keychain
(Claude Code guide).
Why there is no Cursor install link
Cursor can install a server from a link, and a link carries its configuration in the URL. The kit offers none, because that configuration would carry the key. A link becomes possible when a connection can open with the connect code instead of a key. Whether Cursor completes that flow is untested.