Limite de Requisições
O servidor MCP gasta os mesmos limites da API REST, contados por pessoa na organização — não por token —, mais um limite próprio para o protocolo. Gerar um token novo, ou reautorizar o cliente, não zera o orçamento.
| Orçamento | O que conta | Limite (produção) |
|---|---|---|
| Protocolo MCP | toda requisição a / (initialize, tools/list, ping, tools/call) | 1000/hora por pessoa na organização |
| Leituras da API | cada tools/call de uma tool read | o mesmo da API |
| Escritas da API | cada tools/call de uma tool write ou destructive | o mesmo da API |
| Ações que movem dinheiro | send_to_bank, cancel_dispatch, charge, charge_cancel | o mesmo da API |
Uma chamada de tool nunca é mais barata que o endpoint que ela espelha: ela é contada no orçamento do protocolo e, de novo, no orçamento da API que a mesma chamada REST gastaria — com o mesmo tamanho de orçamento da API, por pessoa. Um agente que varre listagens em laço não contorna o limite que a mesma varredura pagaria por REST. Há também um teto por IP, bem acima de qualquer uso legítimo.
Quando o limite é atingido
No protocolo, o servidor responde 429 e a mensagem JSON-RPC não chega a ser processada:
HTTP/1.1 429 Too Many Requests
Retry-After: 37
Content-Type: application/json
{ "error": { "code": "RATE_LIMITED", "message": "MCP request rate limit exceeded for this person in this organization." } }
No orçamento da API, a tool devolve um resultado com erro, para o modelo ler e esperar:
{ "isError": true, "content": [{ "type": "text",
"text": "{ \"error\": { \"code\": \"RATE_LIMITED\", \"details\": { \"retry_after_seconds\": 37 } } }" }] }
Nos dois casos, espere os segundos indicados antes de tentar de novo.
Gastando menos
Um agente consome o mesmo orçamento que o seu backend — e, nas leituras, esse orçamento é pequeno. Três hábitos resolvem quase tudo:
- Filtre antes de paginar.
finance_payables_list { filters: { status: "pending", due_date: { lte: "2026-11-30" } } }custa uma chamada; trazer tudo para filtrar no modelo custa dezenas. - Use os totais prontos. "Quanto vence este mês" é uma chamada de
finance_payables_aggregates, não uma varredura definance_payables_list. - Peça só as colunas que interessam.
fieldsnão reduz o número de chamadas, mas reduz muito o contexto gasto — veja Listagem, filtros e campos.