Media
This reference is auto-generated from the registered MCP tool providers in perspectapiworkers.
It reflects the tools exposed by the per-site Perspect MCP server.
Connection
Use the per-site MCP endpoint:
https://perspect.com/mcp/{siteName}
Authenticate with OAuth or an MCP API key using Authorization: Bearer sk_mcp_....
Tools
media_delete
Title: Delete Media
Delete a media file
Required permission: media.delete
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
mediaId |
string | Yes | — | Media ID |
Example call
{
"tool": "media_delete",
"arguments": {
"mediaId": "string"
}
}
Output schema
{
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"message": {
"type": "string"
}
},
"required": [
"success",
"message"
]
}
media_get
Title: Get Media
Get metadata for a specific media file
Required permission: media.read
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
mediaId |
string | Yes | — | Media ID |
Example call
{
"tool": "media_get",
"arguments": {
"mediaId": "string"
}
}
Output schema
{
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"success",
"data"
]
}
media_get_url
Title: Get Media URL
Get the public URL for a media file. Use this to get a link for embedding in pages or sharing. Optional variant parameter for resized versions.
Required permission: media.read
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
mediaId |
string | Yes | — | Media ID |
variant |
string | No | — | Image variant (e.g., 'thumbnail', 'medium', 'large') |
Example call
{
"tool": "media_get_url",
"arguments": {
"mediaId": "string"
}
}
Output schema
{
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"success",
"data"
]
}
media_list
Title: List Media
List media files for a site with optional filters
Required permission: media.read
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
limit |
number | No | 20 |
Maximum number of results (1-100) |
offset |
number | No | 0 |
Number of results to skip |
type |
string | No | — | Filter by media type Allowed: image, video, document, other. |
search |
string | No | — | Search term for filename or description |
Example call
{
"tool": "media_list",
"arguments": {
"limit": 20,
"offset": 0
}
}
Output schema
{
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"metadata": {
"type": "object",
"properties": {
"limit": {
"type": "number"
},
"offset": {
"type": "number"
},
"total": {
"type": "number"
}
},
"required": [
"limit",
"offset",
"total"
]
}
},
"required": [
"success",
"data",
"metadata"
]
}
media_update
Title: Update Media Metadata
Update metadata for an existing media file
Required permission: media.update
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
mediaId |
string | Yes | — | Media ID |
filename |
string | No | — | File name |
alt_text |
string | No | — | Alt text for images |
description |
string | No | — | Media description |
tags |
array<string> | No | — | Tags for organization |
custom |
object | No | — | Custom fields |
Example call
{
"tool": "media_update",
"arguments": {
"mediaId": "string"
}
}
Output schema
{
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"message": {
"type": "string"
}
},
"required": [
"success",
"message"
]
}
media_upload
Title: Upload Media
Upload a new media file from exactly one source: URL, base64 payload, data URL, or artifact URI. Returns a media record with an ID that can be passed to page_create/page_update via media_ids. For large files, use the chunked upload flow: media_upload_start → media_upload_chunk (repeat) → media_upload_complete.
Required permission: media.create
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
filename |
string | No | — | File name (optional; derived from URL path when possible) |
url |
string | No | — | File URL (http/https). Use exactly one upload source. |
content_base64 |
string | No | — | Raw base64 file payload (or data URL). Use exactly one upload source. |
source |
object | No | — | Alternative source object. Provide exactly one of source.url, source.content_base64, source.data_url, source.artifact_uri |
type |
string | No | — | Media type Allowed: image, video, document, other. |
mime_type |
string | No | — | MIME type |
alt_text |
string | No | — | Alt text for images |
description |
string | No | — | Media description |
tags |
array<string> | No | — | Tags for organization |
Example call
{
"tool": "media_upload",
"arguments": {}
}
Output schema
{
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"data": {
"type": "object",
"additionalProperties": true
},
"message": {
"type": "string"
}
},
"required": [
"success",
"data"
]
}
media_upload_abort
Title: Abort Chunked Upload
Abort a chunked upload session and delete temporary chunk objects
Required permission: media.create
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
upload_id |
string | Yes | — | Upload session ID |
Example call
{
"tool": "media_upload_abort",
"arguments": {
"upload_id": "string"
}
}
Output schema
{
"type": "object",
"additionalProperties": true
}
media_upload_chunk
Title: Upload Chunk
Upload one base64 chunk to an active media upload session
Required permission: media.create
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
upload_id |
string | Yes | — | Upload session ID |
chunk_index |
number | Yes | — | Zero-based chunk index |
chunk_base64 |
string | Yes | — | Base64-encoded chunk payload |
Example call
{
"tool": "media_upload_chunk",
"arguments": {
"upload_id": "string",
"chunk_index": 1,
"chunk_base64": "string"
}
}
Output schema
{
"type": "object",
"additionalProperties": true
}
media_upload_complete
Title: Complete Chunked Upload
Finalize a chunked upload session and create the media record
Required permission: media.create
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
upload_id |
string | Yes | — | Upload session ID |
filename |
string | No | — | Override file name from session start |
type |
string | No | — | Media type Allowed: image, video, document, other. |
mime_type |
string | No | — | MIME type |
alt_text |
string | No | — | Alt text for images |
description |
string | No | — | Media description |
total_chunks |
number | No | — | Expected number of chunks |
total_size |
number | No | — | Expected total file size in bytes |
Example call
{
"tool": "media_upload_complete",
"arguments": {
"upload_id": "string"
}
}
Output schema
{
"type": "object",
"additionalProperties": true
}
media_upload_start
Title: Start Chunked Upload
Start a chunked media upload session for large files. Returns an upload_id. Follow with media_upload_chunk for each piece, then media_upload_complete to finalize. Use media_upload_abort to cancel.
Required permission: media.create
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
filename |
string | Yes | — | Target file name |
type |
string | No | — | Media type Allowed: image, video, document, other. |
mime_type |
string | No | — | MIME type |
alt_text |
string | No | — | Alt text for images |
description |
string | No | — | Media description |
total_chunks |
number | No | — | Expected number of chunks |
total_size |
number | No | — | Expected total file size in bytes |
Example call
{
"tool": "media_upload_start",
"arguments": {
"filename": "string"
}
}
Output schema
{
"type": "object",
"additionalProperties": true
}
This page is generated from the registered MCP tool providers. Do not edit it by hand.