# MCP Server
Coverr provides a Model Context Protocol (MCP) (opens new window) server that enables AI assistants and agents to interact with the Coverr API using structured tools.
# Endpoint
POST https://mcp.coverr.co/mcp
The MCP server is available at the https://mcp.coverr.co/mcp URL and follows the Streamable HTTP transport (opens new window) specification.
# Authentication
The MCP server supports two authentication methods:
# Method 1: Custom header
Pass your API key via the x-coverr-api-key header:
x-coverr-api-key: {api_key}
# Method 2: OAuth 2.0 (Bearer token)
The server implements an OAuth 2.0 flow for MCP clients. When configuring your client:
- Client ID: Any value (can be "coverr-client")
- Client Secret: Use your Coverr API Key as the secret.
The OAuth metadata is available at:
GET /.well-known/oauth-authorization-server
# Available Tools
The following tools are available for interacting with the Coverr library:
# Videos
# get_videos
Fetch a list of videos from the Coverr API. Supports search, filtering, and pagination.
| Parameter | Type | Description |
|---|---|---|
query | string | Free-text search query for videos. Optional. |
page | number | Page number (0-based). Default: 0. |
page_size | number | Number of results per page. Max: 100. |
category | string | Category slug to filter by (e.g., "nature"). Optional. |
sort_by | enum | Sort order: date, popular, trending. Optional. |
filter | string | Filter string, e.g. is_vertical:true or tags:"nature". Optional. |
# get_video
Fetch a single video by ID. Returns video details including URLs.
| Parameter | Type | Description |
|---|---|---|
id | string | Video ID. Required. |
# Collections
# get_collections
Fetch a paginated list of curated video collections.
| Parameter | Type | Description |
|---|---|---|
page | number | Page number (0-based). Default: 0. Optional. |
page_size | number | Number of results per page. Max: 100. Optional. |
# get_collection
Fetch a single collection by ID.
| Parameter | Type | Description |
|---|---|---|
id | string | Collection ID. Required. |
# get_collection_videos
Fetch videos from a specific collection. Supports search and pagination.
| Parameter | Type | Description |
|---|---|---|
id | string | Collection ID. Required. |
page | number | Page number (0-based). Default: 0. Optional. |
page_size | number | Number of results per page. Max: 100. Optional. |
query | string | Search videos within the collection. Optional. |
urls | boolean | Include video URLs in the response. Optional. |
# Categories
# get_categories
Fetch a paginated list of video categories.
| Parameter | Type | Description |
|---|---|---|
page | number | Page number (0-based). Default: 0. Optional. |
page_size | number | Number of results per page. Max: 100. Optional. |
# get_category
Fetch a single category by ID or slug.
| Parameter | Type | Description |
|---|---|---|
id | string | Category ID or slug. Required. |
# get_category_videos
Fetch videos from a specific category. Supports search and pagination.
| Parameter | Type | Description |
|---|---|---|
id | string | Category ID or slug. Required. |
page | number | Page number (0-based). Default: 0. Optional. |
page_size | number | Number of results per page. Max: 100. Optional. |
query | string | Search videos within the category. Optional. |
urls | boolean | Include video URLs in the response. Optional. |
# Audios
# get_audios
Fetch a list of audio tracks. Supports search, filtering, and pagination.
| Parameter | Type | Description |
|---|---|---|
query | string | Free-text search query for audio tracks. Optional. |
page | number | Page number (0-based). Default: 0. Optional. |
page_size | number | Number of results per page. Max: 100. Optional. |
sort_by | enum | Sort order: date, popular. Optional. |
# get_audio
Fetch a single audio track by ID.
| Parameter | Type | Description |
|---|---|---|
id | string | Audio ID. Required. |
# Video Scenes
# get_video_scenes
Fetch a paginated list of video scenes. Each scene includes up to 4 preview videos.
| Parameter | Type | Description |
|---|---|---|
page | number | Page number (0-based). Default: 0. Optional. |
page_size | number | Number of results per page. Max: 100. Optional. |
# get_video_scene
Fetch a single video scene by slug or ID. Returns up to 8 preview videos sorted by popularity.
| Parameter | Type | Description |
|---|---|---|
slug_or_id | string | Video scene slug or ID. Required. |
filter | string | Exclude a specific video ID from preview videos. Optional. |
# get_video_scene_videos
Fetch videos from a specific video scene.
| Parameter | Type | Description |
|---|---|---|
slug_or_id | string | Video scene slug or ID. Required. |
page | number | Page number (0-based). Default: 0. Optional. |
page_size | number | Number of results per page. Max: 100. Optional. |
Already have an API key? Configure your MCP client and start fetching videos!