# Agentes y MCP

Dale a un agente un token con el que no pueda gastar de más y conéctalo por MCP.

## Dar al agente su propio token

En **API & agents**, crea un token para el agente solo con lo que necesita:

- Alcances **read** y **rent** (no **manage** ni **billing**).
- Un **límite de gasto** en dólares, una **duración máxima de alquiler** en horas y una **fecha de caducidad**.

El token se muestra una sola vez. Guárdalo en el almacén de secretos del agente, nunca en un prompt ni en un repositorio. Un token con límite debe fijar una hora de apagado en cada alquiler, y se rechaza cualquier alquiler que supere su límite.

## Conéctalo por MCP

El endpoint MCP es `$ARRAKIS_URL/mcp`, con el token del agente. Funciona con el transporte HTTP en streaming de MCP y respuestas JSON simples.

Claude Code:

```sh
claude mcp add --transport http arrakis $ARRAKIS_URL/mcp --header "Authorization: Bearer ark_..."
```

Cursor (`mcp.json`):

```json
{
  "mcpServers": {
    "arrakis": {
      "url": "$ARRAKIS_URL/mcp",
      "headers": { "Authorization": "Bearer ark_..." }
    }
  }
}
```

## Herramientas

| Herramienta | Qué hace |
|---|---|
| `search_gpus` | Busca máquinas, las mejores primero: según lo que puede hacer la GPU, su precio y lo fiable que es su host. Propone una y explica por qué. Filtros: tipo de GPU, mínimo y máximo de GPU, memoria, precio máximo por GPU-hora, país. |
| `get_market_summary` | Precios en tiempo real y disponibilidad por familia de GPU. |
| `get_balance` | Lo que puede pagar el saldo. |
| `rent_gpu` | Alquila una máquina y la devuelve con su comando SSH. Arranca `template_id` o cualquier `image` pública. Facturable. |
| `deploy_model` | Sirve un modelo de Hugging Face con vLLM, SGLang o llama.cpp en una máquina a su medida y devuelve su endpoint y su clave de API ([Desplegar un modelo](/es/docs/models)). Facturable. |
| `list_images` | Las imágenes de Arrakis y las que has guardado, para `template_id`. |
| `list_instances` | Tus máquinas. |
| `get_instance` | Una máquina, con su estado actualizado y cualquier aviso de su host. |
| `get_events` | Qué ha pasado con tus máquinas: cuáles están listas, cuáles han terminado y por qué (si las retiró su host o no), y los avisos de sus hosts. Además, cada resultado de una herramienta incluye las alertas del último día. |
| `terminate_instance` | Detiene y elimina una máquina. |
| `schedule_removal` | Fija cuándo se elimina sola una máquina. |
| `get_partner_earnings` | Socios: tus códigos y tu enlace, los clientes que has traído, lo que has ganado y si el programa de socios está abierto. |
| `join_partner_program` | Se une al programa de socios en nombre de la cuenta, si su propietario está de acuerdo ([/partners](/es/partners)). |

## Los reintentos nunca alquilan dos veces

Asigna una `idempotency_key` estable a cada alquiler que quieras hacer. Reintentar con la misma clave devuelve la misma máquina en lugar de una segunda factura. Por MCP, una llamada sin clave que repite la misma máquina, el mismo nombre y las mismas horas en un plazo de 10 minutos también devuelve la primera máquina.

## Un buen primer prompt

> Alquila una B200 durante 3 horas, ejecuta python eval.py, trae los resultados y luego detén la máquina.

Más: [toda la documentación](/es/docs.md) · [OpenAPI](/openapi.json) · [llms.txt](/es/llms.txt)
