Rush
Hand Rush a task from any MCP client: an agent does the work in its own cloud sandbox and returns a PR, report or files, with the full trajectory.
Documentation
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 org key
Create an org 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 org 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.