MCP Rate Limits
Carbon Arc applies rate limits to MCP tools to keep performance consistent across users. Limits are generally enforced per client, typically your organization’s shared client ID. If no client ID is assigned, limits are applied per user based on email.
Limits vary by workload. Lightweight discovery and search tools support higher throughput, while more compute-intensive analytical and Research tools have lower limits.
Rate limits use a token bucket model. Each tool has a burst allowance for short periods of higher activity, which continuously refills toward its sustained hourly rate.
For Platform purchase and quote limits across the UI, SDK, and API, see Platform Rate Limits.
How rate limits work
- Limits are enforced per client, typically using your organization’s shared client ID. Accounts without a client ID fall back to a per-user limit.
- Each tool uses a single token bucket. The Burst and Sustained limits below describe the capacity and refill rate of that bucket, not separate limits.
- Research tools have a burst limit of 1 and refill approximately every 3 minutes, supporting up to 20 calls per hour.
- If you reach a limit, the response includes a
Retry-Afterheader andretry_aftervalue indicating how many seconds to wait before retrying.
Limits by tool
Core tools
| Tool | Burst | Sustained (per hour) |
|---|---|---|
Search Entities (search_entities) | 45 | 500 |
Search Insights (search_insights) | 45 | 500 |
Get Insights from Entity (get_insights_from_entity) | 30 | 350 |
Get Entities from Insight (get_entities_from_insight) | 30 | 350 |
Text-to-Insight (text_to_insight) | 12 | 120 |
Framework-to-Insight (framework_to_insight) | 12 | 120 |
get_insights_from_entity and get_entities_from_insight have the same limits but are tracked independently. Usage of one does not count against the other.
Research tools
| Tool | Burst | Sustained (per hour) |
|---|---|---|
Entity Research (entity_research) | 1 (every ~3 min) | 20 |
Forecast (forecast) | 1 (every ~3 min) | 20 |
Acquire (acquire) | 1 (every ~3 min) | 20 |
Retain (retain) | 1 (every ~3 min) | 20 |
Target (target) | 1 (every ~3 min) | 20 |
Upsell (upsell) | 1 (every ~3 min) | 20 |
Platform / discovery tools
| Tool | Burst | Sustained (per hour) |
|---|---|---|
Search Docs (search_docs) | 30 | 350 |
Data Library (data_library) | 30 | 350 |
Get Filter Options (get_filter_options) | 30 | 350 |
Ontology (ontology) | 12 | 120 |
Event tools
| Tool | Burst | Sustained (per hour) |
|---|---|---|
Search Events (search_events) | 5 | 30 |
Get Events from Entity (get_events_from_entity) | 5 | 30 |
Get Insights from Event (get_insights_from_event) | 5 | 30 |
Get Entities from Event (get_entities_from_event) | 5 | 30 |
Get Events from Insight (get_events_from_insight) | 5 | 30 |
Event tools are documented on the MCP Events page.
If you hit a limit
When a request is rate limited:
- Read the wait time from
Retry-Afterorretry_after. - Wait for the specified window.
- Retry the request.
Avoid tight retry loops, which can keep the request rate limited.
For longer-running Research tools, make sure your client timeout is also configured appropriately. See MCP Timeouts & OAuth.
Related guides
- MCP Tools — review available MCP tools
- Platform Rate Limits — review purchase and quote limits
- Custom Integrations — connect custom MCP clients