Appa Tools documentation for MCP Studio, including setup, guides, concepts, and API-related reference content.

Skip to main content

Errors and limits

Error format​

Every error is JSON with an error field. It is either a short machine-readable code or a human-readable sentence:

{ "error": "Server not found" }

Coded errors add a message you can show to a person, and limit errors add links:

{
"error": "source_limit",
"message": "Free tier includes 2 sources per server. After that, each additional source is $3.",
"limit": 2,
"purchaseUrl": "https://buy.stripe.com/...",
"upgradeUrl": "https://appatools.com/mcp-studio/account/billing"
}

Branch on error, and show message. Each reference page lists the exact codes an operation returns.

Status codes​

StatusMeaningWhat to do
400The request is missing something or is invalidFix the request. error says what
401No API key, or the key is invalid or revokedCheck the Authorization header
402A plan limit on sources was reachedSend purchaseUrl or upgradeUrl to whoever pays
403The key is not allowed to do this, or the account is at its server limitSee error: key_scoped, enterprise_limit, request_log_locked
404No such server, source, tool, or rule on this account, or outside this key's scopeCheck the ID or slug
405The request method is not served at this URLSee the operation's reference
409Conflicts with the current state, such as a duplicate source or a full tool limitSee error
422Understood but refused, such as an inaccessible private repository or a rejected credentialSee error and message
429Rate limitedWait Retry-After seconds
503A feature is temporarily unavailableRetry later

Plan limits​

These are the free plan's limits. Paid plans raise them; see Billing.

LimitFreeError when exceeded
Servers per account3403 enterprise_limit on create
Sources per server2, or 5 on your first server during the trial402 source_limit on create, 402 source_limit_reached when adding
Tools per server3 to 10400
Custom tools per account5409 custom_tool_limit
Retrieval rules per server10409
MCP requests per month50, shared across all of your serversA JSON-RPC error on the MCP endpoint

Check headroom before acting with GET /api/billing/usage.

Rate limits​

OperationLimit
POST /api/mcp/create10 per hour
POST /api/custom-tools15 per hour
POST /api/retrieval-rules25 per hour
MCP endpoint, POST /api/mcp/{id}200 per minute

A limited request returns 429 with a Retry-After header in seconds:

{ "error": "Too many requests. Please try again later." }

Indexing is asynchronous​

Creating a server, adding a source, and refreshing all return as soon as the work is queued. A 200 means it was accepted, not that indexing finished. Poll GET /api/mcp/{id} and read each source's crawlStatus:

crawlStatusMeaning
pendingQueued
crawlingBeing indexed now
completeIndexed and searchable
errorCould not be indexed. crawlError says why

The MCP endpoint answers immediately either way; it simply has less to search until indexing completes.