MediaLab MCP Server

Give Claude direct access to MediaLab. Search, upload, download, organize, and share your media from a conversation, no scripts, no raw API calls.

What it is

The MediaLab MCP server enables Claude to securely connect to MediaLab using the MCP, translating natural language into structured MediaLab API calls.

MediaLab hosts it for you at https://mcp.medialabapps.eu, just connect and go, nothing to install or run yourself. There are two ways to connect:

  1. Claude connector (claude.ai, Claude Desktop and the Claude mobile apps): add MediaLab as a custom connector. Every user signs in with their own MediaLab account, no tokens to copy.
  2. Claude Code and other MCP clients: connect with your own MediaLab private token.

No credentials are stored on the server, every request runs in the security context of the user who authenticated it.

What Claude can do

The MCP server exposes MediaLab as a set of tools Claude can call directly on your behalf, grouped by what they let Claude do:

  1. Search & browse - quick name search, structured search using your metadata template fields, and browsing file, folder, and folder-contents details.
  2. Metadata - read the full metadata template, look up or add option values for select-lookup fields, and read or update a file's metadata values.
  3. Folders - create new folders and inspect folder details and contents.
  4. Upload - import a file from a URL. Uploading a file from your computer only works when you run the MCP server yourself; over the hosted server, Claude gives you the folder's link or an upload link instead.
  5. Download - get a signed, time-limited download URL for a file's source or a specific rendered format.
  6. Comments & reactions - read and add review comments, including timecoded comments for video review, and add or remove emoji reactions.
  7. Share links - generate, update, and revoke public share links for files and folders, and generate upload-invite links for external collaborators.
  8. Branding kits - list your branding kits so the right one can be applied to a share link.

The full list of tools and their parameters is in the tool reference below.

Connect Claude (web, Desktop, mobile)

An administrator adds a Claude cloud connection in MediaLab under Settings > Cloud storage > Cloud connections. The Set up in Claude window shows three values to add to Claude as a custom connector under Settings > Connectors:

  1. MCP server URL - https://mcp.medialabapps.eu/<your-medialab-address>/mcp, for example https://mcp.medialabapps.eu/your-company.medialab.app/mcp.
  2. OAuth client ID
  3. OAuth client secret

Each user then clicks Connect, signs in to MediaLab and allows access. Claude only gets the rights that user has in MediaLab. See Connecting MediaLab to Claude for the full steps.

The Claude integration has to be enabled for your MediaLab account; contact MediaLab support. Claude connects from Anthropic's servers, so your MediaLab instance must be reachable from the internet.

Connect Claude Code

You'll need:

  1. Claude Code installed.
  2. A MediaLab private token, generate one under Settings > Profile > API access.
  3. Your MediaLab instance URL, e.g. https://your-company.medialab.app.
claude mcp add --transport http medialab https://mcp.medialabapps.eu/mcp \
  --header "Authorization: Bearer <your-medialab-private-token>" \
  --header "X-MediaLab-URL: https://your-medialab-instance" \
  --scope user

Run this once from a terminal with Claude Code installed. --scope user makes it available in every project on your machine.

Example prompts

Once connected, just ask Claude in plain language - no need to know the tool or parameter names.

Example promptWhat happens
"Find my MediaLab file called "File 1.mp4""Claude calls search_medialab_assets with that query and returns a direct link to the matching file.
"Search MediaLab for a folder named "Demo""Claude sets include_files to false so only matching folders come back.
"Open File 1.mp4 in MediaLab"Claude will open this file in the browser.
"Upload highlights.mp4 to my Marketing folder and generate a share link with download permissions"Claude uploads the file, then generates a share link with the source format downloadable and returns it.
"Search for files with attribution "Jane Doe" and download them to my Downloads folder"Claude looks up the attribution metadata field, finds matching files, and fetches each one's download URL to save locally.
"Leave a comment on file 1234 at 00:01:23 saying the color grading needs work"Claude adds a timecoded review comment to the file, useful for video review workflows.
"Create a "Q1 Campaign" folder under Marketing and set up an upload link so our agency can send us files"Claude creates the folder, then generates an upload-invite link scoped to it.
"What metadata fields do we have for videos, and what are the valid values for "Usage Rights"?"Claude lists the client's metadata fields and looks up the option values for that field.

Security

  1. Claude connector: each user signs in with their own MediaLab account through OAuth. Claude asks for basic, user info, download, upload, manage, share and admin settings access, but only gets the rights the user has in MediaLab. Deleting the Claude connection in MediaLab signs everyone out of Claude at once.
  2. Claude Code: each connection authenticates with your own MediaLab private token, sent as a Bearer header on every request. Your private token grants access to your account, so use a token limited to the scopes you need, treat it like a password and never share it.
  3. Nothing is stored server-side, the MCP server holds no credentials of its own. Its logs contain request paths and status codes, not your search terms or file contents.

Tool reference

Every tool the MCP server exposes, with its parameters. Claude picks the right tool and fills in the parameters from your request, so you normally never need these names yourself.

Each entry in the filters parameter of search_medialab_files is an object with a key (a filter key from list_medialab_search_filters, e.g. title or meta_my_field), a value (a string, or an array of strings for list, nlist and range) and a match_strategy (eq, neq, like, nlike, lt, lte, gt, gte, range, list, nlist, null or nnull).

search_medialab_assets

Search MediaLab assets by name. Returns files and folders matching the query.

ParameterTypeRequiredDescription
querystringyesSearch term (minimum 2 characters)
include_filesbooleannoInclude files in results. Default: true.
include_foldersbooleannoInclude folders in results. Default: true.

list_medialab_search_filters

List the fields available for advanced/metadata search (search_medialab_files) on files or folders, including client-specific metadata template fields and their supported match strategies. Call this before search_medialab_files when filtering on a field you don't already know the key for.

ParameterTypeRequiredDescription
typefiles | foldersyesWhether to list filters for files or for folders.

search_medialab_files

Search for files using structured filters (including metadata template fields), or list files without filters, e.g. the most recent ones with order_by date_added and order_dir DESC. Use list_medialab_search_filters first to discover available filter keys and match strategies. Date fields only support range with [from, to]; relative values work, e.g. ["-7 days", "now"].

ParameterTypeRequiredDescription
filtersarraynoFilters to apply. Omit to list all files.
filter_merge_strategyand | ornoCombine filters with AND or OR. Default: "and".
limitnumbernoMax number of results (max 500). Default: 25.
offsetnumbernoOffset for pagination. Default: 0.
order_bytitle | date_addednoField to order results by. Default: "title".
order_dirASC | DESCnoOrder direction. Default: "DESC".

get_medialab_file_info

Get detailed information about a single MediaLab file by its file_id, including media metadata, QC/approval status, and flags (processing, deleted, locked, etc).

ParameterTypeRequiredDescription
file_idnumberyesThe file's ID.

get_medialab_file_meta

Get a file's title/description/reference plus all of its metadata template field values.

ParameterTypeRequiredDescription
file_idnumberyesThe file's ID.

update_medialab_file_meta

Update a file's title/description/reference and/or its metadata template field values (by field short name, single string values only - not for multi-value/array or JSON-type fields). Requires the 'manage' scope, and the account must either have file-edit permission or be the file's uploader. Fails on read-only files unless the client allows an override for the account's level.

ParameterTypeRequiredDescription
file_idnumberyesThe file's ID.
titlestringnoNew title.
descriptionstringnoNew description.
referencestringnoNew reference.
metarecordnoMetadata template field values to set, keyed by short name (see list_medialab_meta_fields)

get_medialab_folder_info

Get detailed information about a single MediaLab folder by its folder_id.

ParameterTypeRequiredDescription
folder_idnumberyesThe folder's ID (0 for root)

list_medialab_folder_contents

List the files and/or subfolders directly inside a MediaLab folder.

ParameterTypeRequiredDescription
folder_idnumberyesThe folder's ID (0 for root)
include_filesbooleannoInclude files in results. Default: true.
include_foldersbooleannoInclude subfolders in results. Default: true.

create_medialab_folder

Create a new subfolder inside a MediaLab folder. Requires the 'manage' scope and 'create' permission on the account used.

ParameterTypeRequiredDescription
parent_folder_idnumberyesThe parent folder's ID (0 to create at the root)
namestringyesName for the new folder.
referencestringnoOptional external reference to store on the folder.

upload_medialab_file

Upload a file to MediaLab, either from a remote URL (source_url) or, when running locally, from a file path on disk (local_path). Exactly one of source_url or local_path must be given. Over the hosted server only source_url, folder_id, folder_path and title are available.

ParameterTypeRequiredDescription
source_urlstringnoURL to fetch and import the file from.
local_pathstringnoAbsolute path to a local file to upload. Only available when the MCP server runs over stdio.
folder_idnumbernoTarget folder ID. Required when using source_url.
folder_pathstringnoFolder path to auto-create/select a subfolder under folder_id (requires 'create' rights)
titlestringnoTitle for the new file (defaults to the filename)
descriptionstringnoDescription for the new file (local_path uploads only)
referencestringnoExternal reference to store on the new file (local_path uploads only)
metarecordnoMetadata template fields to set, keyed by short name (local_path uploads only)

download_medialab_file

Get a signed, time-limited download URL for a MediaLab file's source, or for a specific rendered format (e.g. a transcode or preview image) if format_name is given. Requires download rights.

ParameterTypeRequiredDescription
file_idnumberyesThe file's ID.
format_namestringnoSpecific format to download (e.g. 'mp4_high'). Omit to download the original source.

list_medialab_file_comments

List review comments (including timecoded comments and threaded replies) on a MediaLab file. Requires the media comments add-on to be enabled for the client.

ParameterTypeRequiredDescription
file_idnumberyesThe file's ID.

add_medialab_file_comment

Add a review comment to a MediaLab file, optionally at a specific timecode (video review) or as a reply to an existing comment. Requires the media comments add-on to be enabled for the client.

ParameterTypeRequiredDescription
file_idnumberyesThe file's ID.
commentstringyesComment text.
timecode_instringnoTimecode for the comment, format HH:MM:SS or HH:MM:SS:FF. Omit for a general (non-timecoded) comment.
comment_idnumbernoID of an existing comment to reply to.

get_medialab_meta_template

Get the full metadata template: all groups and fields configured for this client, including field types and required/searchable/multiple flags. Use this to understand what metadata is available before searching or setting metadata on a file.

No parameters.

list_medialab_meta_fields

List all metadata fields configured for this client as a flat list.

No parameters.

get_medialab_meta_field

Get detailed information about a single metadata field by its short name.

ParameterTypeRequiredDescription
field_namestringyesThe metadata field's short name.

get_medialab_meta_field_options

Get the available options (value list) for a select/selectlookup metadata field. Use this to find valid values before filtering or setting that field.

ParameterTypeRequiredDescription
field_namestringyesThe metadata field's short name.

add_medialab_meta_field_option

Add a new option value to a select-lookup metadata field. Only works for fields of type 'selectlookup' - plain 'select' field options are managed through the meta template itself and aren't supported here (use get_medialab_meta_field to check a field's type first). Requires the 'manage' scope, and the account's user level must meet the client-configured minimum for managing lookup options.

ParameterTypeRequiredDescription
field_namestringyesThe metadata field's short name.
labelstringyesLabel for the new option.

list_medialab_file_reactions

List emoji reactions on a MediaLab file. Requires the media reactions add-on to be enabled for the client.

ParameterTypeRequiredDescription
file_idnumberyesThe file's ID.

add_medialab_file_reaction

Add an emoji reaction to a MediaLab file. Requires the media reactions add-on to be enabled for the client.

ParameterTypeRequiredDescription
file_idnumberyesThe file's ID.
reactionstringyesThe reaction emoji.

remove_medialab_file_reaction

Remove one of your own emoji reactions from a MediaLab file.

ParameterTypeRequiredDescription
file_idnumberyesThe file's ID.
reactionstringyesThe reaction emoji to remove.

Generate a unique, personal (revocable) public share link for one or more MediaLab files. Requires 'share' permissions for the client.

ParameterTypeRequiredDescription
file_idnumberyesThe file's ID.
filesarraynoAdditional file IDs to include in the same share link.
downloadarraynoDownloadable formats to allow.
expiresnumbernoDays until the link expires.
notificationbooleannoNotify when the link is viewed.
is_short_urlbooleannoUse a short URL (client default if omitted)
max_viewsnumbernoMax number of times this link can be viewed (0/omit for unlimited)
referencestringnoReference name shown in settings.
share_passwordstringnoPassword required to unlock the share link.

Generate a unique, personal (revocable) public share link for a MediaLab folder. Requires 'share' permissions for the client and the 'share_objects' add-on.

ParameterTypeRequiredDescription
folder_idnumberyesThe folder's ID.
is_recursivebooleannoAllow access to media in subfolders too.
downloadarraynoDownloadable formats to allow.
expiresnumbernoDays until the link expires.
notificationbooleannoNotify when the link is viewed.
is_short_urlbooleannoUse a short URL (client default if omitted)
max_viewsnumbernoMax number of times this link can be viewed (0/omit for unlimited)
referencestringnoReference name shown in settings.
share_passwordstringnoPassword required to unlock the share link.

Generate a personal upload link (optionally emailed) that lets external recipients upload files directly into a specific MediaLab folder. Requires the 'upload' scope, and the account used must have been granted the 'Share Upload' (upload_invite) permission flag by an administrator.

ParameterTypeRequiredDescription
folder_idnumberyesTarget folder for uploaded files.
toarrayyesRecipient email address(es)
subjectstringnoEmail subject.
messagestringnoPersonal message included in the email.
expiresnumbernoDays until the link expires.
nof_filesnumbernoMax number of files that may be uploaded (0/omit for unlimited)
max_sizenumbernoMax total filesize in bytes that may be uploaded (0/omit for unlimited)
notificationbooleannoNotify when files are uploaded.
is_short_urlbooleannoUse a short URL (client default if omitted)
send_emailbooleannoActually send the email? If false, only the link(s) are generated. Default: true.
allow_foldersbooleannoAllow recipients to create subfolders (requires 'create' permissions)
share_passwordstringnoPassword required to unlock the upload link.
is_auto_home_folderbooleannoAuto-organize uploads into a home folder per recipient.
email_languageen | nlnoLanguage of the invite email.

Update settings on an existing MediaLab share link (file, folder, or playlist), by the share link ID returned when it was created. Only the parameters given are changed. Requires 'share' permissions for the client.

ParameterTypeRequiredDescription
idstringyesThe share link's ID (returned when it was created)
expiresstringnoNew expiry, e.g. '2026-01-01' or 'now'. Omit to leave unchanged.
max_viewsnumbernoMax number of views (0 for unlimited)
share_passwordstringnoNew password to unlock the link. Pass an empty string to remove the current password.
downloadarraynoDownloadable formats to allow.
is_recursivebooleannoWhether a folder share link includes subfolders.
share_player_branding_logobooleannoAdd/remove the player watermark image (requires the branding watermark add-on)
brand_idstringnoBrand to apply (requires the branding kits add-on). Pass an empty string to remove the current brand.

Immediately stop a MediaLab share link from working, by setting its expiry to now. This is the documented way to revoke an active link - the underlying delete endpoint only accepts links that have already expired. Requires 'share' permissions for the client.

ParameterTypeRequiredDescription
idstringyesThe share link's ID (returned when it was created)

list_medialab_brands

List the branding kits (brands) configured for this client, with their IDs. Use the returned brand_id with the brand_id parameter on create_medialab_file_share_link, create_medialab_folder_share_link, or update_medialab_share_link to apply a branding kit to a share link. Requires admin privileges and the branding add-on.

No parameters.

get_medialab_brand

Get detailed information about a single branding kit (brand) by its ID. Requires admin privileges and the branding add-on.

ParameterTypeRequiredDescription
brand_idstringyesThe brand's ID.