Other clients
Cursor, Claude Desktop, other HTTP MCP clients with OAuth, and bearer tokens for scripts. Includes a link to the dedicated Codex guide.
Fermium is a streamable-HTTP MCP server at https://fermium.app/mcp. Any client that supports that transport and the MCP OAuth flow needs only the URL. The server advertises its authorization server on the first unauthenticated request, so the client discovers everything else itself.
Cursor
Add to ~/.cursor/mcp.json (or the project's .cursor/mcp.json):
{
"mcpServers": {
"fermium": {
"type": "http",
"url": "https://fermium.app/mcp"
}
}
}
Cursor prompts you to sign in the first time a Fermium tool is used. Approve the client once on the consent page; later sessions connect silently.
Codex CLI
For the full walkthrough, including the app and IDE extension, see Connect Codex.
codex mcp add fermium --url https://fermium.app/mcp
If adding the server did not complete sign-in, run:
codex mcp login fermium
Finish signing in through your browser, then open a new Codex session and use /mcp to check the connection.
Claude Desktop
Open Settings, then Connectors, then Add custom connector, and paste https://fermium.app/mcp. Claude Desktop runs the sign-in flow in a browser window.
Any other MCP client
Use the JSON above, or whatever shape your client expects for an HTTP server with a url. The requirements on the client side are:
- streamable HTTP transport (the server is stateless; each request carries the bearer token);
- OAuth 2.1 with PKCE (S256) and dynamic client registration, or a way to supply a static bearer token.
The discovery and token endpoints are documented in Authentication.
Headless tokens for scripts and CI
When there is no browser, mint a static token in the app and send it as a header.
- Open Settings, then API keys and tokens at
fermium.app/app/settings/tokens. - Give the token a name and an expiry in days (default 365,
0for never). Click Create token. - Copy it now. It starts with
dsk_and is shown once; only a hash is stored.
Use it with any MCP client that accepts a fixed Authorization header:
{
"mcpServers": {
"fermium": {
"type": "http",
"url": "https://fermium.app/mcp",
"headers": { "Authorization": "Bearer dsk_..." }
}
}
}
The same token also authenticates the streaming upload endpoint, which is the fastest way to publish a large file from a shell:
curl -T clip.mp4 \
-H "Authorization: Bearer $FERMIUM_TOKEN" \
"https://fermium.app/api/upload?filename=clip.mp4&title=Demo%20clip&retention_days=0"
Keep tokens in the environment or a secret store. Never paste one into a chat; the agent does not need it, and anything in a transcript may be logged. Revoke a token from the same settings page; anything using it stops working immediately.
Which path to use
| Situation | Use |
|---|---|
| A person working with an agent on their machine | OAuth through the client (/mcp in Claude Code, first-use prompt in Cursor) |
| A scheduled job, CI pipeline or server-side agent | A dsk_ token in the environment |
| Uploading files larger than 20 MiB from a script | PUT /api/upload with a dsk_ token, or the create_upload tool from an agent |