api.video MCP by usefulapi
Server Details
Manage videos and live streams, inspect captions, players and webhooks, and read play analytics.
- Status
- Healthy
- Uptime
- 69.1% over 56 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Scored across 15 tools
Each tool targets a distinct resource-action combination: videos, live streams, captions, chapters, players, webhooks, and analytics are clearly separated. Even closely related tools like get_video, get_video_status, and get_video_analytics are differentiated by their specific purpose.
All tools follow a consistent apivideo_<verb>_<resource> snake_case pattern. Create/get/list/delete/update are used predictably, with analytics and status as clear modifiers.
15 tools is within the well-scoped range and each tool covers a distinct capability of the api.video platform. The count feels appropriate for a video management API covering videos, live streams, analytics, and related resources.
Core video lifecycle is well covered: create, get, update, delete, list, status, and analytics. However, live streams lack update/delete operations, and captions, chapters, players, and webhooks are list-only with no corresponding create/update/delete tools, creating notable workflow gaps.
Available Tools
15 toolsapivideo_create_live_streamCreate live stream (write)DestructiveInspect
WRITE. Create a new live stream, returning a stream key and RTMP ingest URL to broadcast to. POST /live-streams.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Live stream name. Required. | |
| public | No | Whether the stream is public (default true) or private. | |
| playerId | No | Id of a custom player theme to attach. |
apivideo_create_videoCreate video (write)DestructiveInspect
WRITE. Create a new video object. If source (a public video URL) is provided, api.video ingests the video from that URL — recommended for hosted use, since raw file bytes cannot stream through MCP. POST /videos.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Tags for the video. | |
| title | Yes | Video title. Required. | |
| public | No | Whether the video is public (default true) or private. | |
| source | No | Public URL of a video file to ingest from. Recommended over uploading bytes. | |
| metadata | No | Key/value metadata pairs (sent as [{key,value}]). | |
| playerId | No | Id of a custom player theme to attach. | |
| panoramic | No | Whether the video is a 360/panoramic video. | |
| mp4Support | No | Whether to also generate a downloadable MP4. | |
| description | No | Video description. |
apivideo_delete_videoDelete video (write)DestructiveInspect
WRITE. Permanently DELETE a video and all its assets. This cannot be undone. DELETE /videos/{videoId}.
| Name | Required | Description | Default |
|---|---|---|---|
| videoId | Yes | The video id to permanently delete. |
apivideo_get_live_streamGet live streamRead-onlyInspect
Get a single live stream object by id (stream key, RTMP ingest, player URL). Read-only. GET /live-streams/{liveStreamId}.
| Name | Required | Description | Default |
|---|---|---|---|
| liveStreamId | Yes | The live stream id, e.g. li400mYKSgQ6xs7taUeSaEup. |
apivideo_get_live_stream_analyticsLive stream analytics (plays)Read-onlyInspect
Aggregated play analytics for live streams over a date range, grouped by a dimension. Read-only. GET /analytics/live-streams/plays.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date yyyy-mm-dd (inclusive). | |
| from | Yes | Start date yyyy-mm-dd (inclusive). Required. | |
| filter | No | Filter expression, e.g. "liveStreamId:li123". | |
| pageSize | No | Results per page (max 100). Default 25. | |
| dimension | Yes | Dimension to group plays by. | |
| currentPage | No | Page number (1-based). Default 1. |
apivideo_get_videoGet videoRead-onlyInspect
Get a single video object by id (title, assets, player URL, status flags). Read-only. GET /videos/{videoId}.
| Name | Required | Description | Default |
|---|---|---|---|
| videoId | Yes | The video id, e.g. vi4k0jvEUuaTdRAEjQ4Jfrgz. |
apivideo_get_video_analyticsVideo analytics (plays)Read-onlyInspect
Aggregated play analytics for videos over a date range, grouped by a dimension. Read-only. GET /analytics/videos/plays.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date yyyy-mm-dd (inclusive). | |
| from | Yes | Start date yyyy-mm-dd (inclusive). Required. | |
| filter | No | Filter expression, e.g. "videoId:vi123". | |
| pageSize | No | Results per page (max 100). Default 25. | |
| dimension | Yes | Dimension to group plays by. | |
| currentPage | No | Page number (1-based). Default 1. |
apivideo_get_video_statusGet video statusRead-onlyInspect
Get encoding and ingest status for a video (upload progress, encoding qualities, playability). Read-only. GET /videos/{videoId}/status.
| Name | Required | Description | Default |
|---|---|---|---|
| videoId | Yes | The video id. |
apivideo_list_captionsList captionsRead-onlyInspect
List caption tracks for a video (language, source URL, default flag). Read-only. GET /videos/{videoId}/captions.
| Name | Required | Description | Default |
|---|---|---|---|
| videoId | Yes | The video id. | |
| pageSize | No | Results per page (max 100). Default 25. | |
| currentPage | No | Page number (1-based). Default 1. |
apivideo_list_chaptersList chaptersRead-onlyInspect
List chapter tracks for a video. Read-only. GET /videos/{videoId}/chapters.
| Name | Required | Description | Default |
|---|---|---|---|
| videoId | Yes | The video id. | |
| pageSize | No | Results per page (max 100). Default 25. | |
| currentPage | No | Page number (1-based). Default 1. |
apivideo_list_live_streamsList live streamsRead-onlyInspect
List live streams in the account, with optional filters (streamKey, name) and sorting. Read-only. GET /live-streams.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Filter by live stream name (substring). | |
| sortBy | No | Field to sort by. | |
| pageSize | No | Results per page (max 100). Default 25. | |
| sortOrder | No | Sort direction. | |
| streamKey | No | Filter by exact stream key. | |
| currentPage | No | Page number (1-based). Default 1. |
apivideo_list_playersList playersRead-onlyInspect
List customized player themes in the account. Read-only. GET /players.
| Name | Required | Description | Default |
|---|---|---|---|
| sortBy | No | Field to sort by. | |
| pageSize | No | Results per page (max 100). Default 25. | |
| sortOrder | No | Sort direction. | |
| currentPage | No | Page number (1-based). Default 1. |
apivideo_list_videosList videosRead-onlyInspect
List videos in the account, with optional filters (title, tags, metadata, description, liveStreamId) and sorting. Read-only. GET /videos.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Filter by tags (all must match). Sent as tags[]. | |
| title | No | Filter by video title (substring). | |
| sortBy | No | Field to sort by. | |
| metadata | No | Filter by metadata key/value pairs. Sent as metadata[key]=value. | |
| pageSize | No | Results per page (max 100). Default 25. | |
| sortOrder | No | Sort direction. | |
| currentPage | No | Page number (1-based). Default 1. | |
| description | No | Filter by description (substring). | |
| liveStreamId | No | Return only videos recorded from this live stream id. |
apivideo_list_webhooksList webhooksRead-onlyInspect
List webhooks configured in the account, optionally filtered by event name. Read-only. GET /webhooks.
| Name | Required | Description | Default |
|---|---|---|---|
| events | No | Filter by event name, e.g. "video.encoding.quality.completed". | |
| pageSize | No | Results per page (max 100). Default 25. | |
| currentPage | No | Page number (1-based). Default 1. |
apivideo_update_videoUpdate video (write)DestructiveInspect
WRITE. Update fields on an existing video. Only the provided fields are changed. PATCH /videos/{videoId}.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Replacement tag list. | |
| title | No | New title. | |
| public | No | New public/private flag. | |
| videoId | Yes | The video id to update. | |
| metadata | No | Replacement metadata (sent as [{key,value}]). | |
| playerId | No | Player theme id to attach. | |
| panoramic | No | New panoramic flag. | |
| description | No | New description. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
15 tool updates
- Changed
apivideo_create_live_stream1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
apivideo_create_video1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
apivideo_delete_video1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
apivideo_get_live_stream1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
apivideo_get_live_stream_analytics1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
apivideo_get_video1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
apivideo_get_video_analytics1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
apivideo_get_video_status1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
apivideo_list_captions1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
apivideo_list_chapters1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
apivideo_list_live_streams1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
apivideo_list_players1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
apivideo_list_videos1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
apivideo_list_webhooks1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
- Changed
apivideo_update_video1 field changed- changed
Input schema / $schemaPrevious value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
15 tool updates
- First observed
apivideo_create_live_stream - First observed
apivideo_create_video - First observed
apivideo_delete_video - First observed
apivideo_get_live_stream - First observed
apivideo_get_live_stream_analytics - First observed
apivideo_get_video - First observed
apivideo_get_video_analytics - First observed
apivideo_get_video_status - First observed
apivideo_list_captions - First observed
apivideo_list_chapters - First observed
apivideo_list_live_streams - First observed
apivideo_list_players - First observed
apivideo_list_videos - First observed
apivideo_list_webhooks - First observed
apivideo_update_video
Related MCP Connectors
Manage videos, playlists, analytics, and monetization for OTT streaming services.
Manage cloud-hosted 24/7 video streams, playlists, destinations, schedules, media and workspaces.
671Manage Wistia videos, channels, folders, captions, customizations, and analytics via MCP.
Manage API keys, identities, permissions, rate-limit overrides and verification analytics.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage videos on PlayVideo, including collections, videos, webhooks, embed settings, API keys, and account management.2 npmMIT

Upstream MCP Serverofficial
AlicenseNot gradedqualityBmaintenanceEnables an AI assistant to run cloud live streaming end to end: starting and stopping broadcasts, reordering playback queues, searching and organizing the media library, planning stream schedules, and managing multistream destinations. It connects over a remote Streamable HTTP endpoint secured with OAuth or a personal access token, applying the same validation, ownership rules, and rate limits as the public REST API.1MIT- AlicenseAqualityAmaintenanceEnables AI agents to manage Vimeo video libraries through natural language, including bulk folder operations, transcripts, chapters, captions, showcases, tags, privacy, and embed presets.43214 npmMIT
- AlicenseBqualityBmaintenanceManage a YouTube channel through official Google APIs — videos, comments, playlists, live broadcasts, captions, and analytics — plus an auditable giveaway suite for comment-entry giveaways with deterministic winner drawing.5179 PyPIMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.