Media
Tools for managing media files in the Revel Digital library. Media includes images (JPG, PNG, GIF), videos (MP4, WebM), PDFs, web pages, and other content types uploaded for playback on devices.
list_media
List media files in the account. Returns media objects with id, name, file type, group assignment, tags, and availability dates.
| Parameter | Type | Required | Description |
|---|---|---|---|
group_id |
string or string[] | No | Filter by media group ID(s) |
group_name |
string or string[] | No | Filter by media group name(s) |
take |
number | No | Results per page |
page |
number | No | Page number (1-based) |
get_media
Get detailed information about a specific media file by ID. Returns name, file type, size, URL, group assignment, tags, availability dates, and sharing status.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The media item ID |
update_media
Update a media item’s metadata. This does not replace the media file itself — only its properties.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The media item ID |
name |
string | No | Updated display name |
group_id |
string | No | Move to this group |
tags |
string | No | Comma-separated tags |
is_shared |
boolean | No | Share across organizations |
start_date |
string | No | ISO 8601 date when available for playback |
end_date |
string | No | ISO 8601 date when media expires |
delete_media
Permanently delete a media file. This action cannot be undone. If the media is referenced by playlists or templates, those references will become invalid.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The media item ID |
import_media
Import a media file from an external URL. The server fetches the file and adds it to the media library.
| Parameter | Type | Required | Description |
|---|---|---|---|
url |
string | Yes | Public URL of the media file to import |
group_id |
string | No | Media group ID to place the file in |
create_media_upload
Create a presigned upload slot for adding a local file (e.g. a .webapp zip, image, or video) to the media library without the bytes passing through the MCP server. Returns { id, upload_url, method, headers, key, expires_at }.
After this returns, the calling agent uploads the file itself: send an HTTP PUT (the returned method) to upload_url with exactly the returned headers and the raw file bytes as the body. The URL is presigned — it requires no Revel Digital authentication:
curl -X PUT -T myapp.webapp -H "Content-Type: application/zip" "<upload_url>"
Then poll get_media_upload until the status is uploaded, and call finalize_media_upload.
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | File name including extension — determines the media type (e.g. myapp.webapp becomes a webapp item) |
group_id |
string | No | Media group ID to place the new item in |
tags |
string[] | No | Tags for categorization and search |
content_type |
string | No | MIME type (e.g. application/zip) |
size |
integer | No | File size in bytes, if known |
is_shared |
boolean | No | Share across organizations |
advertiser_id |
string | No | Advertiser to associate with the item |
get_media_upload
Check the status of a presigned upload slot. Returns { id, status, key, created_at, expires_at, media_id }. Poll after PUTting the bytes until status is uploaded/completed, then finalize.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The upload slot ID from create_media_upload |
finalize_media_upload
Finalize a presigned upload after the bytes have been PUT to the upload_url. Ingests the object and registers it in the media library, returning the created Media object (a .webapp file becomes a webapp-typed media item). Returns 400 if the object is missing or oversized, 404 if the slot is invalid or expired.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The upload slot ID from create_media_upload |
approve_media
Approve a media asset so it becomes eligible for playback. GraphQL-backed — there is no REST equivalent. Reversible via decline_media.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The media asset ID to approve |
decline_media
Decline a media asset so it is excluded from playback. GraphQL-backed — there is no REST equivalent. Reversible via approve_media.
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | The media asset ID to decline |
reason |
string | No | Optional reason recorded with the decline |