Query your Wistia video library with an AI agent
Wistia's MCP server, https://api.wistia.com/mcp/api, lets an AI agent work with your Wistia data after you sign in with OAuth or an access token [1]. Only account owners and managers can use it [1]. Start read-only with an inventory and caption gaps, and approve every edit or deletion yourself.
Tools in this workflow
| Tool | Role in this workflow | Cost | Runs |
|---|---|---|---|
| Wistia MCP server | Wistia's official MCP server: gives the agent tools grouped into toolsets such as media and captions [1] | Price unknown | Cloud |
| Wistia CLI | Wistia's official CLI: the wistia command with JSON, YAML or TOON output for agents that work in a terminal [2] | Price unknown | Terminal |
| Frame.io MCP | Optional: review comments in Frame.io [6]. | Price unknown | Cloud |
The result
A list of the videos in your account or one folder, with missing captions flagged, spot-checked against the Wistia web app.
No media is changed or deleted unless a person approves that action.
Before you start
- MCP (Model Context Protocol) is an open-source standard for connecting AI apps to external systems [7]. An MCP server gives the AI client tools it can call on your account.
- Only owners and managers can use the MCP server [1]; only the Account Owner can open the API tokens page [3].
- Choose OAuth or an access token. ChatGPT supports OAuth only [1].
Steps
Create a read-only access token (token route only)
Skip this with OAuth. Otherwise the Account Owner opens the API tab in Account Settings and clicks New token, giving it a nickname and scope [3]. The token can be copied only when it is created [3].
List Media accepts Read all folder and media data [4]; updating media needs Read, update & delete anything [5]. The MCP guide does not map token permissions to MCP tools.
You approve:Start with a read-only token. Create an update token only for a specific edit you are approving.Connect the Wistia MCP server
In Claude Code, add the server, restart Claude Code, run
/mcp, select wistia and choose Authenticate to sign in through the browser [1].With an access token, pass it as a header and skip Authenticate, which has no effect [1].
Every tool is exposed by default; a
toolsetsquery parameter on the URL limits them [1]. For this report,mediacovers finding and organising videos andcaptionscovers captions, translations and audio descriptions. Some tools, such as polling a background job, are always available [1].Copied from the documentation · source [1]claude mcp add --transport http wistia https://api.wistia.com/mcp/apiCopied from the documentation · source [1]claude mcp add --header "Authorization: Bearer <token>" --transport http wistia https://api.wistia.com/mcp/apiAssembled from documented options, not printed in the docs · source [1]claude mcp add --transport http wistia "https://api.wistia.com/mcp/api?toolsets=media,captions"You approve:Keep create and destroy actions on ask. The Claude web app asks for every Wistia action by default; Wistia suggests always allowing only read-only "get" actions [1].Or use the Wistia CLI from a terminal agent
The Wistia CLI wraps the Wistia Data API in a
wistiacommand with JSON, YAML or TOON output that coding agents such as Claude Code, Cursor and Codex can read [2]. Install it with Homebrew on macOS or Linux, or with the shell or PowerShell installers [2].Run
wistia configureonce to store your token in the system keychain, or setWISTIA_CLI_BEARER_AUTH. Then try read-only commands such aswistia media list[2].--output-formattakespretty(default),json,yaml,tableortoon, a compact format for AI prompts.wistia --helplists the command groups, including captions, localisations and audio descriptions [2].Copied from the documentation · macOS, Linux · source [2]brew install wistia/tap/wistia-cliCopied from the documentation · source [2]wistia configureCopied from the documentation · source [2]wistia media listCopied from the documentation · source [2]wistia media list --output-format json | jq '.[].name'Copied from the documentation · source [2]wistia media list --jq '.[] | select(.type == "Video")'Ask for the inventory and caption gaps
Test the connection with Wistia's suggested prompt, "Please summarize my Wistia Account" [1].
Then ask plainly, for example: "List every video in the folder Course 2026 with its name and created date, and tell me which ones have no captions. Do not change anything." Wistia's guide names toolsets, not individual tools.
Lists return up to 100 results per page [3]. Tell the agent to read every page, or check the count with
wistia media listand JSON output.- Compare a sample of answers with the Wistia web app.
- Note requests that failed because of permissions or a missing toolset.
Approve any edit or deletion one at a time
Check the exact change before approving any fix, such as a rename or new tags. Update Media replaces all existing tags with the list it receives; adding tags uses a separate bulk-tag endpoint [5].
Update Media needs a Read, update & delete anything token [5]. Create one for the edit and delete it afterwards in the API tab [3].
You approve:Approve each create, update or delete action separately. No bulk change without a written list of the videos affected.
If you don't want to code
- Claude web app: in Settings, open Connectors, click Add custom connector, paste
https://api.wistia.com/mcp/api, click Add, then Connect and sign in to Wistia [1]. - Claude Desktop: add a custom connector in Settings, Connectors, on the Free, Pro, Max, Team or Enterprise plan [1]. Remote servers cannot be added through
claude_desktop_config.json[1]. - ChatGPT: use Wistia's ChatGPT app, or a custom connector in Developer mode on the web [1].
- Frame.io for review comments: Adobe's Frame.io MCP server,
https://mcp.frame.io/v1/mcp, signs in with Adobe IMS OAuth and does not support Frame.io Legacy accounts [6].read_commentsandwrite_commentscan anchor comments to a timecode, and Claude Desktop sets each tool group to Needs approval by default [6]. Public beta since 7 Oct 2026 [8].
Common failures
- Cannot connect: only owners and managers can use the MCP server [1].
- Token connection does nothing after Authenticate: do not select Authenticate with a token [1].
- HTTP 422 on connect: a requested toolset does not exist; the error lists valid ones [1].
- Agent picks the wrong tools: Wistia says some agents choose better from fewer tools. Limit them with
toolsets[1]. - Lost the token: it can be copied only when created [3]. Create a new one and delete the old one.
- HTTP 429: the account went over 600 API requests per minute. Wait the seconds given in the
Retry-Afterheader [3]. - Inventory stops at 100 videos: results are paged, 100 at most per page [3].
Privacy, rights and permissions
- Treat API tokens like passwords: keep them out of source control and client-side code [2][3].
- The CLI keeps tokens in the system keychain, falling back to
~/.config/wistia/config.yamlonly where there is none, such as CI [2]. - Give toolsets and token permissions only what the job needs [1][4].
- Remove the connector or delete the token when done [3].
What we will measure
- Accuracy: share of videos and caption states reported correctly, checked against the web app on a fixed test account.
- Scope failures: requests that fail or overreach because of token permissions or toolsets.
- Write boundary: an update with a read-only token must be refused.
- Approval: no create, update or delete runs without explicit approval.
- Inventory time compared with doing it by hand in the web app.
Sources
- Using Wistia's MCP server fetched 2 Nov 2026
- Using the Wistia CLI fetched 2 Nov 2026
- Making API Requests fetched 2 Nov 2026
- List Media fetched 2 Nov 2026
- Update Media fetched 2 Nov 2026
- Frame.io MCP | Frame.io API Documentation fetched 2 Nov 2026
- What is the Model Context Protocol (MCP)? - Model Context Protocol fetched 2 Nov 2026
- Introducing the Frame.io MCP Server - General - Frame.io Developer Forum fetched 2 Nov 2026