# Connecting AI Apps & Editors (MCP)

> Step-by-step guides for connecting ChatGPT, Claude, Google Gemini, Cursor, VS Code, Zed, Windsurf, Claude Code, Codex CLI, and Gemini CLI to Glow over MCP.

Connect your AI chat app, IDE, or CLI agent to Glow over the Model Context Protocol (MCP). Your client can inspect your workspace, build automations on a live canvas, read traces, save versions, and run tests.

**At a glance**

- **Use it to:** Connect ChatGPT, Claude, Gemini, Cursor, VS Code, Zed, Windsurf, Claude Code, Codex CLI, or Gemini CLI via OAuth 2.1 or a personal token
- **Find it:** Workflow Assistant header → Connect AI tool, or Your account → MCP (/app/user/account?tab=mcp)
- **Cost:** Free to connect, inspect, build drafts, and validate · Tests use shared workspace balances
- **Limits:** Requires Admin, Manager, or Member role · Up to 25 active OAuth app and personal token connections per user · Optional 100-automation allowlist

[1. Open Quick Connect](https://docs.getglow.ai/developers/mcp/client-setup#open-quick-connect) → [2. Sign In or Add Token](https://docs.getglow.ai/developers/mcp/client-setup#connect-chat-and-ai-apps) → [3. Approve Read Tools Only](https://docs.getglow.ai/developers/mcp/client-setup#create-a-scoped-token) → [4. Verify with list_workspaces](https://docs.getglow.ai/developers/mcp/client-setup#verify-read-access)

## [Supported Clients at a Glance](https://docs.getglow.ai/developers/mcp/client-setup#supported-clients-at-a-glance)

**OAuth 2.1 + PKCE Sign-In** (Browser Consent (No Token Needed))

- Used by ChatGPT, Claude, Gemini, Cursor, VS Code, Zed, Claude Code, Codex CLI, and Gemini CLI.
- Connect to https://api.getglow.ai/mcp and choose your workspace and preset in the browser.
- Update permissions, workspace scope, or Data Store access in place without reconnecting.

**Personal Scoped Token (glow_mcp2_…)** (Manual Config & Headless Tools)

- Used by Windsurf, local JSON/TOML configs, and custom Streamable HTTP clients.
- Create in Your account → MCP (+ Create token) and pass Authorization: Bearer .
- Supports independent regeneration, 90-day renewal, and 100-automation allowlists.

| Client                                  | Category               | Setup Path                                                                            |
| :-------------------------------------- | :--------------------- | :------------------------------------------------------------------------------------ |
| **[ChatGPT](https://docs.getglow.ai/developers/mcp/client-setup#chatgpt)**                 | Chat & AI apps         | **Plugins → + → Add custom MCP server** → paste Server URL → sign in.                 |
| **[Claude](https://docs.getglow.ai/developers/mcp/client-setup#claude-desktop)**           | Chat & AI apps         | **Customize → Connectors → + Add → Add custom connector** → paste URL → sign in.      |
| **[Google Gemini](https://docs.getglow.ai/developers/mcp/client-setup#gemini)**            | Chat & AI apps         | **Settings → Connected Apps → Add a custom app** at `gemini.google.com` → `@Glow`.    |
| **[Cursor](https://docs.getglow.ai/developers/mcp/client-setup#cursor)**                   | IDEs & developer tools | Click **Add to Cursor** (OAuth), or add token to `~/.cursor/mcp.json`.                |
| **[VS Code](https://docs.getglow.ai/developers/mcp/client-setup#vs-code)**                 | IDEs & developer tools | Click **Add to VS Code** (OAuth), or add token to `.vscode/mcp.json`.                 |
| **[Zed](https://docs.getglow.ai/developers/mcp/client-setup#zed)**                         | IDEs & developer tools | Click **Copy setup & Open Zed** and add URL in `settings.json`.                       |
| **[Windsurf](https://docs.getglow.ai/developers/mcp/client-setup#windsurf)**               | IDEs & developer tools | Click **Create token & copy configuration** and paste into `mcp_config.json`.         |
| **[Claude Code](https://docs.getglow.ai/developers/mcp/client-setup#claude-code)**         | IDEs & developer tools | Run `claude mcp add --transport http --scope user glow https://api.getglow.ai/mcp`.   |
| **[Codex CLI](https://docs.getglow.ai/developers/mcp/client-setup#codex-cli)**             | IDEs & developer tools | Run `codex mcp add glow --url https://api.getglow.ai/mcp` and `codex mcp login glow`. |
| **[Gemini CLI](https://docs.getglow.ai/developers/mcp/client-setup#gemini-cli)**           | IDEs & developer tools | Run `gemini mcp add --transport http --scope user glow https://api.getglow.ai/mcp`.   |
| **[Other MCP clients](https://docs.getglow.ai/developers/mcp/client-setup#other-clients)** | IDEs & developer tools | Connect to `https://api.getglow.ai/mcp` via OAuth 2.1 + PKCE or `Bearer <token>`.     |

## [Where to Open Quick Connect](https://docs.getglow.ai/developers/mcp/client-setup#open-quick-connect)

You need an **Admin**, **Manager**, or **Member** role in an MCP-enabled workspace.

**Connect AI tool Modal** (On the Canvas)

- Click Connect AI tool in the Workflow Assistant header, welcome card, or More (⋯) menu.
- Switch between Chat & AI apps and IDEs & developer tools on the canvas.
- Click Full MCP settings & token management to manage existing connections.

**Your Account → MCP** (In Settings)

- Open Your account → MCP (/app/user/account?tab=mcp) or Team settings → MCP → My MCP connection.
- Launch one-click IDE installers, copy the Server URL, or mint personal tokens.
- Manage up to 25 active connections with in-place permission edits and Pause all.

## [Connect Chat & AI Apps (Sign In with Glow)](https://docs.getglow.ai/developers/mcp/client-setup#connect-chat-and-ai-apps)

ChatGPT, Claude, and Google Gemini use OAuth 2.1 + PKCE. Copy the **Server URL** (`https://api.getglow.ai/mcp`) from **Your account → MCP**. Never paste a browser canvas URL (`https://app.getglow.ai/...`).

**ChatGPT**

### [ChatGPT](https://docs.getglow.ai/developers/mcp/client-setup#chatgpt)

#### Copy the Server URL and open ChatGPT

Click **Copy URL & Open ChatGPT** in **Quick Connect** to open [ChatGPT Plugins](https://chatgpt.com/plugins).

#### Add the custom MCP server

Open **Plugins → + → Add custom MCP server** and paste `https://api.getglow.ai/mcp`.

#### Sign in with Glow and choose permissions

Pick your workspace and preset (`Build drafts (Recommended)` by default). Click **Allow access**.

**Claude (Web, Desktop & Mobile)**

### [Claude (Web, Desktop & Mobile)](https://docs.getglow.ai/developers/mcp/client-setup#claude-desktop)

#### Copy the Server URL and open Claude

Click **Copy URL & Open Claude** in **Quick Connect** to open [Claude Connectors](https://claude.ai/customize/connectors).

#### Add the custom connector

Open **Customize → Connectors → + Add → Add custom connector** and paste `https://api.getglow.ai/mcp`. On **Team** and **Enterprise** plans, an owner adds the connector under **Organization settings → Connectors** first.

#### Authorize in your browser

Complete the Glow sign-in and permission screen in your browser.

**Local `claude_desktop_config.json` alternative (token-based):**

```json filename="claude_desktop_config.json"
{
  "mcpServers": {
    "glow": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://api.getglow.ai/mcp",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": { "AUTH_HEADER": "Bearer PASTE_YOUR_GLOW_MCP_TOKEN_HERE" }
    }
  }
}
```

**Google Gemini**

### [Google Gemini](https://docs.getglow.ai/developers/mcp/client-setup#gemini)

#### Open Gemini Connected Apps on a computer

Click **Copy URL & Open Gemini** in **Quick Connect** to open [Google Gemini Connected Apps](https://gemini.google.com/apps).

#### Add Glow as a custom app

Open **Settings → Connected Apps → Add a custom app**, paste `https://api.getglow.ai/mcp`, and click **Next**.

#### Sign in and mention `@Glow` in chat

Approve permissions in your browser. Type `@Glow` in Gemini chat on web or mobile.

> **First time using Glow?** Signing in during MCP OAuth without an account
> creates your first Free workspace automatically. Keep **Open Glow in a new tab
> to watch your automation build** checked for live canvas updates.

## [Editor Configuration Guides](https://docs.getglow.ai/developers/mcp/client-setup#editor-configuration-guides)

Switch **Quick Connect** to **IDEs & developer tools** for one-click installers, browser OAuth sign-in, or personal token snippets.

**Cursor**

### [Cursor](https://docs.getglow.ai/developers/mcp/client-setup#cursor)

**Option 1: One-click OAuth install (Recommended).** Click **Add to Cursor** in **Quick Connect** to install `glow` and sign in via browser.

**Option 2: Personal token in `~/.cursor/mcp.json`.** Add this snippet and check **Cursor Settings → MCP**:

```json filename="~/.cursor/mcp.json"
{
  "mcpServers": {
    "glow": {
      "url": "https://api.getglow.ai/mcp",
      "headers": { "Authorization": "Bearer PASTE_YOUR_GLOW_MCP_TOKEN_HERE" }
    }
  }
}
```

**VS Code**

### [VS Code](https://docs.getglow.ai/developers/mcp/client-setup#vs-code)

**Option 1: One-click OAuth install (Recommended).** Click **Add to VS Code** in **Quick Connect** to install `glow` and sign in via browser.

**Option 2: Personal token in `.vscode/mcp.json`.** Run **MCP: Add Server** (**Global**) or add this snippet:

```json filename=".vscode/mcp.json"
{
  "servers": {
    "glow": {
      "type": "http",
      "url": "https://api.getglow.ai/mcp",
      "headers": { "Authorization": "Bearer PASTE_YOUR_GLOW_MCP_TOKEN_HERE" }
    }
  }
}
```

**Zed**

### [Zed](https://docs.getglow.ai/developers/mcp/client-setup#zed)

**Option 1: Browser OAuth sign-in (Recommended).** Click **Copy setup & Open Zed** in **Quick Connect**, or add `glow` in `settings.json`:

```json filename="settings.json"
{
  "context_servers": {
    "glow": { "url": "https://api.getglow.ai/mcp" }
  }
}
```

**Option 2: Personal token header.** Add `headers` in `settings.json` ([Zed MCP guide](https://zed.dev/docs/ai/mcp)):

```json filename="settings.json"
{
  "context_servers": {
    "glow": {
      "url": "https://api.getglow.ai/mcp",
      "headers": { "Authorization": "Bearer PASTE_YOUR_GLOW_MCP_TOKEN_HERE" }
    }
  }
}
```

**Windsurf**

### [Windsurf](https://docs.getglow.ai/developers/mcp/client-setup#windsurf)

Select **Windsurf** in **Quick Connect** and click **Create token & copy configuration**. Paste into `~/.config/devin/mcp_config.json`:

```json filename="~/.config/devin/mcp_config.json"
{
  "mcpServers": {
    "glow": {
      "serverUrl": "https://api.getglow.ai/mcp",
      "headers": { "Authorization": "Bearer PASTE_YOUR_GLOW_MCP_TOKEN_HERE" }
    }
  }
}
```

**Claude Code**

### [Claude Code](https://docs.getglow.ai/developers/mcp/client-setup#claude-code)

**Option 1: Browser OAuth sign-in.** Add the HTTP server, then run `/mcp` in Claude Code and select **glow**:

```bash filename="Terminal"
claude mcp add --transport http --scope user glow https://api.getglow.ai/mcp
```

**Option 2: Personal token command or `.mcp.json`.** Click **Create token & copy command** in **Quick Connect**:

```bash filename="Terminal"
claude mcp add --transport http glow https://api.getglow.ai/mcp --header "Authorization: Bearer PASTE_YOUR_GLOW_MCP_TOKEN_HERE"
```

Or use `GLOW_MCP_TOKEN` in `.mcp.json` ([HTTP setup](https://code.claude.com/docs/en/mcp#option-1-add-a-remote-http-server) and [env expansion](https://code.claude.com/docs/en/mcp#environment-variable-expansion-in-mcp-json)):

```json filename=".mcp.json"
{
  "mcpServers": {
    "glow": {
      "type": "http",
      "url": "https://api.getglow.ai/mcp",
      "headers": {
        "Authorization": "Bearer ${GLOW_MCP_TOKEN}"
      }
    }
  }
}
```

**Codex CLI**

### [Codex CLI](https://docs.getglow.ai/developers/mcp/client-setup#codex-cli)

**Option 1: Browser OAuth sign-in (Recommended):**

```bash filename="Terminal"
codex mcp add glow --url https://api.getglow.ai/mcp
codex mcp login glow
```

**Option 2: Personal token in `~/.codex/config.toml`:**

```toml filename="~/.codex/config.toml"
[mcp_servers.glow]
url = "https://api.getglow.ai/mcp"
http_headers = { "Authorization" = "Bearer PASTE_YOUR_GLOW_MCP_TOKEN_HERE" }
```

**Gemini CLI**

### [Gemini CLI](https://docs.getglow.ai/developers/mcp/client-setup#gemini-cli)

**Option 1: Browser OAuth sign-in (Recommended).** Register Glow and run `/mcp auth glow` inside `gemini`:

```bash filename="Terminal"
gemini mcp add --transport http --scope user glow https://api.getglow.ai/mcp
```

**Option 2: Manual `~/.gemini/settings.json`:**

```json filename="~/.gemini/settings.json"
{
  "mcpServers": {
    "glow": { "httpUrl": "https://api.getglow.ai/mcp" }
  }
}
```

**Other Clients**

### [Other Clients](https://docs.getglow.ai/developers/mcp/client-setup#other-clients)

- **OAuth 2.1 + PKCE (`https://api.getglow.ai/mcp`):** Publishes `/.well-known/oauth-protected-resource` and `/.well-known/oauth-authorization-server` with `localhost` callbacks, CIMD, and RFC 7591 Dynamic Client Registration.
- **Bearer token authentication:** Click **Create token & copy configuration** under **Other clients** in Quick Connect:

```json filename="mcp.json"
{
  "mcpServers": {
    "glow": {
      "type": "http",
      "url": "https://api.getglow.ai/mcp",
      "headers": { "Authorization": "Bearer PASTE_YOUR_GLOW_MCP_TOKEN_HERE" }
    }
  }
}
```

## [Live Canvas Companion & In-Chat Account Links](https://docs.getglow.ai/developers/mcp/client-setup#live-canvas-companion)

1. **Companion canvas (`?source=mcp`):** Workflow tools return `canvasUrl`, `canvasMarkdownLink`, and a **Workflow Card** (`ui://glow/workflow`). Companion mode keeps the **Workflow Assistant** drawer closed and suppresses build banners.
2. **Automatic tab following:** An idle Glow tab switches to the edited automation automatically and frames new Steps with `fitView`.
3. **One-click account links (`?source=mcp&connectStep=N`):** `get_connections` and `get_workflow` return `connectUrl` and `connectMarkdownLink`. Clicking opens that Step's connection dialog and binds matching sibling Steps.

## [Manage Connections, Presets, and Scoped Tokens](https://docs.getglow.ai/developers/mcp/client-setup#manage-connections-presets-and-scoped-tokens)

### [Create a Scoped Token or Authorize an App](https://docs.getglow.ai/developers/mcp/client-setup#create-a-scoped-token)

1. Open **Your account → MCP** or **Team settings → MCP → My MCP connection**. Click **+ Create token** to mint a manual `glow_mcp2_…` token.
2. Pick a **Permissions** level and **Workspaces** scope (**Only `{Workspace}`**, **All my workspaces** for Admins, or **Limit to specific automations** up to 100 automations). When your client asks for tool approval, **Choose “Always allow” for read tools only**. Ask every time before running or changing automations:

   | Permission Level               | Tools in `tools/list`           | What It Allows                                                                                                                                          |
   | :----------------------------- | :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------ |
   | **Read only**                  | `16`                            | Inspect automations, schemas, and run history. Nothing can be changed or run (`read` Data Store access in tests).                                       |
   | **Build drafts (Recommended)** | `25` (`22` on legacy no-test)   | Default for new tokens, OAuth sign-in, and Quick Connect. Read all automations, create/edit drafts, and test drafts (`test_step`, `run_workflow_test`). |
   | **Full access**                | `25` (`26` with `Manages Live`) | Everything in **Build drafts**, plus Live tests and `write` Data Store test access by default. Live edits require **Manage Live automations**.          |

3. Set the optional checkboxes and **Data stores** test level (`None`, `Read`, or `Write`) below the permission levels:
   - **Allow tests to use workspace secrets** (**Tests use secrets** badge): lets MCP tests read `{{ $secret.* }}` and `{{ $key.* }}`. Without it, Steps needing an unapproved secret fail with `MCP_TEST_SECRETS_REFUSED`.
   - **Manage Live automations** (**Manages Live** badge for Admins on **Full access**): lets the connection edit, publish, or pause Live automations (`set_workflow_status`).
4. Click **Generate token** (or **Allow access** on OAuth consent). Each user can keep up to **25** active connections. Connections expire **90 days** after creation or renewal, or after **30 idle days** (with a 7-day email warning and **Renew**).

### [Change Permissions, Renew, or Pause in Place](https://docs.getglow.ai/developers/mcp/client-setup#configure-your-client)

- Click **Change permissions** in **Your account → MCP** to switch between **Read only**, **Build drafts**, and **Full access**.
- Adjust the **Data stores** test level (`None`, `Read`, `Write`), workspace scope, or 100-automation allowlist without reconnecting.
- Toggle **Allow tests to use workspace secrets** or **Manage Live automations**, click **Renew** for 90 days, or click **Pause all**. Start a new chat after changing permissions so your client refreshes `tools/list`.

### [Verify Read Access](https://docs.getglow.ai/developers/mcp/client-setup#verify-read-access)

Ask your AI client to call `list_workflows` or run `/build-automation`, `/explain-automation`, `/optimize-automation`, `/debug-failed-run`, or `/test-and-verify-draft`. Discovery, validation, and direct edits cost zero credits.

## [Troubleshooting](https://docs.getglow.ai/developers/mcp/client-setup#troubleshooting)

| Symptom                                                 | Check and Next Action                                                                                                                                                                                                                  |
| :------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `401` or authentication fails                           | Re-authenticate OAuth or update `Authorization: Bearer …` if a token was regenerated, revoked, or expired (90 days or 30 days idle).                                                                                                   |
| `list_workspaces` is empty                              | Check workspace scope in **Your account → MCP**, confirm your **Admin**, **Manager**, or **Member** role, and verify MCP is not paused.                                                                                                |
| `workspace_not_authorized` or `workflow_not_authorized` | Pass IDs from `list_workspaces` and `list_workflows`, or click **Change permissions** to update the workspace or 100-automation allowlist.                                                                                             |
| A write or testing tool is missing or refused           | Check the preset in **Your account → MCP** and **Maximum MCP permission** in **Team settings → MCP**, then start a new chat.                                                                                                           |
| `active_workflow_protected`                             | Edit a draft instead. Live edits require **Full access**, **Manage Live automations**, workspace **Allow Live changes**, Admin role, and `allowActiveWorkflowMutation: true`.                                                          |
| `token_limit_reached` (max 25 active connections)       | Revoke an unused connection in **Your account → MCP** or reuse an existing entry via **Change permissions** / **Regenerate**.                                                                                                          |
| Client returns HTML or `404` when connecting            | Use the MCP Server endpoint (`https://api.getglow.ai/mcp`), never a browser canvas URL (`https://app.getglow.ai/...`).                                                                                                                 |
| A test times out, loses its response, or is unavailable | Follow [Step recovery](https://docs.getglow.ai/developers/mcp/testing#recover-a-step-test), [whole-run recovery](https://docs.getglow.ai/developers/mcp/testing#recover-a-whole-automation-test), or [availability guidance](https://docs.getglow.ai/developers/mcp/testing#whole-automation-availability). |

For failed automation runs, see [Troubleshooting & Common Errors](https://docs.getglow.ai/reference/troubleshooting). Keep tokens and secrets out of support messages.

**Verify it works**

- **Run:** In your connected AI client, ask: Call list_workspaces in Glow
- **You should see:** The client returns your Glow workspace name, role, and current Step credit and Glow AI token balances.

## What's Next?

- 👉 **[Build and validate with MCP tools](https://docs.getglow.ai/developers/mcp/tool-reference)** before [testing the automation](https://docs.getglow.ai/developers/mcp/testing).
- **[MCP Administration](https://docs.getglow.ai/manage/workspace-settings/mcp)**: configure workspace budgets and access restrictions.
