> ## Documentation Index
> Fetch the complete documentation index at: /docs/llms.txt
> Use this file to discover all available pages before exploring further.

# AX MCP Authentication

> Authenticate to the Arize AX MCP server with OAuth sign-in or an API key sent as a Bearer token, and learn how to use write tools safely.

The Arize AX MCP server accepts two kinds of credentials: an OAuth access token from signing in with your Arize account, or an Arize API key. Both go in the `Authorization: Bearer <token>` header. The server holds no permission logic of its own. It forwards your credential to the REST API on every call, so an agent sees and changes only what your Arize role allows, and a `404` on a resource you cannot read means the same thing it means over HTTP.

## How the server picks a credential

The server looks at the bearer token on each request:

* A token that starts with `ak-` is treated as an Arize API key. Every Arize API key starts with `ak-`.
* Any other bearer token is validated as an OAuth access token.

This means a key that does not start with `ak-` is rejected with a `401`. The `Bearer` prefix is mandatory. A request that sends the bare key in the `Authorization` header, with no `Bearer`, returns `401`.

## Choose OAuth or an API key

| Use | When |
| - | - |
| OAuth sign-in | Interactive clients where you sign in as yourself, such as Claude or Codex. |
| API key | Scripts, CI, headless agents, and Cursor. |

## Sign in with OAuth

With OAuth, your client sends you to Arize to sign in, and then holds an access token on your behalf. You do not create or paste a key.

The server is configured for OAuth in the US, EU, and CA regions. The sign-in page is the Arize app for your region. For the server URL in each region, see [endpoints](/docs/api-clients/mcp/endpoints.md).

These clients support OAuth sign-in:

* Claude on claude.ai and the Claude Desktop connector. See [connect your client](/docs/api-clients/mcp/connect.md).
* Codex, using `codex mcp login`. See [connect your client](/docs/api-clients/mcp/connect.md).

Cursor does not support OAuth against this server. Connect Cursor with an API key in the `Authorization` header.

### What the token can do

The OAuth token carries a single scope, `mcp:connect`. There are no per-tool scopes, so the token does not narrow what you can do. It carries your full permissions in Arize, the same as a user API key.

## Use an API key

### Get an API key

1. Go to **Settings → API Keys** in Arize AX.
2. Click **+ New API Key**, name it after the client you are connecting, then click **Create Key**.
3. Copy the key. Arize shows it once.

Both [user keys and service keys](/docs/ax/security-and-settings/api-keys.md) work. A user key inherits your own permissions, which is usually what you want for a personal editor. Use a service key when the connection outlives your account, such as a shared agent or a team workstation.

Export it so your client config does not carry the secret:

```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
export ARIZE_API_KEY=<your-arize-api-key>
```

Send it as `Authorization: Bearer <your-arize-api-key>`. Revoking the key in **Settings → API Keys** cuts off access for that key.

> [!WARNING]
>
> Treat a key like a password. Keep it out of committed files, and revoke it in **Settings → API Keys** if it leaks. A key lets an agent read and change every resource your role can reach, including deleting it.

## Use write tools safely

The server exposes tools that create, update, and delete resources, not only read them. Keep these points in mind before you give an agent a credential:

* Tool annotations such as `readOnlyHint` and `destructiveHint` are hints for your client. The server does not enforce them.
* The server has no confirmation step and no dry run. A destructive tool call runs as soon as the client sends it.
* The server has no role checks of its own. The credential carries your Arize permissions, and the REST API enforces them.

For agents that run without you watching, use an API key tied to a service account or role with the least access the work needs. In clients that support it, set destructive tools to require your manual approval. For the list of tools and what each one changes, see the [tool catalog](/docs/api-clients/mcp/tool-catalog.md).

## Next steps

> [card] [Endpoints](/docs/api-clients/mcp/endpoints.md)
>
> Regional URLs for the MCP server.

> [card] [Connect your client](/docs/api-clients/mcp/connect.md)
>
> Per-client setup for Claude, Claude Code, Cursor, Codex, and others.

> [card] [Tool catalog](/docs/api-clients/mcp/tool-catalog.md)
>
> Every tool, grouped by resource.
