---
updatedAt: 2026-07-30T21:00:14.000Z
agentTools:
  projectIndex: https://docs.wistia.com/llms.txt
---

# Using Wistia's MCP server

Learn how to use Wistia's MCP server.

We have an MCP server that can be used to allow an AI agent to manage
your Wistia data. This document will guide you on how to connect
to the MCP server.

## Server details

Our Wistia MCP server is located at `https://api.wistia.com/mcp/api`. It supports
both OAuth and access token authentication. If you choose OAuth the agent
should add the appropriate bearer token for you. If you use an access token
you need to add the `Authorization: Bearer <token>` in your configuration.

Currently, the Wistia MCP server is only available to owners and managers<br />of an account.

## Connecting to Claude

Claude (the claude.ai web app) connects to remote servers through custom
connectors. ChatGPT-style approval controls let you decide, per action, how
much oversight the agent gets.

* Open "Settings" in Claude
* Navigate to "Connectors"
* Click "Add custom connector"
* Paste the URL `https://api.wistia.com/mcp/api`
* Click "Add"

Now find the Wistia connector and click "Connect". When you do this, a browser
window should open up prompting you to login. Once you login, make sure to
authorize Claude.

### Reviewing action permissions

Once connected, open the connector's settings to review which Wistia actions
Claude can run and how much approval each one needs. By default every action
requires your approval before it runs. You can change this per individual
action, or for whole groups of actions (for example, all "get" actions, or all
"create"/"destroy" actions), setting each to one of:

* **Always allow** — Claude runs the action without asking
* **Ask each time** — Claude requests your approval before running the action (the default)
* **Never allow** — Claude cannot run the action

Read-only "get" actions are generally safe to always allow; leave actions that
create or destroy data set to ask for approval unless you have a reason to
change them.

## Connecting to Claude Code

### OAuth

To connect to Claude Code using OAuth run the command:

```bash
claude mcp add --transport http wistia https://api.wistia.com/mcp/api
```

From here (re)start Claude Code and run `/mcp` and then do the following:

* Select "wistia"
* Select "Authenticate"

When you do this, a browser window should open up prompting you to
login. Once you login, make sure to authorize Claude Code.

### Access Token

To connect to Claude Code using an access token, use the command:

```bash
claude mcp add --header "Authorization: Bearer <token>" --transport http wistia https://api.wistia.com/mcp/api
```

Make sure NOT to select "Authenticate" when using access tokens. Doing so will have no effect.

## Connecting to Cursor

### OAuth

* Open "Cursor Settings" in Cursor
* Navigate to "Tools & MCP"
* Click "New MCP Server"

Edit the file so it looks as follows:

```js
{
  "mcpServers": {
    // other MCP servers ...,
    "wistia":  {
      "url": "https://api.wistia.com/mcp/api",
    }
  }
}
```

Now do the following:

* Find the new MCP server and click the "Connect" button and agree to any prompts from Cursor.

When you do this, a browser window should open up prompting you to
login. Once you login, make sure to authorize Cursor.

### Access Token

* Open "Cursor Settings" in Cursor
* Navigate to "Tools & MCP"
* Click "New MCP Server"

Edit the file so it looks as follows:

```js
{
  "mcpServers": {
    // other MCP servers ...,
    "wistia":  {
      "url": "https://api.wistia.com/mcp/api",
      "headers": {
        "Authorization": "Bearer <token>"
      }
    }
  }
}
```

## Connecting to VS Code

VS Code connects to remote MCP servers through GitHub Copilot's agent mode.
Note that VS Code uses a top-level `servers` key (not `mcpServers`) and
requires `"type": "http"`.

* Open the Command Palette and run "MCP: Add Server"
* Select "HTTP", enter the URL `https://api.wistia.com/mcp/api`, and name it "wistia"
* Choose whether to save it to your workspace (`.vscode/mcp.json`) or your user settings

This adds an entry that looks as follows:

```js
{
  "servers": {
    "wistia": {
      "type": "http",
      "url": "https://api.wistia.com/mcp/api"
    }
  }
}
```

Start the server when prompted. When you do this, a browser window should open
up prompting you to login. Once you login, make sure to authorize VS Code.

To use an access token instead of OAuth, add a `headers` block with
`"Authorization": "Bearer <token>"` to the `wistia` entry.

## Connecting to Claude Desktop

Claude Desktop connects to remote servers through custom connectors.
Remote servers cannot be added through `claude_desktop_config.json`, which
only supports local servers. Custom connectors are available on the Free,
Pro, Max, Team, and Enterprise plans.

* Open "Settings" in Claude Desktop
* Navigate to "Connectors"
* Click the "+" button and select "Add custom connector"
* Fill out "Name" with something like "Wistia" and "URL" with `https://api.wistia.com/mcp/api`
* Click "Add"

Now find the Wistia connector and click "Connect". When you do this, a browser
window should open up prompting you to login. Once you login, make sure to
authorize Claude Desktop.

## Connecting to Windsurf

Windsurf stores its MCP servers in `~/.codeium/windsurf/mcp_config.json`.
Note that Windsurf uses `serverUrl` (not `url`) for remote servers.

Edit `~/.codeium/windsurf/mcp_config.json` so it looks as follows, then save
and restart Windsurf:

```js
{
  "mcpServers": {
    // other MCP servers ...,
    "wistia": {
      "serverUrl": "https://api.wistia.com/mcp/api"
    }
  }
}
```

When you do this, a browser window should open up prompting you to login. Once
you login, make sure to authorize Windsurf.

To use an access token instead of OAuth, add a `headers` block with
`"Authorization": "Bearer <token>"` to the `wistia` entry.

## Connecting to ChatGPT

Wistia has an official ChatGPT app, which is the easiest way to connect.
ChatGPT only supports OAuth — there is no access token option.

### Using the Wistia app

* Open "Apps" in the ChatGPT sidebar and search for "Wistia", or go directly to the [Wistia app](https://chatgpt.com/apps/wistia/asdk_app_69bbf84283c88191a617487b95f3a895)
* Click "Connect"

When you do this, a browser window should open up prompting you to
login. Once you login, make sure to authorize ChatGPT.

### Using a custom connector

If the app isn't available on your plan, you can add the MCP server as a
custom connector instead. This requires "Developer mode" and the web version
of ChatGPT; the desktop app doesn't have all the options needed.

* Navigate to chatgpt.com and login
* Open "Settings"
* Open "Apps & Connectors"
* Navigate to "Advanced Settings"
* Ensure "Developer mode" is enabled
* Go back to "Apps & Connectors"
* Next to "Enabled apps & connectors", click "Create"
* Fill out "Name" with something like "Wistia MCP"
* Fill out "Description" (optional)
* Fill out "MCP Server URL" with `https://api.wistia.com/mcp/api`
* Ensure "Authentication" is set to "OAuth"
* Leave "OAuth Client ID" and "OAuth Client Secret" blank
* Make sure the "I understand and want to continue" checkbox is checked
* Click "Create"

When you do this, a browser window should open up prompting you to
login. Once you login, make sure to authorize ChatGPT.

## Connecting to Codex

Codex connects to remote MCP servers over streamable HTTP. This requires a
recent version of the Codex CLI. To connect, run the command:

```bash
codex mcp add wistia --url https://api.wistia.com/mcp/api --bearer-token-env-var WISTIA_TOKEN
```

Then set the `WISTIA_TOKEN` environment variable to your Wistia access token.
This adds the following to `~/.codex/config.toml`:

```toml
[mcp_servers.wistia]
transport = { type = "streamable_http", url = "https://api.wistia.com/mcp/api" }
bearer_token_env_var = "WISTIA_TOKEN"
```

## Connecting to Antigravity

Antigravity stores its MCP servers in `~/.gemini/config/mcp_config.json`. You
can open this file from "Settings" > "Customizations" > "Open MCP Config".
Like Windsurf, Antigravity uses `serverUrl` (not `url`) for remote servers.

Edit `~/.gemini/config/mcp_config.json` so it looks as follows, then save and
hit refresh in the "Installed MCP Servers" section:

```js
{
  "mcpServers": {
    // other MCP servers ...,
    "wistia": {
      "serverUrl": "https://api.wistia.com/mcp/api"
    }
  }
}
```

When you do this, a browser window should open up prompting you to login. Once
you login, make sure to authorize Antigravity.

To use an access token instead of OAuth, add a `headers` block with
`"Authorization": "Bearer <token>"` to the `wistia` entry.

## Other tools

Most other MCP clients accept a JSON configuration like the following. Use
`https://api.wistia.com/mcp/api` as the server URL:

```js
{
  "mcpServers": {
    "wistia": {
      "url": "https://api.wistia.com/mcp/api"
    }
  }
}
```

Some clients (such as Windsurf and Antigravity) use `serverUrl` instead of
`url`. For access token authentication, add a `headers` block with
`"Authorization": "Bearer <token>"`.

## Choosing which tools to expose

By default the server exposes every tool it has, which is a lot of them. Some
agents choose tools more reliably when there are fewer to pick from, and some
clients spend a meaningful amount of their context on tool definitions. If you
only need part of the API, add a `toolsets` query parameter to the server URL:

```
https://api.wistia.com/mcp/api?toolsets=media,analytics
```

Combine as many as you like with commas. Leave the parameter off and you get
every tool, exactly as before.

These are the toolsets you can ask for:

| Toolset          | What it covers                                                                   |
| :--------------- | :------------------------------------------------------------------------------- |
| `media`          | Uploading, editing, organizing, and finding videos and other media files         |
| `folders`        | Organizing content into folders and subfolders, and managing access to them      |
| `channels`       | Building, publishing, and collaborating on channels and their episodes           |
| `webinars`       | Running webinars, and managing registrants and collaborators                     |
| `captions`       | Captions, translations, and audio descriptions for your media                    |
| `customizations` | How your player and media pages look and behave, including brand settings        |
| `tags`           | Creating tags and applying them to your content                                  |
| `analytics`      | Aggregate engagement and performance data for your account, media, and webinars  |
| `stats`          | Play and visitor data from the Stats API, down to individual visitors and events |
| `sharing`        | Controlling who can reach your content outside of Wistia                         |
| `remix`          | Creating and exporting videos with Remix, Wistia's AI video editor               |
| `account`        | Account-level details and the status of long-running jobs                        |

The parameter goes anywhere the server URL appears in the instructions below —
the `claude mcp add` command, the `url` in a JSON config file, the URL you paste
into a custom connector, and so on.

> 📘 Note
>
> A handful of tools stay available no matter which toolsets you choose, because
> other tools depend on them. Polling a background job is the main one: plenty of
> operations run asynchronously and hand back a job to watch, so that tool would
> leave your agent stranded if it disappeared.

If you ask for a toolset that doesn't exist, the server responds with a `422`
naming both the toolset it didn't recognize and the ones it accepts.

## Testing your settings

From here, do a quick prompt like "Please summarize my Wistia Account". The agent will likely
ask for permission and then fire off the tool needed to get the account summary if all
goes well.