# Limits and errors

How much a connection can ask, how big an answer can be, and every error the server can return, with what to do about it.

Source: https://360marketview.com/docs/mcp/limits/

## Limits

|                   | Limit                                                                                                                                                    |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Requests          | 120 a minute per account, across all its connections                                                                                                     |
| One answer        | 200,000 characters. A longer one is refused so the app can ask for less.                                                                                 |
| Connections       | 10 at a time                                                                                                                                             |
| Changes           | 10 a minute per connection; 20 new watchlists, notes and alerts a day per account — see [Changes and safety](/docs/mcp/changes/#limits-on-changes)       |
| Lists in one call | up to 50 symbols for prices, 8 for a comparison, 100 a page of trades                                                                                    |
| History           | daily prices for up to a year, weekly for 2 and 5 years; up to 20 years of financial statements; 24 months of insider trades; 5 years of Congress trades |

## How errors arrive

There are two kinds.

**The connection is refused.** The whole request fails with an HTTP status and a JSON body:

```json
{
  "error": {
    "code": "UNAUTHENTICATED",
    "message": "This MCP link is not valid. Make a new token and update the connector."
  }
}
```

**One tool fails.** The request succeeds, and the tool’s result is marked as an error with a code and a message the AI app can read and act on — usually by asking you or trying again with less:

```json
{ "error": { "code": "UNKNOWN_SYMBOL", "message": "…" } }
```

Messages are written for people. Internal details are never sent.

## Connection errors

| Status | Code                                     | Means                                                  | What to do                                                                |
| ------ | ---------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------- |
| 401    | `UNAUTHENTICATED`                        | The token is wrong, was mistyped, or was disconnected. | Make a new connection in **Settings › AI apps** and update the connector. |
| 403    | `EMAIL_NOT_VERIFIED`                     | The account’s email isn’t confirmed yet.               | Finish signing up with the code from your email.                          |
| 403    | `ACCOUNT_PENDING`                        | The account isn’t open yet.                            | You’ll get an email when it opens.                                        |
| 403    | `SUBSCRIPTION_ENDED`                     | “Your access has ended.” The trial or plan is over.    | Write to support to continue. Nothing is deleted.                         |
| 403    | `ACCOUNT_SUSPENDED` · `ACCOUNT_REJECTED` | The account can’t be used.                             | Write to support.                                                         |
| 405    | `METHOD_NOT_ALLOWED`                     | Something other than `POST` was sent.                  | The server answers `POST` only; MCP apps do this for you.                 |
| 429    | `RATE_LIMITED`                           | More than 120 requests in a minute.                    | Wait a moment.                                                            |

## Tool errors

| Code                     | Means                                                                                                                      |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------- |
| `NOT_FOUND`              | No such portfolio, watchlist, note or alert **on your account** — the same answer whether it doesn’t exist or isn’t yours. |
| `UNKNOWN_SYMBOL`         | No stock or ETF with that symbol.                                                                                          |
| `VALIDATION_ERROR`       | A value is out of range or doesn’t fit — for example a reminder in the past.                                               |
| `RESULT_TOO_LARGE`       | “The answer is too large. Ask for a shorter period, fewer symbols or fewer rows.”                                          |
| `MCP_READ_ONLY`          | A manage tool on a Read only connection. Make a new connection with **Read and manage**.                                   |
| `MCP_WRITE_RATE_LIMITED` | More than 10 changes in a minute on this connection.                                                                       |
| `MCP_DAILY_LIMIT`        | 20 new watchlists, notes and alerts in 24 hours.                                                                           |
| `MCP_ALERT_LIMIT`        | 50 alerts already on.                                                                                                      |
| `TELEGRAM_NOT_LINKED`    | Telegram was asked for, but the account hasn’t connected it.                                                               |
| `INTERNAL_ERROR`         | “Something went wrong. Try again in a moment.”                                                                             |

When making a connection in the app, an eleventh one is refused with `MCP_TOKEN_LIMIT`: disconnect one you no longer use first.
