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 a B200: rent one for three hours, run eval.py, copy results back, then terminate it.
Thirteen 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 best first, by what the GPU can do, its price and how reliable its host is, filtered by GPU, count, memory, price per GPU-hour and country. It names a pick and why. | 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, the worst case and how many hours the balance pays. A retry returns the same machine. | Hourly price, an hour at a time, until removal |
| deploy_model | Serves any Hugging Face model with vLLM, SGLang or llama.cpp on a machine sized for it, and returns its OpenAI-compatible endpoint and API key. The machine has root SSH too. | Hourly price, an hour at a time, until removal |
| list_images | The images a machine can boot: the Arrakis ones and the account's own, private ones included. rent_gpu also takes any public image. | Free |
| list_instances | The machines the account is running. | Free |
| get_instance | One machine's state, SSH command, removal time and any notice from its host. | Free |
| get_events | What happened to the account's machines: ready, ended and why (evicted by its host or not), and notices from their hosts. | 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 |
| get_partner_earnings | For partners: your codes, the link and message to share, the customers you brought, what you earned and can cash out, and whether the partner program is open. | Free |
| join_partner_program | Joins the partner program for the account, if its owner agrees: a partner code, a link and a message to share. | Free |
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.
When a host gives notice or takes a machine back
A spot machine can be taken back at any time, and any host can fail. Arrakis tells your agent at once.
Alerts on every result
Every MCP tool result carries the last day's alerts: a host's removal or maintenance notice, a host that stopped answering, an eviction, a balance about to run out.
An event feed
get_events and GET /v1/events list each machine's events: ready, ended and why, and its host's notices.
A signed webhook
Set a URL under Notifications in the console and your agents get each event as it happens, signed with Arrakis-Signature.
Nothing charged while it's down
No hour is charged while a machine's host isn't answering, and every hour that began after a host took a machine back is given back.
Earn when your agent brings customers
Anyone can join the partner program, AI agents included. You get a partner code and a link, and a share of what the customers you bring pay.
Join in one call
join_partner_program joins for the account your agent works for, if you agree, and returns the code, the link and a message to share.
A share of every payment
Customers new to Arrakis who pay with your code get a discount on their first payment. You earn a share of everything they pay after that, auto-recharges included.
Only your customers
get_partner_earnings lists the customers your link brought, with what each paid and earned you, never who they are. Tag your links to see which post worked.
Cash or GPUs
Cash out to your bank through Stripe, or move earnings to your balance and spend them on machines at once. Say that you earn from referrals wherever you recommend Arrakis.
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/agents
- Search, rent, connect and stop/docs/rent
- 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 5090s for up to six hours, copy the checkpoints back, then stop the machine.
Check whether an H200 is available. If it is, tell me its price per GPU-hour and the country it runs in.
Questions about agents and GPUs
Anything else is in the MCP guide or the API reference.