100+ integrations are ready to connect to your AI.Connect your first MCP

Wistia MCP server for your AI

Ask which videos people watched most last month, retitle and tag a batch of uploads, add captions to a new video, import a file from a link into the right folder, and see who signed up for your next webinar, all from your AI client.

PopMCPWistia

Which of my videos got the most plays in the last 30 days, and how much of each did people watch?

Supported Wistia tools

Every Wistia API endpoint a customer can use is here, from media, folders and captions to channels, webinars, stats and analytics, with everyday tools loaded by default and the rest one search away.

168 tools in the full catalog: 89 read and 79 write. 37 load by default, and the rest are found with tool search.

wistia_get_media_customizations

Fetches explicitly defined customizations for the video.

wistia_update_media_customizations

Allows for partial updates on a video’s customizations.

wistia_copy_media

This endpoint copies a media and its assets to a destination folder (defaults to source media).

wistia_delete_media

Deletes a media.

wistia_get_media

Fetches a single media by its hashed id.

wistia_get_media_report

Everything about how one video performs, in one call: its details (name, duration, folder, status), lifetime stats (loads, plays, play rate, hours watched, engagement, visitors), the engagement graph summary, and analytics for a date range (default the last 30 days).

wistia_import_media_from_url

This endpoint imports a media file from a given URL.

wistia_list_all_media

Every media in the account (or one folder) as compact rows, walking the pages for you: hashed_id, name, type, duration in seconds, status, created and updated times, folder and tags.

wistia_list_media

Lists the media belonging to the account.

wistia_move_media

Moves up to 100 media to a folder and optional subfolder.

wistia_update_media

Updates the attributes on a media.

wistia_create_captions

Adds captions to a specified media by providing an SRT file or its contents directly.

wistia_get_captions

Returns a media's captions in the specified language.

wistia_list_media_captions

Lists captions belonging to a specific media.

wistia_get_account

Retrieves a summary of the Wistia account including account name, description, URL and counts of records.

wistia_get_account_overview

A snapshot of the Wistia account in one call: name and counts (media, folders, channels), plan and usage limits, lifetime stats (loads, plays, hours watched, visitors) and the top videos by plays for a date range (default the last 30 days).

wistia_list_channel_episodes_by_channel

Lists Channel Episodes belonging to the channel passed in the path.

wistia_get_media_analytics

Retrieve aggregate analytics for a video over a date range.

wistia_create_folder

Creates a new folder (previously called project).

wistia_get_folder

Retrieves a single folder (previously called project).

wistia_list_folders

Lists folders (previously called projects) belonging to the account.

wistia_list_subfolders

Lists subfolders in a specific folder.

wistia_get_account_analytics

Retrieve aggregate analytics for the entire account over a date range.

wistia_get_account_top_content

Rank the account's content by a chosen metric over a date range.

wistia_get_webinar

Returns the webinar associated with the hashed id.

wistia_list_channels

Lists all Channels belonging to an account.

wistia_list_webinars

Lists webinars belonging to the account.

wistia_get_media_engagement

Retrieve engagement data for a video.

wistia_get_media_stats

Retrieve stats for a video.

wistia_list_tags

Lists tags belonging to the account.

wistia_get_account_stats

Retrieve account-wide video stats.

wistia_get_background_job_status

Retrieves the status of a background job.

wistia_list_viewing_events

Retrieve a list of events.

wistia_list_webinar_registrations

Retrieve a paginated list of registrations for a webinar.

wistia_wait_for_background_job

Wait for a Wistia background job (media import from a URL, bulk copy, move, archive or restore, bulk tagging, bulk actions or purchases, translations) to finish and return its final status and results.

wistia_bulk_tag_media

This method accepts a list of medias to tag.

wistia_search

Searches across folders, subfolders, medias, channels, channel episodes, and webinars.

wistia_create_media_customizations

Set customizations for a video.

wistia_delete_media_customizations

Deletes all explicit customizations for a video, making it act as if it has never been customized.

wistia_get_access_customizations

Fetches the explicitly-set password-protection settings for the video, including the stored password.

wistia_get_accessibility_customizations

Fetches the explicitly-set accessibility customizations (caption display and styling, transcript display, and audio description) for the video.

wistia_get_appearance_customizations

Fetches the explicitly-set appearance customizations (player color, gradient, rounded corners, control contrast, and customer logo) for the video.

wistia_get_chapters_customizations

Fetches the explicitly-set chapter customizations (the chapter list and its visibility) for the media.

wistia_get_engagement_customizations

Fetches the explicitly-set engagement customizations (the end/pause Call To Action and timed annotation links) for the video.

wistia_get_lead_capture_customizations

Fetches the explicitly-set lead-capture plugins (Turnstile, Wistia Form, and HubSpot/Marketo/Pardot form embeds) for the video.

wistia_get_playback_customizations

Fetches the explicitly-set playback customizations (autoplay, mute, controls visibility, player control buttons, end behavior, looping, quality bounds, and embed/runtime flags) for the video.

wistia_get_related_media_customizations

Fetches the explicitly-set related-media ("discover more") customizations (which videos to recommend, when to show them, label and button text) for the video.

wistia_get_sharing_customizations

Fetches the explicitly-set sharing customizations (the social/embed/download share bar: enabled channels, tweet text, download type, and page URL/title) for the video.

wistia_get_thumbnail_customizations

Fetches the explicitly-set thumbnail customizations (still image URL, alt text, fit strategy, and the looping video thumbnail / text-overlay plugins) for the video.

wistia_update_access_customizations

Applies a partial update to a video's password-protection settings.

wistia_update_accessibility_customizations

Applies a partial update to a video's accessibility customizations.

wistia_update_appearance_customizations

Applies a partial update to a video's appearance customizations.

wistia_update_chapters_customizations

Applies a partial update to a media's chapter customizations.

wistia_update_engagement_customizations

Applies a partial update to a video's engagement customizations.

wistia_update_lead_capture_customizations

Configures a single lead-capture provider for the video, mapping it to the appropriate underlying plugin.

wistia_update_playback_customizations

Applies a partial update to a video's playback customizations.

wistia_update_related_media_customizations

Applies a partial update to a video's related-media customizations.

wistia_update_sharing_customizations

Applies a partial update to a video's sharing customizations.

wistia_update_thumbnail_customizations

Applies a partial update to a video's thumbnail customizations.

wistia_archive_media

This method accepts a list of up to 100 medias to archive per request.

wistia_bulk_copy_media

This method accepts a list of medias to copy to a destination folder.

wistia_get_media_aggregated_stats

Aggregated tracking statistics for a video embedded on your site.

wistia_restore_archived_media

Restores archived medias to your account.

wistia_swap_media

Swap one media with another media.

wistia_translate_media

Translates the transcript for a media.

wistia_delete_captions

Removes the captions file from a media for the specified language.

wistia_edit_captions_text

Applies targeted find-and-replace corrections to a media's transcript for the specified language, preserving the timings of unchanged words.

wistia_find_caption_matches

Finds exact text in caption tracks without modifying them.

wistia_list_captions

Lists captions belonging to the account.

wistia_purchase_captions

This method is for purchasing English captions for a media.

wistia_update_captions

This method is for replacing the captions on a video or audio media for the specified language.

wistia_create_channel_episode

Creates a new channel episode in a channel.

wistia_delete_channel_episode

Deletes an existing channel episode in a channel.

wistia_get_account_usage

Retrieves plan, usage, and limit information for the current account.

wistia_get_brand_kit_colors

Retrieves the current account's brand colors for the Wistia desktop app's background picker.

wistia_get_brand_preload

Retrieves Brandfetch-derived brand info for the current account's contact domain, plus a boolean indicating whether the account already has any brand kits configured.

wistia_get_channel_episode

Returns the Channel Episode associated with a channel hashed id and channel episode hashed id.

wistia_get_credit_balance

Retrieves the current account's available credit balance and expected next recurring credit grant time.

wistia_get_current_token

Retrieves a summary of the token used to make the API request.

wistia_list_channel_episodes

Lists Channel Episodes belonging to an account.

wistia_publish_channel_episode

Publishes an existing channel episode in a channel.

wistia_unpublish_channel_episode

Un-publishes an existing channel episode in a channel.

wistia_update_brand_preload

Persists the account's default page logo (by Bakery hashed_id) and default player color.

wistia_update_channel_episode

Updates an existing channel episode in a channel.

wistia_get_media_analytics_timeseries

Retrieve analytics timeseries data for a video over a date range with configurable granularity.

wistia_get_media_embed_locations

Retrieve embed location analytics for a video.

wistia_get_media_embed_locations_timeseries

Retrieve timeseries analytics for a video broken down by embed location.

wistia_get_media_form_conversions

Retrieve form conversion data for a video.

wistia_get_media_languages

Retrieve language analytics for a video.

wistia_get_media_traffic_breakdown

Retrieve traffic breakdown analytics for a video, grouped by a specified dimension such as UTM campaign, UTM source, UTM medium, referrer domain, or viewer screen size.

wistia_apply_brand

Applies a brand to a media, folder, or channel, so that resource is styled by the brand's colors, fonts, logos, and layout.

wistia_bulk_delete_subfolders

Deletes multiple subfolders asynchronously.

wistia_copy_folder

This copies a folder (previously called project) and all its media and subfolders asynchronously in a background job.

wistia_create_brand

Creates a brand.

wistia_create_subfolder

Creates a new subfolder within a folder.

wistia_delete_brand

Deletes a brand.

wistia_delete_folder

Deletes a folder (previously called project) and the media inside it.

wistia_delete_subfolder

Deletes one subfolder and moves its media to the folder's root level.

wistia_get_brand

Returns the brand with the given id.

wistia_get_subfolder

Retrieves detailed information about a specific subfolder, including all media contained within it.

wistia_list_brands

Lists the brands belonging to the account.

wistia_update_brand

Updates a brand.

wistia_update_folder

Updates a folder (previously called project) Token permission: Read, update & delete anything.

wistia_update_subfolder

Updates a subfolder's name and/or description.

wistia_create_channel

Creates a channel.

wistia_create_folder_sharing

Creates a new sharing object for a folder by specifying the email of the person to share with and other optional parameters.

wistia_create_webinar

Creates a new webinar.

wistia_delete_channel

Deletes a channel.

wistia_delete_extended_audio_description

Deletes an extended audio description by its hashed id.

wistia_delete_folder_sharing

Deletes a sharing on a folder.

wistia_delete_webinar

Deletes an existing webinar.

wistia_find_media_by_embed_location

Find the media embedded at a given URL.

wistia_get_account_analytics_timeseries

Retrieve analytics timeseries data for the entire account over a date range with configurable granularity.

wistia_get_account_embed_locations

Retrieve embed location analytics for the entire account.

wistia_get_channel

Returns the Channel associated with the hashedId.

wistia_get_extended_audio_description

Retrieves a single extended audio description by its hashed id, including download links.

wistia_get_extended_audio_description_order_status

Returns the current status of an extended audio description order.

wistia_get_folder_sharing

Retrieves the details of a specific sharing object for a given folder.

wistia_get_webinar_analytics

Retrieve aggregate analytics for a webinar.

wistia_get_webinar_audience

Retrieve audience data for a webinar.

wistia_get_webinar_histograms

Retrieve engagement histogram data for a webinar.

wistia_get_webinar_registration_timeseries

Retrieve registration timeseries data for a webinar with configurable granularity.

wistia_get_webinar_traffic_breakdown

Retrieve traffic breakdown analytics for a webinar, grouped by a specified dimension such as UTM campaign, UTM source, UTM medium, or referrer domain.

wistia_list_extended_audio_descriptions

Lists all extended audio descriptions belonging to the account.

wistia_list_folder_sharings

Lists the sharings of contacts and contact groups on a folder.

wistia_order_extended_audio_description

Orders an extended audio description for a media.

wistia_update_channel

Updates a channel.

wistia_update_folder_sharing

Updates a sharing on a folder.

wistia_update_webinar

Updates an existing webinar.

wistia_create_allowed_domain

Creates an allowed domain for the account.

wistia_create_localization

Creates a new localization.

wistia_delete_allowed_domain

Deletes an allowed domain from the account.

wistia_delete_localization

Deletes a localization.

wistia_delete_share_link

Deletes the share link for a media, revoking the URL.

wistia_get_allowed_domain

Returns the details of an allowed domain.

wistia_get_localization

Obtain detailed information about a localization.

wistia_get_share_link

Fetches the share link for a single media.

wistia_list_allowed_domains

Lists allowed domains belonging to the account.

wistia_list_localizations

Lists all the localizations for a media.

wistia_resolve_share_link

Resolves a share link URL segment: the part after /s/ in a share link like https://example.wistia.com/s/summer-sale: to the share link and the media it points to, including the media's hashed ID.

wistia_update_share_link

Updates the share link for a single media.

wistia_create_channel_collaborator

Invites a collaborator to a channel by specifying their email address and role.

wistia_create_review_bundle

Creates a review bundle from a set of existing media, producing a single link that can be shared for review.

wistia_create_tags

Creates a new tag.

wistia_create_webinar_collaborator

Invites a collaborator (producer) to a webinar by specifying their email address.

wistia_delete_channel_collaborator

Removes a collaborator's access to a channel.

wistia_delete_review_bundle

Permanently deletes a review bundle, identified by its hashed id.

wistia_delete_tag

Deletes a tag Token permission: Read, update & delete anything.

wistia_delete_webinar_collaborator

Removes a collaborator's producer access to a webinar.

wistia_get_media_stats_by_date

Retrieve stats for a media organized by day, between a start and end date paramater (inclusive).

wistia_list_channel_collaborators

Lists the collaborators (contacts and contact groups) that have been granted access to a channel.

wistia_list_review_bundles

Lists review bundles belonging to an account.

wistia_list_webinar_collaborators

Lists the collaborators (contacts and contact groups) that have been granted producer access to a webinar.

wistia_create_webinar_registration

Register a person for a webinar by providing their email, first name, and last name.

wistia_get_account_stats_by_date

Retrieve account-wide stats organized by day, between a start and end date parameter (inclusive).

wistia_get_viewing_event

Retrieve information for a single event.

wistia_get_visitor

This endpoint provides detailed information about a specific visitor.

wistia_list_deleted_media

Lists media that has been soft-deleted and is still inside the account's restore window.

wistia_list_visitors

This endpoint provides a list of visitors that have watched videos in your account.

wistia_restore_deleted_media

Restores one or more soft-deleted media.

wistia_create_bulk_actions

Submits a batch of up to 1000 create, update, delete, and move actions to be processed asynchronously.

wistia_create_bulk_purchase

Submits either an actions array of up to 1000 orders or one job that can resolve to up to 5000 media.

wistia_create_media_from_trims

Creates a new media that trims off parts of an existing media.

wistia_get_folder_stats

Stats for one folder: plays, visitors, hours watched and more.

wistia_invite_contacts

Invites one or more people to the account by email.

wistia_list_speakers

Lists reusable speaker profiles belonging to the account.

wistia_resolve_resource_urls

Resolves a resource's hashed ID and type to its canonical app URL(s): deep links an authorized user can open in the Wistia UI.

wistia_upload_media_from_url

Import a media file into Wistia from a URL (the Upload API).

Connect Wistia to Claude, ChatGPT and Claude Code

Credentials off one Wistia screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.

In Wistia, the account owner opens Account Settings, then the API tab, clicks New token, ticks Read, update & delete anything (or Read all data for read-only use) and copies the token into PopMCP. Wistia shows a token only once, and nothing needs approval.

API token••••••••••••3f7a
ConnectionVerified

Then just ask for the work

  • “Which of my videos got the most plays in the last 30 days, and how much of each did people watch?”

    • get_account_top_content
    • get_media_report
  • “Import the video at this link into my Product Demos folder and tell me when it is ready to play”

    • list_folders
    • import_media_from_url
    • wait_for_background_job
  • “Tag every video in the Webinars folder with replay and move the ones older than a year to the Archive folder”

    • list_all_media
    • bulk_tag_media
    • move_media
  • “Add these English captions to the onboarding video, then translate its transcript into Spanish”

    • search
    • create_captions
    • translate_media
  • “Who registered for next week's webinar, and how did the last one do?”

    • list_webinars
    • list_webinar_registrations
    • get_webinar_analytics

Use Wistia from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Wistia MCP server questions

What teams ask before putting Wistia behind an AI client.

What does the Wistia MCP server need to connect?

An API token from your Wistia account. The account owner opens Account Settings, then the API tab (account.wistia.com/account/api), clicks New token, names it, ticks the permissions and copies it straight away, because Wistia shows a token only once. Read, update & delete anything lets the AI manage your library; Read all data is enough to read everything, stats included. PopMCP checks the token against your account and stores it encrypted.

Can a manager connect, or only the account owner?

Only the account owner can create API tokens in Wistia, so a manager asks the owner for one. PopMCP also supports Sign in with Wistia, which owners and managers can approve on Wistia's own page; where it is not switched on yet, the API token is the way in.

Which parts of Wistia does it cover?

The Data API (media, folders and subfolders, tags, captions and transcripts, translations and dubbing, trims, player customizations, brands, share links, review bundles, channels and episodes, webinars and registrations, allowed domains and bulk actions), the Stats API, the Analytics API and the Upload API's import from a link. Everyday tools load by default and the rest are one search away in your AI client.

Will it charge my Wistia account?

Only if you ask it to order something. Buying captions, dubbing a video, ordering audio descriptions and bulk purchases are billed to your Wistia account, and each of those tools says so in its description so the AI checks with you first. Reading stats and analytics and managing your library cost nothing extra.

Can the AI upload a video from my computer?

It imports from a link: give it a public or pre-signed URL that downloads the file directly, and Wistia fetches it into the folder you choose. Pushing a large video through an AI chat is not practical, so direct file uploads are left out. Imports run in the background, and the AI can wait for them to finish.

Which Wistia events can PopMCP watch?

14 in total. Change detection: video added, video ready, processing failed, video updated, video deleted, captions added, translation added, webinar registration, webinar created, folder created and channel episode added. Polled: someone watched a video. Two watch a level you set: plays of one video and plays across the account. Wistia sets its own webhooks up only in its settings, so PopMCP reads these from the API.

Do I have to run or host the Wistia MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

How do I connect Wistia to Claude Code?

Connect Wistia in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Wistia on the consent screen. The Wistia tools are then available in that session, and no Wistia credential is stored on your machine.

Why do only 37 of the 168 tools load by default?

Loading 168 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 37-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.

What is the difference between a tool and a trigger?

A tool is something your AI calls, and there are 168 here. A trigger is something PopMCP watches for you: 14 Wistia events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Wistia.

Connect Wistia to your AI in minutes

Launch a hosted MCP endpoint for Wistia, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP