PerspectPerspectDocs
Go to Admin
View as Markdown

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.