Saltar al contenido principal

Limite de Requisições

Os limites do MCP são os mesmos da API REST, contados por conta e por hora. O que decide o balde de uma requisição é o que ela faz:

RequisiçãoBaldeValor padrão
tools/call de uma tool de escrita (inclusive as destrutivas)O mesmo balde de POST da API REST5000 por hora
tools/call de leitura, resources/read, prompts/get e GET /Um balde de leitura próprio do MCP, com o mesmo valor do limite de GET da conta60 por hora
initialize, server/discover, ping, as listagens (tools/list, resources/list, …), completion/complete e notificaçõesNenhum—
Qualquer requisição sem conta autenticadaPor IP120 por minuto

Os valores da tabela são o padrão da conta. Se a sua conta tem limites próprios, valem os dela.

  • Escrita gasta o mesmo orçamento da API. Um agente que emite boletos consome os mesmos POST que a sua integração.
  • Leitura tem balde próprio. No balde de GET da API REST, uma conversa de agente gastaria o limite das suas integrações; por isso as leituras do MCP contam à parte, com o mesmo valor.
  • Conectar não gasta. Handshake, descoberta e listagens não contam.
  • Corpo que não dá para classificar conta como escrita. Um corpo que não é JSON, ou grande demais para ser lido pela classificação, vai para o balde de escrita.

Quando o limite é atingido​

O servidor responde 429, e a mensagem JSON-RPC não chega a ser processada:

HTTP/1.1 429 Too Many Requests
Content-Type: application/json; charset=utf-8
ratelimit-name: rate_limits_mcp_read_hour
ratelimit-limit: 60
ratelimit-remaining: 0
ratelimit-reset: 1793037600
retry-after: 1834
{ "status": 429, "errors": [{
"title": "Limite de leituras do MCP(60) por hora excedido para essa conta.",
"code": 429,
"detail": "Veja mais em https://docs.banking.kobana.com.br/pt/api/overview/rate-limit"
}] }

Espere os segundos de retry-after antes da próxima requisição. Para aumentar o limite da conta, fale com o suporte ou com o comercial: veja Limite de requisições da API.

Gastando menos​

Um agente consome o mesmo orçamento que o seu backend, e ainda paga contexto por linha que traz. Três hábitos resolvem quase tudo:

  • Filtre antes de paginar. { "filters": { "status": "overdue", "expire_at": { "lt": "2026-11-01" } } } custa uma chamada; varrer todos os boletos para filtrar no modelo custa dezenas.
  • Peça só os campos que interessam. fields: ["amount", "expire_at"] não reduz o número de chamadas, mas reduz muito o contexto gasto. Veja Listagem, filtros e campos.
  • Use resources/list para "o mais recente". Anexar um registro recente como resource não gasta chamada de listagem.