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

# Connect to the AX MCP Server

> Connect Claude, Claude Desktop, Claude Code, Cursor, or Codex to the Arize AX MCP server with OAuth sign-in or an API key, then verify and troubleshoot.

The MCP server is hosted, so there is nothing to install. You need the [endpoint for your region](/docs/api-clients/mcp/endpoints.md) and a way to [authenticate](/docs/api-clients/mcp/authentication.md): either sign in with your Arize account (OAuth) or use an Arize API key. Every request sends the credential as `Authorization: Bearer <token>`. The `Bearer` prefix is required.

The URLs on this page use the US endpoint, `https://api.arize.com/mcp`. If your account is in the EU or CA region, use your regional URL from the [endpoints page](/docs/api-clients/mcp/endpoints.md) instead.

## Add the server to your client

> [tab] Claude Code
>
> > [tab] OAuth
> >
> > **1. Register the server**
> >
> > Register the server with the `arize-cli` OAuth client:
> >
> > ```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> > claude mcp add --transport http --client-id arize-cli arize-ax https://api.arize.com/mcp
> > ```
> >
> > **2. Sign in**
> >
> > Run `/mcp` inside Claude Code, select `arize-ax`, and choose **Authenticate** to sign in with your Arize account.
> >
> > **3. Check the connection**
> >
> > Run `claude mcp list`, which shows whether each server connected, or run `/mcp` inside Claude Code for interactive status. Remove it with `claude mcp remove arize-ax`.
>
> > [tab] API key
> >
> > **1. Register the server**
> >
> > Registering at project scope writes to `.mcp.json` in the repository root:
> >
> > ```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> > claude mcp add-json arize-ax --scope project '{
> >   "type": "http",
> >   "url": "https://api.arize.com/mcp",
> >   "headers": {"Authorization": "Bearer ${ARIZE_API_KEY}"}
> > }'
> > ```
> >
> > Use `--scope user` instead to make the server available in every project on your machine.
> >
> > **2. Check the connection**
> >
> > Run `claude mcp list`, which shows whether each server connected, or run `/mcp` inside Claude Code for interactive status. Remove it with `claude mcp remove arize-ax`.

> [tab] Claude Desktop
>
> Claude lists Arize AX in its connector directory. The listing is labeled Community.
>
> **1. Open the listing**
>
> Open the [Arize AX listing](https://claude.ai/directory/arize-ax) in the Claude connector directory.
>
> **2. Add the connector**
>
> Click **Sign in to add**.
>
> **3. Sign in**
>
> Sign in with your Arize account when prompted.

> [tab] Cursor
>
> Cursor requires an API key in the `Authorization` header. OAuth sign-in is not supported there.
>
> **1. Add the server**
>
> Go to `Settings` → `MCP` → **Add new global MCP server**, then add this entry to the JSON config:
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> "arize-ax": {
>   "type": "http",
>   "url": "https://api.arize.com/mcp",
>   "headers": {"Authorization": "Bearer ${ARIZE_API_KEY}"}
> }
> ```
>
> **2. Restart Cursor**
>
> Restart Cursor if the tools do not appear.

> [tab] Codex
>
> > [tab] OAuth
> >
> > **1. Register the server**
> >
> > Register the server with the `codex` OAuth client:
> >
> > ```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> > codex mcp add arize-ax --url https://api.arize.com/mcp --oauth-client-id codex
> > ```
> >
> > **2. Sign in**
> >
> > Sign in with your Arize account:
> >
> > ```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> > codex mcp login arize-ax
> > ```
> >
> > **3. Check the connection**
> >
> > Run `codex mcp get arize-ax`, or list every configured server with `codex mcp list`. Remove it with `codex mcp remove arize-ax`.
>
> > [tab] API key
> >
> > **1. Register the server**
> >
> > Register the server with the name of the environment variable that holds your key:
> >
> > ```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> > codex mcp add arize-ax --url https://api.arize.com/mcp --bearer-token-env-var ARIZE_API_KEY
> > ```
> >
> > This writes to `~/.codex/config.toml`. `--bearer-token-env-var` points Codex at the variable name, so the key itself never lands in the file. Codex sends it as `Authorization: Bearer <value>` on every request.
> >
> > You can also edit `config.toml` directly:
> >
> > ```toml theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> > [mcp_servers.arize-ax]
> > url = "https://api.arize.com/mcp"
> > bearer_token_env_var = "ARIZE_API_KEY"
> > ```
> >
> > **2. Check the connection**
> >
> > Run `codex mcp get arize-ax`, or list every configured server with `codex mcp list`. Remove it with `codex mcp remove arize-ax`.

> [tab] Other clients
>
> Any client that speaks Streamable HTTP and supports custom headers works. The config shape is the same:
>
> ```json theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
> {
>   "mcpServers": {
>     "arize-ax": {
>       "type": "http",
>       "url": "https://api.arize.com/mcp",
>       "headers": {"Authorization": "Bearer ${ARIZE_API_KEY}"}
>     }
>   }
> }
> ```
>
> Some clients expand `${...}` from your environment and some do not. If the connection fails with an auth error, replace the placeholder with the key directly to rule it out.
>
> A few clients take a top-level `"auth"` field instead of `headers` and send it as `Authorization: Bearer <key>` for you.

## Verify the connection

Ask your agent something that requires a tool call, such as "list my Arize projects." It should call `list_projects` and come back with names rather than a guess.

To test outside a client, use the [MCP Inspector](https://github.com/modelcontextprotocol/inspector) CLI. It needs Node 22.19.0 or newer and runs through `npx` with no install:

```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
npx @modelcontextprotocol/inspector --cli https://api.arize.com/mcp \
  --transport http \
  --header "Authorization: Bearer $ARIZE_API_KEY" \
  --method tools/list \
  --format json | jq .result
```

Call a tool the same way:

```bash theme={"theme":{"light":"github-light-default","dark":"github-dark-default"}}
npx @modelcontextprotocol/inspector --cli https://api.arize.com/mcp \
  --transport http \
  --header "Authorization: Bearer $ARIZE_API_KEY" \
  --method tools/call \
  --tool-name list_projects \
  --tool-arg name=my-project \
  --format json | jq .result
```

The CLI exits non-zero on failure. Exit code `3` means authentication failed and exit code `4` means the server was unreachable.

## Troubleshooting

> [!NOTE]
>
> Connection errors such as `401`, `404`, `429`, and timeouts are covered in the [FAQ](/docs/api-clients/mcp/faq.md#connecting-and-troubleshooting).

## Next steps

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

> [card] [Authentication](/docs/api-clients/mcp/authentication.md)
>
> Sign in with OAuth or get an API key, and use write tools safely.

> [card] [Tool catalog](/docs/api-clients/mcp/tool-catalog.md)
>
> Every tool your agent can now call, with arguments and pagination rules.

> [card] [Skills](/docs/ax/skills/overview.md)
>
> Run scripted workflows for datasets, experiments, evaluators, and prompt optimization. Skills and the CLI suit repeatable jobs.
