Limits
Your MCP calls
Section titled “Your MCP calls”| Limit | Value | Source |
|---|---|---|
| Request body | 1 MB | MAX_BODY_BYTES, apps/cloud/src/mcp/limits.ts |
| Calls per person | 120 a minute | CALLS_PER_MINUTE (the MCP_CALLS rate limit) |
ask_lead calls per person |
10 a minute | ASK_PER_MINUTE (the MCP_ASK rate limit) |
| Client registrations | 5 a minute per IP address | REGISTRATIONS_PER_MINUTE |
Changes in one plan call |
300 (agents: 50) | MAX_PERSON_CHANGES; GraphToolInputs.plan, packages/protocol/src/mcp.ts |
| Item and goal titles | 200 characters | MAX_TITLE_CHARS |
why |
500 characters | MAX_WHY_CHARS |
Any body (also comment.body, capture.body) |
40,000 characters | MAX_BODY_CHARS |
A note (close_item, CloseItem) |
4,000 characters | MAX_NOTE_CHARS |
plan.rationale |
2,000 characters | MAX_RATIONALE_CHARS |
statusNote on imported history |
500 characters | MAX_STATUS_NOTE_CHARS |
ask_lead message, answer text |
8,000 characters | PersonToolInputs, packages/protocol/src/mcp.ts |
ask_lead wait for the reply |
40 seconds | ASK_LEAD_WAIT_MS |
ask_lead reply length |
8,000 characters | ASK_LEAD_REPLY_CHARS |
needs_me entries |
50 | MAX_NEEDS_ME |
Projects read live by list_projects and needs_me |
20, two seconds each | MAX_LIVE_PROJECTS, LIVE_BUDGET_MS |
read_project plan size |
48 KB | MAX_READ_BYTES, apps/cloud/src/project/tools/read.ts |
Evidence entries (close_item, record_kpi) |
20 | GraphToolInputs, packages/protocol/src/mcp.ts |
| Retried calls recognized as the same call | 7 days (Claude Code only; Codex sends no call id) | SEED_TTL_MS |
Sign-in for MCP clients
Section titled “Sign-in for MCP clients”| Limit | Value | Source |
|---|---|---|
| Access token | 15 minutes | OAUTH_ACCESS_TOKEN_TTL_S, apps/cloud/src/auth/options.ts |
| Refresh token | 30 days, rotating | OAUTH_REFRESH_TOKEN_TTL_S |
| Access after Disconnect | ends within 15 minutes | the access token’s lifetime |
Projects
Section titled “Projects”| Limit | Value | Source |
|---|---|---|
| The brief | 8,000 characters | BRIEF_MAX_CHARS, packages/protocol/src/domain/workspace.ts |
| Options on a card from an agent | 8 | GraphToolInputs.ask_human, packages/protocol/src/mcp.ts |
| Worker presets per project | 8 | WorkerSettings, packages/protocol/src/domain/workspace.ts |
| Attempts on an item that changed nothing | 5 since a person last acted | UNATTENDED_ATTEMPT_CAP, packages/core/src/runs.ts |
| Attempts on an item of any kind | 20 since a person last acted | AUTO_ATTEMPT_CEILING, packages/core/src/runs.ts |
| Agents waking each other without a person | 4 in a row, then a card | CHAIN_CAP, packages/core/src/wakes.ts |
Decisions listed by read_project |
20 | DECISIONS_MAX, packages/core/src/overview.ts |
| Limit | Value | Source |
|---|---|---|
| One file | 25 MB | FILE_MAX_BYTES, packages/protocol/src/files.ts |
| File types | PNG, JPEG, GIF, WebP, SVG, PDF, HTML, MP4, WebM, QuickTime, Markdown, text, CSV, JSON | FILE_TYPES, packages/protocol/src/files.ts |
| Uploads | 30 a minute, per run and per person | the FILE_UPLOADS rate limit |
| Per run | 100 new files, 500 MB | defaultFileLimits, apps/cloud/src/files/limits.ts |
| Per person | 2 GB of new files a day (your runs’ uploads count for you) | defaultFileLimits |
| A signed link to a file | 1 hour (for a model provider: 15 minutes) | defaultFileLimits |
Workspaces and runners
Section titled “Workspaces and runners”| Limit | Value | Source |
|---|---|---|
| An invite link | 7 days | invitationExpiresIn, apps/cloud/src/auth/options.ts |
| Addresses per invite batch | 20 | the invite sheet, apps/web/src/features/settings/members-page.tsx |
| A pairing request | 10 minutes | PAIRING_TTL_MS, apps/cloud/src/db/runners.ts |
| Pairings per machine | 1 | ONE_PAIRING_MESSAGE, apps/runner/src/config/runner-config.ts |
| Runs at once on a runner | 4 by default, 1 to 32 | DEFAULT_CAPACITY, CAPACITY_RANGE |
| Runs at once on a profile | the runner’s capacity by default, 0 to 16 | PROFILE_CAPACITY_RANGE |
| Model keys | one per provider (Anthropic, OpenAI) per workspace | decision 0019 |