Arrakis for agents
Your agent can search the market, rent a GPU, run its job and shut the machine down. You decide the budget before it starts, and it cannot spend past it.
Connect in three steps
Arrakis serves MCP over HTTP from the same address as this site. There is nothing to install.
-
Create a token for your agent
In the console, open API & agents and choose a token for an agent. It gets the read and rent scopes, a spend cap and a maximum rental length. From the CLI:
arrakis tokens create --name eval-agent \ --scope read --scope rent \ --spend-limit 50 --max-rental-hours 6 --expires-in 7d -
Add the MCP endpoint
Use the token as a bearer header.
Connect over MCPclaude mcp add --transport http arrakis $ARRAKIS_URL/mcp \ --header "Authorization: Bearer ark_..."{ "mcpServers": { "arrakis": { "url": "$ARRAKIS_URL/mcp", "headers": { "Authorization": "Bearer ark_..." } } } }Transport Streamable HTTP URL $ARRAKIS_URL/mcp Header Authorization: Bearer ark_...export ARRAKIS_TOKEN=ark_... export ARRAKIS_BASE_URL=$ARRAKIS_URL arrakis mcp$ARRAKIS_URLis this site's address. Replaceark_...with an API token from the console. -
Give it a job
Say how long the machine may live. Your agent passes that as the removal time.
Run my eval suite on an H100: rent one for three hours, run eval.py, copy results back, then terminate it.
Eight tools
Each tool says what it costs before your agent calls it. Errors come back with the API's own explanation.
| Tool | What it does | Cost |
|---|---|---|
| search_gpus | Lists available machines, cheapest first, filtered by GPU, count, price per GPU-hour and country. | Free |
| get_market_summary | The lowest price and the supply of each GPU family right now. | Free |
| get_balance | The account's balance, what the running machines cost per hour, when the money runs out, and the token's cap. | Free |
| rent_gpu | Rents a machine for at most termination_hours and returns its SSH command. Creates and returns an idempotency key if none is passed. | Hourly price, an hour at a time, until removal |
| list_instances | The machines the account is running. | Free |
| get_instance | One machine's state, SSH command and removal time. | Free |
| terminate_instance | Stops a machine now. Billing stops with it. | Ends charges |
| schedule_removal | Moves a machine's removal time. | Changes the maximum cost |
What keeps unattended spend safe
These rules live in the API, so they hold for MCP, the CLI and plain HTTP alike.
Spend caps
A capped token counts each rental at its worst case, hourly price times removal hours, and refuses the one that would pass the cap.
Required removal
A capped token cannot rent without termination_hours, or past its maximum rental length.
Retry safety
The same idempotency_key always returns the same machine. A retry never rents twice.
Scoped tokens
Read, rent, manage and billing are separate. A token cannot mint one with scopes it lacks.
Prepaid by the hour
A rental pays its first hour up front and each later hour as it begins. When the balance cannot pay, the machine stops.
Expiry
Agent tokens can expire on a date you choose. An expired token stops working everywhere at once.
This site reads well to agents
Every page has a Markdown twin. Start with llms.txt.
- The index for language models/llms.txt
- Everything on this site in one file/llms-full.txt
- OpenAPI 3.1 spec/openapi.json
- Interactive API reference/docs
- The MCP endpoint and tools/docs/mcp.md
- Search, rent and stop, step by step/docs/agent-walkthrough.md
- Live market summary, no token needed/v1/market/summary
- Live prices for every GPU/gpus
- This page as Markdown/agents.html.md
Things to ask
Plain requests work. Name a time limit and a budget and your agent will respect both.
Find the cheapest GPU with at least 48 GB of memory, rent it for two hours, and tell me how to SSH in.
Fine-tune with train.py on four RTX 4090s for up to six hours, keep checkpoints on my volume, then stop the machine.
Check whether an H200 is available under $2.50 an hour. If it is, tell me the price and the country.
Questions about agents and GPUs
Anything else is in the MCP guide or the API reference.