Where this stands
| Surface | Status | Why |
|---|---|---|
| ChatGPT (connector) | Unproven | Not yet demonstrated. It needs OAuth discovery from the endpoint and a registered hosted callback, both in Fleet's readiness work. |
| Codex (CLI and IDE) | Unproven | The configuration below is documented in Fleet's own runbook, with the bearer supplied by a sign-in helper; an end-to-end run has not been recorded. |
| OpenAI directory domain verification | Planned | This site can serve /.well-known/openai-apps-challenge once a verification token is issued; it answers 404 until then. It counts for verification once the MCP host is fleet.oracis.ai or a subdomain of it. |
Everything on this page describes how the connection is designed to work. The word Unproven means exactly that: nobody has completed it on the deployed service yet.
ChatGPT
- Settings, then Connectors, then Create.
Name it Fleet and paste the endpoint below. Choose OAuth.
- Connect.
ChatGPT reads the server's OAuth metadata and opens the Fleet consent page in a new window.
- Sign in and read the consent.
Client, redirect host, your email, your organization, the scopes. Approve or deny.
- Use it in a conversation.
Enable the connector for the chat; read tools run without confirmation, write tools ask first.
https://fleet-api-fleet-api.up.railway.app/mcp
Codex
Codex configures a streamable HTTP MCP server in ~/.codex/config.toml (or a project's .codex/config.toml) and sends a bearer token read from an environment variable. Fleet's sign-in helper runs the OAuth flow on your machine and places the token in that variable; the token never appears on your screen or in the file.
[mcp_servers.fleet]
url = "https://fleet-api-fleet-api.up.railway.app/mcp"
bearer_token_env_var = "FLEET_ACCESS_TOKEN"
env_http_headers = { "x-fleet-organization" = "FLEET_ORGANIZATION_ID" }
The x-fleet-organization header is needed only when your token carries no organization claim. The sign-in helper and its options are part of the invitation you receive; they are not public downloads yet.
Use cases
Five prompts that exercise the read and write tools. Replace the angle-bracketed values with your own.
Check a validation before you merge
Check the status of Fleet validation <id> and tell me which lane failed and why.
Validate the exact commit you are about to ship
Submit commit <sha> of <owner>/<repo> to Fleet for validation, wait for the receipt, and summarise what it binds.
Ask what Fleet has learned about this kind of work
Before I start, ask Fleet for lessons about "<task in one sentence>" in <owner>/<repo>.
Publish a receipt as a check on the pull request
Request publication of Fleet receipt <id> so it appears as a check on the commit.
Cancel a job you no longer need
Cancel Fleet job <id> and confirm its final state.
What Fleet refuses, on purpose
- A call with no token, an expired token, or a token issued to another client id:
401. - A job, validation or receipt in another organization: not found.
- A budget outside 1 to 2,000 cents or beyond your organization's ceiling: refused, nothing admitted.
- A commit that changes its own verification policy:
policy_changed.
Troubleshooting
- ChatGPT cannot complete the OAuth step
- Expected today: see Where this stands.
- Codex answers 401
FLEET_ACCESS_TOKENis not set in the environment Codex runs in, or the 8-hour session expired. Run the sign-in helper again in that shell.validator_unavailable (ref …)- Nothing ran. Quote the ref to support.
The general list is on the documentation page.