# MCP server

Endpoint, auth, limits and worked examples.

## The endpoint

```
https://go.coremodels.io/mcp
```

One endpoint serves both reads and writes. Which operations a key may perform is decided by the
key, not by the URL.

## Authentication

Authenticate with a bearer token — an API key you generate in CoreModels under **account settings →
API keys**.

```json
{
  "mcpServers": {
    "coremodels": {
      "url": "https://go.coremodels.io/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}
```

That block goes in your client's MCP configuration — `mcp.json` for Cursor, the MCP settings file for
Claude Desktop, or the equivalent for whichever client you use.

> **Note.** The server answers an unauthenticated request with `401 Unauthorized` and a
> `WWW-Authenticate: Bearer` challenge, including on the initial handshake. Configure a key before
> your first call, even if you only intend to read.

## Limits

Each agent gets up to **15 concurrent in-flight requests**. Above that it receives a rate-limit
response and should retry. Enterprise plans set throughput in contract. Plan limits on model size
and project count are on [Plans and limits](/account/plans).

## What to do with it

An assistant with this server attached can search your models, read a type and its elements, and —
with a key that permits writes — create and update them. The point is not the tool list. The point
is that the assistant stops guessing what your columns mean, because it can look the answer up.

Start with [Grounding an assistant](/agents/grounding), then use the
[tool reference](/agents/tools) for signatures.
