*MCP › Guides*

# Limits and context

> The catalogue is large. Choose scopes so the client lists only the tools it needs, and ask for small pages.

## Rate limits

The MCP server runs with the key's quota: 120 calls per minute per key across all tools, plus a separate 30 per minute shared by the availability tools. A [`rate_limited`](https://docs.filmo.io/rest-api/errors/rate_limited) result carries `retryAfter` (seconds) and the `detail` “Rate limit exceeded: retry in N seconds”. Every result also reports the quota in `meta.rateLimit` (`limit`, `remaining`, `reset`), because the `RateLimit-*` headers do not travel over MCP.

## The size of the catalogue

`tools/list` is public: it lists all 170 tools, about 1.00 MB of definitions. With a key, it lists only the tools that key can call, so the scopes of the key set how much of your client's context the tools take. With OAuth, clients with deferred authentication list the whole catalogue before sign-in and the server does not announce changes (`tools.listChanged` is false); how each client behaves after you consent is in its Connect page.

## Presets

A preset is a short list of scopes that keeps a client under its tool limit. None includes `ai:ask`. With a key, create it with exactly these scopes. With OAuth, a preset only works if the administrator checks those scopes by hand in the consent screen.

| Preset | Scopes | Tools | Definitions (characters) |
| --- | --- | --- | --- |
| Availability and schedule (read) | `availability:read`, `schedule:read`, `planner:read`, `staff:read`, `vehicles:read`, `items:read`, `spaces:read`, `kits:read`, `account:read` | 20 | 107,420 |
| CRM (read) | `contacts:read`, `crm:read`, `quotes:read`, `projects:read`, `tags:read`, `notes:read`, `users:read`, `account:read` | 18 | 90,993 |
| Rental operations | `orders:read`, `orders:write`, `availability:read`, `items:read`, `contacts:read`, `account:read` | 21 | 158,716 |
| Finance (read) | `invoices:read`, `treasury:read`, `contracts:read`, `supplier-invoices:read`, `purchase-orders:read`, `account:read` | 20 | 113,977 |
| Every read scope | 31 | 76 | 422,451 |
| Every scope | 59 | 170 | 1,049,688 |

## Ask for small pages

- Ask for `limit` 20 and add a filter. The default page is 50 and the maximum 500; a list of 50 contacts or orders can pass a client's output threshold.
- Pass `pagination.nextCursor` back as `cursor`, with the same `limit` and `sort`; the cursor is bound to both.
- Set `includeTotal` only when you need the total.
- In list tools, date filters go in `dateFilters` as `{ field: { gte, lte, gt, lt, on } }`; a bare day is read in the account's business time zone.

## What each client does with size

| Client | Tools | Output |
| --- | --- | --- |
| Claude (web, desktop) | No limit documented | Results cut at about 150,000 characters; 240 s per call |
| Claude Code | No fixed cap; tool search defers definitions | Warns above 10,000 tokens, cuts at 25,000; text over 50,000 characters goes to a file |
| Cursor | About 40 in total (forum threads, not documentation) | Not documented |
| VS Code | 128 per request; virtual tools above | Not documented |
| Windsurf | 100 in total | Not documented |
| Codex | Not documented | `output_token_limit` per tool; 60 s per call by default |

Each client's page has the source and the date. Claude Code also cuts every tool description at 2,048 characters; the longest in this catalogue has 1,718 characters.

## Slow calls

[`filmo_ai_ask`](https://docs.filmo.io/mcp/tools/ai/filmo-ai-ask) can take tens of seconds when a question chains several queries. Set the time a client waits above that where it lets you (Codex's `tool_timeout_sec` is 60 by default; Claude waits 240 seconds). If the result has `needsMoreContext`, rephrase with more detail instead of retrying the same question.

---

Canonical URL: https://docs.filmo.io/mcp/guides/limits-and-context  
Last updated: 2026-10-25