---
title: "Set up your client"
description: "Add, log in and verify — for Claude Code, Codex, Cursor, VS Code, Gemini CLI, Claude Desktop and stdio-only clients."
---

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

# Set up your client

Same three moves everywhere: **add** the server, **log in**, **verify**. Every
example asks for `all` toolsets, which is the right default — narrow it later if
you want a smaller tool list, see [Toolsets](/mcp/toolsets).

### Claude Code

**1. Add**

```bash
claude mcp add --transport http heizen https://api.studio.heizen.work/mcp \
  -H "x-heizen-toolsets: all"
```

**2. Log in**

```bash
claude mcp login heizen
```

Your browser opens for approval. `/mcp` inside a session does the same thing
if you'd rather stay in the TUI.

**3. Verify**

```bash
claude mcp get heizen
```

Signing out later: `claude mcp logout heizen`.

### Codex

**1. Add**

```bash
codex mcp add heizen --http-header "x-heizen-toolsets=all" \
  -- https://api.studio.heizen.work/mcp
```

Or write it to `~/.codex/config.toml` by hand (a project-level
`.codex/config.toml` takes precedence):

```toml title="~/.codex/config.toml"
[mcp_servers.heizen]
url = "https://api.studio.heizen.work/mcp"
auth = "oauth"
http_headers = { "x-heizen-toolsets" = "all" }
```

**2. Log in**

```bash
codex mcp login heizen
```

**3. Verify**

```bash
codex mcp list
```

Signing out later: `codex mcp logout heizen`.

### Cursor

**1. Add**

```json title="~/.cursor/mcp.json"
{
  "mcpServers": {
    "heizen": {
      "url": "https://api.studio.heizen.work/mcp",
      "headers": { "x-heizen-toolsets": "all" }
    }
  }
}
```

Use `.cursor/mcp.json` inside a repo to scope the server to one project.

**2. Log in**

Open **Settings → MCP**. The `heizen` row shows **Needs login** — click it to
start the browser approval.

**3. Verify**

The row turns green with the tool count next to it. Ask the agent to run
`whoami` to confirm the account.

### VS Code

**1. Add**

```json title=".vscode/mcp.json"
{
  "servers": {
    "heizen": {
      "type": "http",
      "url": "https://api.studio.heizen.work/mcp",
      "headers": { "x-heizen-toolsets": "all" }
    }
  }
}
```

Or from the command line:

```bash
code --add-mcp '{"name":"heizen","type":"http","url":"https://api.studio.heizen.work/mcp"}'
```

**2. Log in**

Run **MCP: List Servers** from the command palette, pick `heizen`, then
**Start Server** — VS Code opens the browser for approval. It also prompts on
the agent's first tool call.

**3. Verify**

Same **MCP: List Servers** entry shows *Running*; **Show Output** has the
handshake if it doesn't.

> **Use .vscode/mcp.json**
>
> A workspace-root `.mcp.json` silently drops the `headers` field, which
> leaves you on the `core` toolset with no error.

### Gemini CLI

**1. Add**

```json title="~/.gemini/settings.json"
{
  "mcpServers": {
    "heizen": {
      "httpUrl": "https://api.studio.heizen.work/mcp",
      "headers": { "x-heizen-toolsets": "all" }
    }
  }
}
```

`httpUrl` is what selects the streamable-HTTP transport — `url` would try SSE.

**2. Log in**

```
/mcp auth heizen
```

**3. Verify**

```
/mcp list
```

### Claude Desktop

**1. Add**

**Settings → Connectors → Add custom connector**, paste
`https://api.studio.heizen.work/mcp`.

**2. Log in**

Click **Connect** on the connector and approve in the browser.

**3. Verify**

The connector lists its tools once connected.

The connector UI can't send custom headers, so you get the `core` toolset
only. For the rest, use the stdio bridge on the next tab.

### Other clients

Clients that only speak stdio — Windsurf, Zed, older desktop apps — bridge
through `mcp-remote`, which runs the OAuth flow for them.

**1. Add**

```json
{
  "mcpServers": {
    "heizen": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote",
        "https://api.studio.heizen.work/mcp",
        "--header", "x-heizen-toolsets: all"
      ]
    }
  }
}
```

**2. Log in**

The first launch opens your browser automatically; tokens are cached in
`~/.mcp-auth`. To force a fresh sign-in, `rm -rf ~/.mcp-auth` and restart the
client.

**3. Verify**

Ask the agent to run `whoami`.

Anything that speaks streamable HTTP directly can skip the bridge and use the
endpoint as-is — the server advertises
`/.well-known/oauth-protected-resource` and
`/.well-known/oauth-authorization-server`, so a compliant client discovers
and registers itself with no extra configuration.

> **Confirm you're connected as the right account**
>
> `whoami` is the cheapest check in the toolset — it returns the Studio user the
> connection is acting as. Worth running once after every fresh login.

What the browser step is actually doing is covered in
[Authentication](/mcp/authentication).

Source: https://docs.heizen.work/mcp/clients/index.mdx
