Viddler

Official Viddler MCP: list videos, manage access control, pull proof-of-viewing analytics.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
87%
Naming quality
78%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'viddler_analytics_account_usage' name length outside 3-30 rangein viddler_analytics_account_usage

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,458Tokens (tool definitions)
~864 BTypical response size
Moderate attention impact (1.14% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "viddler-mcp": {
      "url": "https://mcp.viddler.com/mcp"
    }
  }
}

Remote endpoints

https://mcp.viddler.com/mcpstreamable-http

What it can do

Tool inventory

Tools (12)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡viddler_feedback_submit(category, message, page_url)

File a feature request, bug report, or general feedback to the Viddler team from inside your MCP client. Goes into the same triage queue as the in-app feedback widget. Use category 'feature' for feature requests (the default intent), 'bug' for problems, 'general' otherwise.

Input Schema

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "enum": [
        "feature",
        "bug",
        "general"
      ],
      "description": "Type of feedback. Use 'feature' for feature requests."
    },
    "message": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000,
      "description": "The feedback text (1-2000 characters)."
    },
    "page_url": {
      "type": "string",
      "maxLength": 500,
      "description": "Optional: the video or page URL this feedback is about."
    }
  },
  "required": [
    "category",
    "message"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡viddler_access_set_password(video_id, password)

Gate a video behind a secret password. While protected, playback (including embeds) requires the password and Viddler swaps to a Mux signed-playback id. Returns the updated protection state.

Input Schema

{
  "type": "object",
  "properties": {
    "video_id": {
      "type": "string",
      "description": "Video id or uniqueId."
    },
    "password": {
      "type": "string",
      "minLength": 1,
      "description": "The secret password viewers must enter."
    }
  },
  "required": [
    "video_id",
    "password"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴viddler_access_remove_password(video_id)

Turn off password protection for a video. Reverts to the public playback id so the video plays without a password again.

Input Schema

{
  "type": "object",
  "properties": {
    "video_id": {
      "type": "string",
      "description": "Video id or uniqueId."
    }
  },
  "required": [
    "video_id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡viddler_access_set_custom_url(video_id, custom_url)

Give a video a branded, human-friendly custom URL slug for sharing. Returns the updated video.

Input Schema

{
  "type": "object",
  "properties": {
    "video_id": {
      "type": "string",
      "description": "Video id or uniqueId."
    },
    "custom_url": {
      "type": "string",
      "minLength": 1,
      "description": "The desired URL slug (must be unique)."
    }
  },
  "required": [
    "video_id",
    "custom_url"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢viddler_analytics_get_views(video_id)

Return view counts and per-view records for a video: total views, remaining/available views, and the viewer log. The core 'who watched' proof-of-viewing data.

Input Schema

{
  "type": "object",
  "properties": {
    "video_id": {
      "type": "string",
      "description": "Video id or uniqueId."
    }
  },
  "required": [
    "video_id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪viddler_analytics_account_usage

Return the authenticated account's plan, quota used/remaining, and video count.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢viddler_videos_list

List videos owned by the authenticated account.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡viddler_videos_get(video_id)

Fetch the full record for one video: status, playback id, duration, moderation, storage state, protection. Poll this after create_upload until muxPlaybackId is no longer 'pending'.

Input Schema

{
  "type": "object",
  "properties": {
    "video_id": {
      "type": "string",
      "description": "Video id or uniqueId."
    }
  },
  "required": [
    "video_id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡viddler_videos_set_title(video_id, title)

Update a video's title.

Input Schema

{
  "type": "object",
  "properties": {
    "video_id": {
      "type": "string",
      "description": "Video id or uniqueId."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "description": "New title."
    }
  },
  "required": [
    "video_id",
    "title"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡viddler_videos_set_description(video_id, description)

Update a video's description.

Input Schema

{
  "type": "object",
  "properties": {
    "video_id": {
      "type": "string",
      "description": "Video id or uniqueId."
    },
    "description": {
      "type": "string",
      "description": "New description."
    }
  },
  "required": [
    "video_id",
    "description"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡viddler_videos_create_upload(title, file_size_bytes)

Step 1 of uploading a video. Returns { uploadId, uploadUrl }. PUT the raw video file bytes to uploadUrl (e.g. `curl -X PUT --upload-file video.mp4 '<uploadUrl>'` — no auth header needed, the URL is pre-signed). Then call viddler_videos_register with the uploadId to create the video record. Files must be at most 1 GB (1073741824 bytes). Free videos must be at most 10 minutes. Requires a videos:write token.

Input Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "maxLength": 200,
      "description": "Optional title to attach to the upload."
    },
    "file_size_bytes": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1073741824,
      "description": "Source file byte count for preflight validation. Send when known; omission supports older clients."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡viddler_videos_register(upload_id, title, description, custom_url)

Step 2 of uploading a video: after the file has been PUT to the uploadUrl, call this with the uploadId to create the video record. Returns the video (muxPlaybackId will be 'pending'). Poll viddler_videos_get until muxPlaybackId resolves — processing usually takes under a minute. If title/description are omitted, AI generates them from the video content.

Input Schema

{
  "type": "object",
  "properties": {
    "upload_id": {
      "type": "string",
      "description": "The uploadId returned by viddler_videos_create_upload."
    },
    "title": {
      "type": "string",
      "maxLength": 200,
      "description": "Optional explicit title."
    },
    "description": {
      "type": "string",
      "maxLength": 5000,
      "description": "Optional explicit description."
    },
    "custom_url": {
      "type": "string",
      "maxLength": 100,
      "description": "Optional custom URL slug."
    }
  },
  "required": [
    "upload_id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded12 tools
verifiedversion not recorded12 tools