Límite de Peticiones
El servidor MCP acepta 600 solicitudes por minuto por persona y
organización — el sub y el org del token, no el token en sí.
Cambiar de token no reinicia el presupuesto: un token nuevo, sea de una nueva autorización OAuth o un nuevo token personal, de la misma persona en la misma organización cae en el mismo bucket. La misma persona en otra organización tiene presupuesto propio.
Una llamada de tool nunca es más barata que la ruta que refleja: la
solicitud se cuenta una vez en el bucket del propio MCP y, cuando es un
tools/call, otra vez en el bucket de la API v1 (600 por minuto), con la misma
clave de persona y organización. Las rutas con límite propio también lo
aplican: kadu_executions_search tiene 30 más por minuto, como
GET /v1/executions/search. Es deliberado — un agente que recorre listados en
bucle no debe poder esquivar el límite que el mismo recorrido pagaría por la
API.
Los intentos con token rechazado se limitan por IP, no por token: un token que no se verifica no puede tener bucket propio. Una solicitud sin ningún token — el primer paso de todo cliente, antes del OAuth — no cuenta como intento.
Cuando se alcanza el límite
Agotado el bucket del MCP, el servidor responde 429 — el mensaje JSON-RPC
no llega a procesarse:
HTTP/1.1 429 Too Many Requests
Retry-After: 37
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1793280037
Cache-Control: no-store
Content-Type: application/json
{ "error": { "code": "TOO_MANY_REQUESTS", "message": "Rate limit exceeded." } }
Espera los segundos de Retry-After antes de la siguiente solicitud.
X-RateLimit-Limit y X-RateLimit-Remaining dicen el tamaño del bucket y lo
que queda; X-RateLimit-Reset es cuándo se renueva, en segundos desde la época
Unix.
Agotado el bucket de la ruta, la solicitud HTTP es 200 y el resultado de la
tool vuelve isError con el error de la API, RATE_LIMITED — mira
Errores. Espera unos segundos antes de llamar de nuevo. Los
límites de la API están en Límites de solicitudes.
Gastar menos
Un agente consume presupuesto como tu backend, y además paga contexto por cada fila que trae. Tres hábitos resuelven casi todo:
- Filtra antes de paginar.
kadu_executions_list { status: "failed", started_at_gte: "2026-10-01" }cuesta una solicitud; recorrer todas las ejecuciones para filtrar en el modelo cuesta decenas. - Lee solo lo nuevo. Para seguir una ejecución en curso, pasa
after_sequenceakadu_executions_events_listyafter_idakadu_executions_logs_list, en lugar de releer todo en cada vuelta. - No consultes en bucle. Una aprobación por enlace se consulta cuando la persona dice que decidió, no cada pocos segundos.