Concepts
Rush MCP server
Hand Rush a task from claude.ai, ChatGPT, Claude Code, Cursor or Codex: connect api.prix.dev/mcp by signing in or with an API key, then start runs as tool calls.
The Rush API is also an MCP server, at https://api.prix.dev/mcp over Streamable HTTP. An agent
in claude.ai, ChatGPT, Claude Code, Cursor, Codex or a Notion Custom Agent connects to it and hands Rush work as a tool
call: start a run, wait for it, read the PR, report or files it returns.
Connect from claude.ai or ChatGPT
Add https://api.prix.dev/mcp as a custom connector (in claude.ai: Settings, Connectors, Add custom
connector; in ChatGPT: Settings, Connectors, with developer mode on). Leave the client ID and secret
empty. The app opens Rush in your browser: sign in, check the address it will send you back to,
pick the organization and approve. The app then lists Rush's tools.
Approving needs an admin of the organization, and the app acts as you: its runs use your accounts and show in Runs. It appears in the console under Developers as a connected app, where Disconnect ends it at once. Unused for 30 days, it ends by itself and the app asks you to sign in again.
Any MCP client that follows the MCP authorization spec
connects the same way: the server answers an unsigned request with 401 and a WWW-Authenticate
header naming https://api.prix.dev/.well-known/oauth-protected-resource/mcp, and Rush registers
the client (RFC 7591) and signs it in with OAuth 2.1 and PKCE.
Connect with an API key
Create an API key in the console under Developers, then add the server with it:
claude mcp add --transport http rush https://api.prix.dev/mcp --header "Authorization: Bearer $RUSH_API_KEY"
codex mcp add rush --url https://api.prix.dev/mcp --bearer-token-env-var RUSH_API_KEY
In Cursor, add this under mcpServers:
{"rush": {"url": "https://api.prix.dev/mcp", "headers": {"Authorization": "Bearer rk_live_…"}}}
A key or a sign-in connects. A person's console session token is refused with 403 FORBIDDEN.
What the agent can call
| Sessions | create_session, get_session, wait_for_sessions, list_sessions, send_session_message, cancel_session, list_session_events, get_session_changes, get_session_artifact |
|---|---|
| Saved agents | list_agents, get_agent, create_agent, update_agent |
| Projects | list_projects, get_project |
| What a run can use | list_models, list_connections, list_repositories |
Each tool makes the API call it names with your key or sign-in, so it reaches exactly what that reaches. A
refusal comes back as the API's code and message plus what to do next.
A run takes minutes
create_session returns at once with the session id. wait_for_sessions then waits up to 50
seconds per call for one or several sessions to settle, so the calling agent can start a batch of
runs and collect them as they finish. For a server that should hear back without holding a tool
call open, set a webhook on the key.
Frequently asked questions
Which MCP clients work?
Any client that speaks Streamable HTTP: claude.ai and ChatGPT connectors and other clients sign in
with OAuth; Claude Code, Codex, Cursor and Notion Custom Agents can also send an API key in the
Authorization header.
Does the run happen on my machine?
No. Every run gets its own cloud sandbox with a computer and a browser. Your client only sends the request and reads the result.
What does a run cost?
The same as a run started through the API. See Usage and billing.