# Connect a client

Step-by-step setup of the Pozy MCP server in Claude, Claude Code, ChatGPT, Cursor, Codex, VS Code and any other MCP client, with OAuth or an API key.

Every client needs the same URL, `https://mcp.pozy.ai/mcp`. Clients that support OAuth need nothing else: they open a browser and you sign in to Pozy. Clients without OAuth, and agents, send an API key in the `Authorization` header.

Before you start, connect at least one account in the [Pozy dashboard](https://pozy.ai/dashboard), so the assistant has something to work with.

> **Check the connection the same way everywhere:**
> 
> After setup, ask: "Which Pozy workspace am I connected to, and which accounts are there?" The assistant calls `whoami` and `list_accounts`. If it lists your accounts, you are done.

## Claude

Works in Claude on the web, desktop and mobile.

### Add a custom connector

Open **Settings → Connectors** and choose **Add custom connector**.

### Fill in the details

- **Name:** Pozy
- **Remote MCP server URL:** `https://mcp.pozy.ai/mcp`

Leave the advanced OAuth fields empty. Pozy registers the client on its own.

### Sign in

Click **Add**, then **Connect**. Sign in to Pozy, pick the workspace if you have several, and approve. The connector is now available in new chats; turn it on from the tools menu in the message box.

On Team and Enterprise plans an owner may need to add the connector for the organization first.

## Claude Code

```bash Terminal
claude mcp add --transport http pozy https://mcp.pozy.ai/mcp
```

Start Claude Code, type `/mcp`, select **pozy** and choose **Authenticate**. Your browser opens for the Pozy sign-in.

Add `--scope user` to make the server available in every project, or `--scope project` to share it with your team through `.mcp.json`.

To use an API key instead of OAuth, for example on a build machine:

```bash Terminal
claude mcp add --transport http pozy https://mcp.pozy.ai/mcp \
  --header "Authorization: Bearer $POZY_API_KEY"
```

## ChatGPT

Custom MCP connectors in ChatGPT need developer mode, which is available on paid plans.

### Turn on developer mode

Open **Settings → Apps & Connectors → Advanced settings** and switch on **Developer mode**.

### Create the connector

Back in **Apps & Connectors**, choose **Create**:

- **Name:** Pozy
- **MCP server URL:** `https://mcp.pozy.ai/mcp`
- **Authentication:** OAuth

### Sign in

ChatGPT sends you to Pozy to sign in and approve. Then enable the connector in a chat from the tools menu.

Workspace admins on Business and Enterprise plans control whether members can add custom connectors.

## Cursor

Add the server to `~/.cursor/mcp.json` for all projects, or `.cursor/mcp.json` for one:

```json
{
  "mcpServers": {
    "pozy": {
      "url": "https://mcp.pozy.ai/mcp"
    }
  }
}
```

Open **Cursor Settings → MCP**. Pozy shows as needing login; click it to sign in.

With an API key instead:

```json
{
  "mcpServers": {
    "pozy": {
      "url": "https://mcp.pozy.ai/mcp",
      "headers": { "Authorization": "Bearer pz_live_..." }
    }
  }
}
```

## Codex

```bash Terminal
codex mcp add pozy --url https://mcp.pozy.ai/mcp
codex mcp login pozy
```

The first command writes the server to `~/.codex/config.toml`; the second runs the OAuth sign-in. To use an API key from the environment instead:

```toml
[mcp_servers.pozy]
url = "https://mcp.pozy.ai/mcp"
bearer_token_env_var = "POZY_API_KEY"
```

## VS Code

Add the server to `.vscode/mcp.json` in your project (or to your user `mcp.json` through **MCP: Open User Configuration**):

```json
{
  "servers": {
    "pozy": {
      "type": "http",
      "url": "https://mcp.pozy.ai/mcp"
    }
  }
}
```

Click **Start** above the server entry. VS Code asks you to sign in; then the Pozy tools appear in Copilot Chat in agent mode.

To use an API key without writing it into the file, let VS Code prompt for it once and store it securely:

```json
{
  "inputs": [
    { "type": "promptString", "id": "pozy-key", "description": "Pozy API key", "password": true }
  ],
  "servers": {
    "pozy": {
      "type": "http",
      "url": "https://mcp.pozy.ai/mcp",
      "headers": { "Authorization": "Bearer ${input:pozy-key}" }
    }
  }
}
```

## Any other client

Use these settings in any client that supports remote MCP servers:

| Setting | Value |
| --- | --- |
| Transport | Streamable HTTP |
| URL | `https://mcp.pozy.ai/mcp` |
| Auth, if the client supports OAuth | OAuth 2.1 with PKCE. The client discovers everything from the URL and registers itself. |
| Auth, otherwise | Header `Authorization: Bearer pz_live_...` |

### Clients that only run local servers

Some clients only start local stdio servers (a `command` plus `args`). Bridge them to the hosted server with [`mcp-remote`](https://www.npmjs.com/package/mcp-remote):

```json
{
  "mcpServers": {
    "pozy": {
      "command": "npx",
      "args": ["-y", "mcp-remote@latest", "https://mcp.pozy.ai/mcp"]
    }
  }
}
```

That signs in with OAuth through your browser. To send a key instead, pass it through an environment variable, which avoids problems with spaces in arguments on some systems:

```json
{
  "mcpServers": {
    "pozy": {
      "command": "npx",
      "args": ["-y", "mcp-remote@latest", "https://mcp.pozy.ai/mcp", "--header", "Authorization:${POZY_AUTH}"],
      "env": { "POZY_AUTH": "Bearer pz_live_..." }
    }
  }
}
```

> **Config files do not expand shell variables:**
> 
> A value like `$POZY_API_KEY` inside a JSON config is sent as those literal characters by most clients. Paste the key itself, or use the client's own mechanism for secrets (such as VS Code `inputs` or Codex `bearer_token_env_var`).

## Agents and scripts

For an agent with no person at a browser, create a dedicated API key in **Developers → API keys** and send it as a bearer token. The [overview](https://pozy.ai/docs/mcp) has a complete `tools/call` request. Prefer a [read-only key](https://pozy.ai/docs/getting-started/authentication) for agents that only report, and a [profile-scoped key](https://pozy.ai/docs/build/tenant-keys) for agents that work for one client.

## After changing a config file

Restart the client completely. Most clients read MCP settings only at startup. If tools still do not appear, see [Troubleshooting](https://pozy.ai/docs/mcp/troubleshooting).
