Codex
Connecting Codex is two steps: register the HTTP server, then log in.- Add an HTTP MCP server entry for 3ngram in your Codex config (a
[mcp_servers.3ngram]block withurlset to the endpoint above). - Authenticate it with
codex mcp login 3ngram. Adding the config alone does not sign you in — the login step is what runs the OAuth flow.
memory:read and memory:write, then receives an access token and a rotating refresh token. No client IDs or secrets to paste by hand. See Codex’s own MCP documentation for the exact config keys and command names, which can vary by version.
A generic MCP client
Any MCP client that supports remote servers over Streamable HTTP works the same way:Point it at the endpoint
Configure a remote/HTTP MCP server with the URL above. For clients that use a
JSON config, the shape is the same as Cursor’s:
Complete OAuth
3ngram is its own OAuth 2.1 authorization server — there is no third-party
identity provider in the token path. The client discovers the OAuth metadata,
registers itself, and opens the consent page. Approve the two scopes and tokens
are issued. See the Quickstart for the step-by-step flow.
Re-authenticate after the migration
If a client stopped reaching 3ngram after the namespace migration, the grant or stored connection is stale and needs to be re-established. There is no separate “reconnect” command — you re-run the connection, which re-registers the client and issues fresh tokens.Re-run the client's add/connect step
Repeat the connection step for your client — for Claude Code that is:then
/mcp → 3ngram. Dynamic client registration runs again, the consent
page opens, and a new access token plus rotating refresh token are issued.If it still fails, disconnect the old grant first
In the dashboard, open Settings → Connected apps, find the stale 3ngram
client, and disconnect it. Disconnecting invalidates every token for that grant.
Then repeat the add step above for a clean registration.
Verify
Ask the client to run a
search. A normal result means the connection is
healthy again. If you use the Claude Code hooks,
3ngram-hook verify should print briefing: 200.Scopes and memories are untouched by re-authentication — it only refreshes the
client’s tokens. Nothing on a write path destroys memory data.