---
title: "Tool publication and presentation limits"
description: "Tool publication limits cap each Source at 4,096 Tools and bound each Agent Identity by total Tool size rather than count."
lang: en
status: public-preview
lastUpdated: 2026-09-26
url: https://duale.ai/en/docs/tools/limits
---

## AI-generated summary

Tool limits for Sources, Agent Identities, and model presentation, including per-Source ceilings, size bounds, and the presentation budget.

- A Source publishes up to 4,096 Tools, bounded by a 4 MiB SDK registration payload.
- Agent Identity Tools are bounded by total size, roughly 15,000 small or 2,800 large.
- Duale AI presents roughly ten to sixty Tools directly and makes the rest searchable.
- Limits are split between versioned API contract and release settings that a release can change.
- Tool Call arguments, call rates, and remote server quotas fall outside these limits.

Summaries were generated by AI.

---

One Source publishes up to 4,096 Tools. One Agent Identity holds every Tool its Sources publish, bounded by their
total size rather than by a count. Duale AI presents part of that set to the model and makes the rest searchable.

These limits stop one Source from crowding out the rest. None of them is per-seat or per-plan.

Some limits are part of the versioned API contract. Changing them breaks clients. Other limits are settings that a
release can change.

| Class                  | Limits                                                                              |
| ---------------------- | ----------------------------------------------------------------------------------- |
| Versioned API contract | SDK registration Tool count and payload size, and the Tool Schema ceilings          |
| Release setting        | MCP catalog check ceilings, the per-Agent Tool ceiling, and the presentation budget |

## How many Tools one Source can publish

A Source is one SDK Tool Host or one named MCP Connection, and both carry the same Tool ceiling.

| Limit                       | Value                         | Your action                                                                                                          |
| --------------------------- | ----------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| Tools per Source            | 4,096                         | Split a larger catalog across Sources. Two MCP Connections to the same server stay independent.                      |
| SDK registration payload    | 4 MiB for the request as sent | The request travels compressed, so the Tool count binds first unless nearly every schema sits at its 16 KiB ceiling. |
| One SDK Tool's input schema | 16 KiB                        | Keep parameter descriptions short; they are for the model, not for your API reference.                               |
| One MCP Tool definition     | 512 KiB                       | Set by the remote server. Nothing on your side changes it.                                                           |
| MCP complete catalog check  | 30 seconds, 128 pages, 4 MiB  | A server that paginates in very small pages can stop short of 4,096 Tools.                                           |

[Tools reference](https://duale.ai/en/docs/tools/reference.md) states the remaining per-Connection MCP boundaries: schema depth, node
counts, and Tool Result ceilings.

**A publication that breaks a limit fails as a whole and changes nothing.** An SDK registration answers `422` with
`TOO_MANY_TOOLS`, or `413` with `REQUEST_BODY_TOO_LARGE` when the request itself is too large. Tools already published
stay offered until the Tool Host stops sending heartbeats. An MCP catalog check fails, retries, and shows the failure in
the Connection's catalog state rather than dropping Tools silently.
[Operations](https://duale.ai/en/docs/tools/operations.md) explains reading that state.

## How many Tools one Agent Identity can hold

Nothing caps the Sources you assign to an Agent Identity. An Agent Identity's Tools are bounded by their total size
rather than by a count, and the instructions for that model turn count against the same total.

That bound is roughly **15,000 small Tools, 7,000 mid-sized ones, or 2,800 large ones**. A small Tool takes three
parameters and a short description; a large one takes ten parameters and a 1,000-character description.

| Limit                      | Value                 | Your action                                                              |
| -------------------------- | --------------------- | ------------------------------------------------------------------------ |
| Sources per Agent Identity | No ceiling            | Assign by what the Agent Identity does, not by a count.                  |
| Tools per Agent Identity   | Bounded by total size | Nothing to configure. Split across Agent Identities only past the bound. |

To see what one Agent Identity holds now and what it lost recently, open it in **Agent settings** and select
**Tools**. Read the same list through `GET /tenants/{tenant_id}/agents/{agent_id}/tools`; the [Tools
reference](https://duale.ai/en/docs/tools/reference.md#read-the-organization-tool-catalog-api) states its filters and paging. The
organization **Tools** page counts Tools per Source instead.

**Over that ceiling, Duale AI retries the model turn rather than run it without your Tools.** Retrying does not shrink
the catalog, so the Task stops progressing and ends at its deadline instead of reporting the cause. Recognize it by a Task
that reaches `TASK_DEADLINE_EXCEEDED` with no Tool Call recorded, on an Agent Identity whose assigned Tools grew. Remove
a Source assignment to bring it back under the ceiling.

## How Duale AI presents Tools to the model

Duale AI gives the model the Tools that fit a fixed budget, and a search over the rest.

- **Presented directly**: roughly **ten to sixty** Tools, depending on schema size.
- **Reachable by search**: every other Tool the Agent Identity holds. The model finds them by describing what it needs.

Duale AI does not rank the catalog by relevance today. It fills the budget in the order the catalog returns Tools, so a
Tool presented first is not one the work is more likely to need.

**Give an Agent Identity the Tools its job needs, not every Tool your organization publishes.** A Tool past the budget
costs the model a search step before it can call anything, and a broad Tool set gives it more near-matches to choose
between. Split the work across Agent Identities when one Agent Identity's job spans unrelated systems.

## What these limits do not cover

- **Tool Call arguments and results.** These belong to the call, not the catalog. [Tools
  reference](https://duale.ai/en/docs/tools/reference.md#check-mcp-connection-limits) states them for an MCP Tool, [Authoring
  tools](https://duale.ai/en/docs/sdk/tools.md#keep-the-tool-result-small) for an SDK Tool.
- **Rate of calls.** Nothing here limits how often an Agent Identity calls a Tool.
- **Agent Identities per MCP Connection.** [Tools
  reference](https://duale.ai/en/docs/tools/reference.md#check-mcp-connection-limits) states that ceiling.
- **The remote server's own limits.** An MCP server applies its own quotas to the access context your Connection uses,
  and Duale AI does not see them. A Tool that a server rate-limits fails as a Tool Result.

## Related content

- [MCP compatibility, call contract, and Tool catalog API](https://duale.ai/en/docs/tools/reference.md)
- [Tools: named capabilities supplied by SDK and MCP sources](https://duale.ai/en/docs/tools.md)
- [Documentation for building and operating agent integrations](https://duale.ai/en/docs.md)
- [Platform scope, excluded uses, and behavioral constraints](https://duale.ai/en/docs/scope-and-limits.md)
- [Library limits for sizing files, corpora, and storage plans](https://duale.ai/en/docs/libraries/limits.md)
- [Shared responsibility for agent security controls](https://duale.ai/en/docs/security/shared-responsibility.md)

---

## Sitemap

See the full [Markdown sitemap](https://duale.ai/sitemap.md) for all pages.
