MCP App Store
by KeenEthics
Business & Operations
Kontainer icon

Kontainer

by Kontainer A/S

Overview

Kontainer connects ChatGPT to your organization’s DAM and PIM workspace. Find and inspect images, videos, and documents; organize folders and collections; manage asset metadata and CDN delivery; maintain product records and channel data; administer workspace users and permissions; and review usage statistics. Actions run within the authenticated Kontainer tenant and follow the user’s Kontainer permissions.

Tools

bulk-delete-category-item

ChatGPT
Delete many PIM category items in one call. Pass items as an array; each entry names one item by { category_id, item_id }. Items are deleted independently — a failure on one is reported in failed and the rest still delete.

bulk-delete-channel-item

ChatGPT
Delete many PIM channel items in one call. Items are deleted independently — a failure on one is reported in failed and the rest still delete.

bulk-delete-file

ChatGPT
Delete (move to trash) many files in one call. Pass file_ids as an array of file IDs. Items are deleted independently — a failure on one file is reported in failed and the rest still delete. Each file must not be trashed and requires delete permission.

bulk-delete-folder

ChatGPT
Delete many folders in one call. Pass folder_ids as an array of folder IDs. Items are deleted independently — a failure on one is reported in failed and the rest still delete. Each folder must not be trashed/locked, contain subfolders, or hold files with external references. To delete a whole tree, order folder_ids deepest-first (children before parents) so parents are empty by the time they are processed; each failed entry explains how to clear its block.

bulk-manage-custom-fields

ChatGPT
Attach or update custom-field metadata on many files in one call. Pass items as an array; each entry is a single manage-custom-fields request: { action, file_id, category_id (attach), category_item_id (update), values }. To set the same values on many files, repeat the same category_id + values across entries, varying only file_id. Field save_names and the category id are the same ones manage-custom-fields takes. Items are applied independently — a failure on one file is reported in failed and the rest still apply.

bulk-manage-folder-group-permission

ChatGPT
Update or revoke many user-groups' folder access in one call. Pass items as an array; each entry is a single manage-folder-group-permission request: { action ('update' or 'remove'), folder_id, user_group_id, permission (for 'update') }. Every entry affects every member of that group and takes effect immediately. Items are applied independently — a failure on one is reported in failed and the rest still apply. Requires administrator privileges.

bulk-manage-folder-user-permission

ChatGPT
Update or revoke many users' folder access in one call. Pass items as an array; each entry is a single manage-folder-user-permission request: { action ('update' or 'remove'), folder_id, user_id, permission (for 'update') }. Every entry takes effect immediately. Items are applied independently — a failure on one is reported in failed and the rest still apply. Requires administrator privileges.

bulk-update-category-item

ChatGPT
Update element attributes on many PIM category items in one call. Pass items as an array; each entry is a single update-category-item request: { category_id, item_id, attributes }. Items are applied independently — a failure on one is reported in failed and the rest still apply.

bulk-update-channel-item

ChatGPT
Update element attributes on many PIM channel items in one call. Pass items as an array; each entry is a single update-channel-item request: { channel_id, item_id, attributes }. Items are applied independently — a failure on one is reported in failed and the rest still apply.

bulk-update-file

ChatGPT
Rename many files in one call; it changes only file names, custom-field values such as alt text, photographer or approval are set separately. Items are applied independently — a failure on one file is reported in failed and the rest still apply.

bulk-update-folder

ChatGPT
Update many folders in one call. Pass folders as an array; each entry is a single update-folder request: { folder, name, description, ... }. Items are applied independently — a failure on one is reported in failed and the rest still apply.

bulk-update-user

ChatGPT
Update many users in one call. Pass users as an array; each entry is a single update-user request: { user_id, name, email, active, ... }. Items are applied independently — a failure on one is reported in failed and the rest still apply.

create-album

ChatGPT
Create a new album (a.k.a. collection) — a curated selection of files drawn from any folders in the DAM, without moving the originals. Use when the user asks to "make a collection", "build a selection for the press release", "group these photos for a campaign", or "share a curated set". The album starts empty; files are added to it separately.

create-category-item

ChatGPT
Create a level-0 item (a product record) under one variation of a PIM category. The item's display name is the value of its variation level's representative element, which is rarely keyed "name". Channel projections sync automatically. Returns the item id and display name.

create-category-variation-item

ChatGPT
Create a child variation item under an existing PIM category item, with its own element values, for SKU-level variants (size, colour, market) that diverge from the parent. The child variation level is the one below the parent's. Returns the created item.

create-channel-item

ChatGPT
Create a top-level item in a PIM channel (e.g. the webshop copy of a product with its own translated title or channel-only images), under one of the channel's variations. Returns the created item.

create-channel-variation-item

ChatGPT
Create a child variation item under an existing PIM channel item, with its own element values, for channel-level variants (e.g. one size or colour entry per SKU for a marketplace). The child variation level is the one below the parent's. Returns the created item.

create-file-cdn-video

ChatGPT
Enable CDN streaming for a video file — triggers transcoding to streaming-friendly formats and makes the file embeddable. Use when the user asks to "make this video streamable", "enable CDN for playback", or "get an embed code for a video". Requires the CDN feature.

create-folder

ChatGPT
Create a new folder (or sub-folder) in the asset library — for a campaign, project, brand, partner, etc. Requires a parent folder and a unique name within that parent. Optional: description, layout flags (show_large_folder_name, hide_folder_name, thumbs_scale_to_fit, apply_folder_image_hue), thumbnail file.

create-item-variation

ChatGPT
Create a child variation item under an existing PIM category item from a JSON:API resource object, for market-, language- or attribute-specific versions (EU vs US copy, colour variants). The child variation level is the one below the parent's. Returns the created item's id and name.

create-mirror-folder

ChatGPT
Create a mirror folder under a parent folder.

create-pim-resource

ChatGPT
Create a new PIM resource — a reusable data record (e.g., brand, manufacturer, material) that items can reference via a resource-typed element instead of inlining the same data repeatedly. Use when the user asks to "add a brand", "register a supplier", or "define a new material" for the catalog. Resources are scoped to one category.

create-upload-url

ChatGPT
Get a signed URL, valid for 15 minutes, that uploads one file into a folder when you send the bytes to it from your code sandbox — the way to put back a file you downloaded and edited, or any file you generated, without base64-encoding it into a tool call. Send the file with curl -sS -T <local-file> "<upload_url>" (raw PUT) or curl -sS -F file=@<local-file> "<upload_url>" (multipart POST); no auth header is needed. The response is JSON with the new file's id. Files over 500 MB are refused. The file name and conflict mode are fixed when the URL is created. Handle name collisions with file_conflict_resolution: 'rename' (default — keep both) or 'overwrite' (replace the existing file of the same name, e.g. when saving an edited version back). Ask the user before overwriting, since it cannot be undone.

create-user

ChatGPT
Create a new user account in the Kontainer workspace. Use when an admin asks to "add a user", "invite a teammate", or "onboard a colleague". Email must be unique within the client. Set sendInvite=true to email the new user a link to set their password (recommended for most flows). Group membership and folder access are granted separately after creation. Requires administrator privileges.

create-user-group

ChatGPT
Create a new user group. Groups are the recommended way to manage folder permissions at scale — grant access to a group once, then add/remove members. Use when the user asks to "create a team", "add a department", or "set up a new client group". Optional flags control per-group capabilities: folder sharing, internal sharing, CDN activation with download. Members and folder access are added separately after creation. Requires administrator privileges.

delete-category-item

ChatGPT
Permanently delete a PIM category item (product). Irreversible. Fails if the item is referenced as a resource in other items. Deleting also removes any variations of this item and its channel-item counterparts across all channels. Check the item's external references and channel items first to gauge the downstream impact.

delete-channel-item

ChatGPT
Remove an item from a PIM channel (unpublishes it from that channel only — the underlying category item stays intact). Irreversible. Fails if this channel item is referenced as a resource in other items. Use when the user asks to "unpublish this from the webshop", "remove from the French store", or "pull this listing".

delete-file

ChatGPT
Move a file to trash (soft delete). The file must not already be trashed and the user needs delete access on the original folder. Deleting can break external references to the file; a trashed file can be restored later.

delete-file-cdn-video

ChatGPT
Disable CDN streaming for a video file — removes the transcoded renditions and breaks any existing embed codes. Irreversible, and an embed that is live on a public page stops working. The underlying source video remains untouched and can have CDN streaming enabled again later.

delete-folder

ChatGPT
Delete an empty folder. Fails if the folder has sub-folders, files with external references, is locked, or already in the trash. Requires delete access.

delete-thumbnail

ChatGPT
Remove a file's custom thumbnail and fall back to the auto-generated preview. Use when the user asks to "reset the thumbnail", "revert to the default preview", or "remove the custom thumbnail". The underlying file is not affected; only the custom preview image is deleted. A replacement custom thumbnail can be uploaded again later.

delete-user

ChatGPT
Permanently delete a regular (single) user account. Does NOT work on shared users or administrators — those return "resource not found"; tell the user shared/admin accounts can't be deleted here. Irreversible. Removes the user's group memberships and folder permissions; historical activity (uploads, operation logs) is preserved under the deleted user's name. To revoke access temporarily instead, deactivate the user (active=false). Requires administrator privileges.

delete-user-group

ChatGPT
Permanently delete a user group. Irreversible. Deleting a group revokes every folder permission granted via it; members themselves are not deleted but lose the group's access. Requires administrator privileges.

find-file-duplicates

ChatGPT
Find files whose content is identical (matched by hash). Use when the user asks about "duplicate photos", "the same image uploaded twice", "storage cleanup", or "which files can I remove". Omit file_id to list every duplicate group in the DAM; pass a file_id to get the duplicates of that specific file.

get-category-item

ChatGPT
Fetch one PIM category item: its display name (the value of its variation level's representative element), updated_at and every element value keyed by property_safe_name, plus optional related records.

get-category-structure

ChatGPT
Fetch the full structure of a PIM category — the ordered list of elements (fields), their types, option sets, and variation configuration. Use before creating/updating items so you know which attributes are valid, required, or variation-specific.

get-cdn-statistics

ChatGPT
Retrieve CDN usage statistics — bandwidth, request counts, and top assets served via the public CDN. Use when the user asks about "CDN bandwidth", "our most-viewed public images", "embed traffic", or campaign reach via public links.

get-cdn-video-embed-settings

ChatGPT
Retrieve embed settings and HTML code for embedding a CDN video with customizable player options.

get-channel

ChatGPT
Fetch a single PIM channel by ID — name, description, and whether it is a resource channel or a subchannel. Use when the user asks about a specific channel, or before creating/listing items in it.

get-channel-item

ChatGPT
Fetch a single channel item by ID — the channel-specific attribute values for a published product. Use when the user asks about a specific product on a specific channel ("show me how this product looks in the French webshop"), or before updating/deleting its channel presence.

get-download-statistics

ChatGPT
Retrieve download statistics — which files have been downloaded, by whom, when, via which template. Use when the user asks "what are our most-downloaded assets", "did anyone grab that campaign photo", "download activity by department", or for usage reporting.

get-element

ChatGPT
Fetch a single PIM element (field) by ID — its name, property_safe_name (the key item values are written under), type, decimals, and whether it is multi-value, selectable, radio, calculated or HTML. Use when you need to understand one field before setting a value or when translating element labels.

get-file

ChatGPT
Fetch one file by ID with its metadata (name, size, dimensions, folder, timestamps, archive and duplicate state) and any requested related records: albums, tags, custom fields, CDN, video CDN, focal point, faces.

get-file-cdn-video

ChatGPT
Fetch CDN video details for a file — transcoding status, available renditions, streaming URL, and allow_download flag. Use when checking whether a video is ready to stream/embed, or as a lookup before updating its settings. Does not return the HTML embed snippet or player options.

get-folder

ChatGPT
Fetch a single folder by ID — name, description, hierarchy, flags and related folders. Use when the user asks about a specific folder (details, parent, source) or you need the folder record before another operation. Supports include/relationships: parent_folder, source_folder.

get-global-variable

ChatGPT
Fetch a single global variable by ID — a workspace-wide key/value setting used in templates, CDN embeds, branding, etc. Use when the user asks about a specific variable's value or needs the record before reporting a configuration.

get-login-statistics

ChatGPT
Retrieve login statistics — who logged in, when, and how often. Use when the user asks "who's been active", "who hasn't logged in recently", "login activity for last month", or for license/seat audits.

get-meta

ChatGPT
Fetch Kontainer system meta — configured languages, enabled features, current client info, and workspace-level settings that other tools rely on. Useful as a first orientation call (or when the user asks "what languages do we support", "which features are enabled", "who am I logged in as").

get-pim-category

ChatGPT
Fetch a single PIM category by ID — name, description, and whether it is a resource or file category. Use when the user asks about a specific product category or you need the category record before creating/listing items.

get-upload-statistics

ChatGPT
Retrieve upload statistics — files uploaded to the DAM by whom, when, how much. Use when the user asks "how much has the team uploaded this month", "storage growth over time", or "which users are adding the most content".

get-user

ChatGPT
Fetch a single user by ID — name, email, active state, sharing/download permissions, menu flags, metadata, and last-login timestamp. Use when the user asks about a specific person, or when you need the user record before another operation (updating, deactivating, managing groups/permissions). Relationships/includes: user_groups.

get-user-group

ChatGPT
Fetch a single user group by ID — name, note, active state, and sharing/brand flags. Use when the user asks about a specific group, or you need the group record before another operation (updating, managing membership, granting permissions).

get-user-invite-url

ChatGPT
Retrieve the existing invitation URL and expiry for a user — the signed link the recipient uses to set their password and activate their account. Use when the user asks "what is the invite link for this user" or "has their invitation expired". Read-only: does not generate a new link.

list-category-items

ChatGPT
List items in a specific PIM category — the product records under that category. Use for "show all products in X category", "browse the catalog", or as a lookup before fetching/updating a specific item. Returns the matching products a page at a time (with their variations), unsorted: pagination.next_page is the page to read next, null on the last. Supports relationships. Rows include every variation level (products, then e.g. their colourways and sizes); pass level: 1 for the products themselves. With fields, each row also carries category_id, item_id and attributes in exactly the shape a category item update takes, so the values can be edited and the rows sent back as a bulk update.

list-channel-items

ChatGPT
List items published in a specific PIM channel — the product records as they appear in that channel (with channel-specific overrides applied). Use for "show what's in the webshop feed", "audit this marketplace's catalog", or to compare channel output against the source category. Each row is an end-level variant carrying its parents' values, so a catalog with sizes returns one row per size: pass fields to keep only the values you need. To read or fix text across products, the category's own item listing with fields gives one row per product, ready to send back as a bulk update. Cursor-paged: when pagination.next_page_after is set, pass it back as page_after (with the same page_size, sort and filter) to fetch the next page; null means this was the last page.

list-channels

ChatGPT
List PIM channels — the outbound destinations where catalog data is published (webshops, marketplaces, print catalogs, ERPs). Use when the user asks "what channels are configured", "where are products syncing to", or as a lookup before creating/updating channel items. See kontainer://context/pim-channels-and-fields for the per-session overview. Returns at most the first 500 PIM channels, sorted by name; there is no paging or sorting, so when pagination.total exceeds pagination.returned the rest are not reachable through this tool. Supports relationships.

list-classification-label-translations

ChatGPT
Retrieve all translations for a specific classification label across different languages.

list-dam-categories

ChatGPT
Lists DAM categories (Digital Asset Management) for file-specific organization. Supports pagination.

list-dam-elements

ChatGPT
Lists all metadata elements (fields) that are configured for a DAM category. Supports relationship/include expansion and pagination.

list-download-templates

ChatGPT
List download templates — preset export configurations (file format, resolution, colour space, watermark, metadata profile) that users choose when downloading assets, e.g. "Web JPG 1200px", "Print TIFF 300dpi", "Social 1080 square". Use as a lookup before downloading files with a template applied, or when the user asks "what download formats are available" or "what presets exist for print".

list-element-resource-options

ChatGPT
Retrieve the resource options available for a specific PIM element (an element that references a resource category). Returns the first page of options, unsorted; when pagination.total exceeds pagination.read narrow the result with filter.

list-element-types

ChatGPT
List the element (field) types supported by the platform — text, number, date, reference, asset, option set, etc. Use when the user asks "what field types exist", "can I use a date field", or when designing PIM/DAM metadata schemas before creating/configuring elements.

list-elements

ChatGPT
List the elements (fields) defined on a PIM category — name, type, options, required/variation flags. Use when the user asks "what fields does this category have", "what attributes can I set", or before programmatically building an item payload. Returns every element of the category in one response.

list-file-data-export-templates

ChatGPT
List file data export templates — preset configurations for exporting file metadata (which meta fields and custom fields to include, custom export name, whether to include thumbnails and download options) to Excel/CSV. Use when the user asks "what export templates exist" or before exporting file data.

list-file-deletion-warnings

ChatGPT
Check what warnings would prevent deleting a specific file, including folder permissions and external references.

list-file-external-references

ChatGPT
Find all external references to a file, showing where it is used in other systems or contexts.

list-files

ChatGPT
List the files in one folder, paged, optionally filtered by updated_at and with requested related records inlined per file (custom fields, tags, albums, etc.). For folder browsing, not keyword or metadata search across folders.

list-files-by-state

ChatGPT
Browse files by lifecycle state — use this when the user asks about the trash can, restoring deleted files, or auditing what has been removed. Pass state='trashed' for files currently in the trash (recoverable), 'deleted' for permanently removed files, or 'removed' for the combined set.

list-folder-deletion-warnings

ChatGPT
Retrieve deletion warnings for a folder (folder must not be trashed). Returns meta flags: deletable, is_cdn_folder, is_mirrored, smart-folder usage, files with CDN/consent/external refs, etc.

list-folders

ChatGPT
List or browse folders in the asset library. Use this to show the folder tree, find a folder by name, or enumerate sub-folders of a given parent. Pass parent_folder_id to list children of one folder; omit it to list everything. Top-level folders have the client root folder as parent_folder_id. Filters: parent_folder_id, source_folder_id, name/description (exact), updated_at range (updated_date_gte/updated_date_lte). Excludes root and trash.

list-global-variables

ChatGPT
List global variables — workspace-wide key/value settings referenced by templates, CDN embeds, and branding. Use when the user asks "what variables are configured", "show me the workspace settings", or as a lookup before resolving a templated value.

list-incomplete-category-items

ChatGPT
Find all category items that are incomplete or missing required information with pagination support.

list-pim-categories

ChatGPT
List PIM categories — the top-level groupings that hold product items (e.g., "Apparel", "Footwear", "Accessories"). Use when the user asks to "show the product categories", "what PIM categories exist", or as a lookup before creating/fetching items. Consult kontainer://context/pim-channels-and-fields first if you already have the session context. Returns at most the first 500 PIM categories, sorted by name; there is no paging or sorting, so when pagination.total exceeds pagination.returned the rest are not reachable through this tool. Supports relationships.

list-pim-resources

ChatGPT
List PIM resources defined for a category — the pool of reusable records (brands, suppliers, materials, etc.) that items reference. Use when the user asks "what brands do we have", "list the available manufacturers", or as a lookup before assigning a resource to an item. Returns at most the first 500 resources; there is no paging or sorting, so when pagination.total exceeds pagination.returned the rest are not reachable through this tool. Supports relationships.

list-user-groups

ChatGPT
List user groups in the workspace. Use for "show all groups", "find a team by name", or as a lookup step before granting folder permissions to a group. Requires administrator privileges.

list-users

ChatGPT
List users in the Kontainer workspace. Use for "show all users", "who has access", "find a user by name" (there is no name filter: page through and match on name/email), or auditing active vs inactive accounts. Paging defaults page_size=100, limit 500. Relationships/includes: user_groups. Requires administrator privileges.

list-video-download-templates

ChatGPT
List video download templates — preset export configurations for video assets (file format, resolution, frame rate, bitrate, watermark, audio handling) that users choose when downloading videos, e.g. "Web MP4 1080p", "Social square 720p". Use as a lookup before downloading a video, or when the user asks "what video download formats/presets are available".

manage-album-files

ChatGPT
Curate the contents of an album (collection). Use action='add' to append files (duplicates skipped; max 500 per call), 'replace' to set the exact list (empty array clears it; max 500 per call), or 'remove' to drop a single file. Albums don't move files from their source folders — they're shared selections for sharing, campaigns, or filtered views.

manage-custom-fields

ChatGPT
Attach or update custom-field metadata on a file — photographer, copyright, campaign, SKU, region, etc. Use action='attach' the first time a file is being bound to a DAM custom-field category (creates the file↔category link and fills values in one go). Use action='update' afterwards to change any subset of values on that same file+category link. Discover fields first: - Use list-dam-categories to find the DAM category ID. - Use list-dam-elements with that category to see every element's save_name (the property-safe key) and its type (text, select, boolean, date, numeric, multivalue, etc.). - Use get-file or list-files with includes=custom_fields to read current values on a file. Value format for the values param: - Scalar fields: { photographer: { value: 'Jane Doe' }, year: { value: 2025 } }. - Multivalue fields: { regions: [{ value: 'EU' }, { value: 'US' }] }. - Keys MUST match the element save_name exactly — using element id or display name will fail validation. - Leave a key out to keep the current value; pass { value: null } (or '') to clear it (if the element is nullable).

manage-element-option

ChatGPT
CRUD for DAM element options. 'list' returns all options for an element; 'get' fetches one option; 'create'/'update'/'delete' modify them.

manage-element-option-translation

ChatGPT
CRUD for element option translations (multilingual variants of an element option). Choose action: 'list' / 'get' to read, 'create' / 'update' to write, 'delete' to remove. The global_variable_value_id ties a translation to a specific language/context — required on 'create'.

manage-folder-group-permission

ChatGPT
Grant, update, audit or revoke a user-group's access to a folder — for role-based access (e.g. "Press", "Retailers", "Agency"). Use action='list' to see all group permissions on the folder, 'get' for one group, 'update' to set/change permission level, or 'remove' to revoke. Every change affects every member of the group and takes effect immediately; action='list' reports who currently has access. Requires administrator privileges. Permission levels (pass one of these as the permission param for action='update'): - inherit — take whatever the parent folder grants - none — explicitly block access, even if a parent folder would grant it - read — view and download files - download — read plus bulk download / download-templates - write — upload, edit metadata, organise - delete — write + move to trash Note: admin cannot be granted via a group — it must be set on each user.

manage-folder-user-permission

ChatGPT
Grant, update, audit or revoke a user's access to a folder. Use action='list' to see who has access, 'get' to inspect one user's permission, 'update' to set/change it (pass a permission level — see below), or 'remove' to revoke access entirely. Role-based access is managed by manage-folder-group-permission instead. 'remove' takes effect immediately and can lock the user out mid-session. Requires administrator privileges. Permission levels (pass one of these as the permission param for action='update'): - inherit — take whatever the parent folder / group grants (default for new users) - none — explicitly block access, even if a parent folder would have granted it - read — view and download files - download — same as read plus bulk download / download-templates - write — upload, edit metadata, organise - delete — write + move to trash Note: admin is not assignable via this tool — admin status is set on the user record itself.

manage-user-group-membership

ChatGPT
Add or remove a user from one or more user groups. Use action='add' when the user should inherit the permissions of a group (e.g. adding a reseller to the "Resellers" group); use 'remove' to revoke group membership. Both actions change what folders the user can reach via inherited group permissions, so 'remove' can revoke folder access the user was relying on. Requires administrator privileges.

manage-user-invite-url

ChatGPT
Fetch or generate an invitation URL for a user — a signed link the recipient uses to set their password and activate their account. Use action='get' to retrieve the existing link (if any) and expiry, or action='create' to generate a fresh one (e.g. when onboarding a partner, reseller, agency user, or journalist, or when the previous link has expired).

ping

ChatGPT
Checks MCP server availability and echoes an optional message.

search-files

ChatGPT
Search the asset library for images, videos, logos and documents by keyword, filename, file extension, metadata value, custom field, folder, or date range. Use this as the default tool whenever the user asks to "find", "look for", "search", or "locate" an asset; falls back to simple list tools only for straight browsing. Results cap at 10000.

search-operation-logs

ChatGPT
Search the operation logs — the audit trail of every user action: uploads, downloads, permission changes, deletions, logins, etc. Use when the user asks "who did what when", "who deleted this", "show activity since Monday", or for compliance/audit reports. Supports timestamp range filters (filter.timestamp.gte / .lte), pagination, and sorting.

send-user-email

ChatGPT
Email a user. Use type='welcome' to send account-setup instructions to a newly invited user (partner, reseller, journalist, colleague); use type='login' to re-send login credentials to a verified user who has lost access. Sending an email cannot be undone.

set-cdn-distribution

ChatGPT
Turn public CDN delivery on or off for one or more files. Use action='enable' when the user wants to make files publicly embeddable in a shop, CMS, CRM or website (produces CDN links); use action='disable' to revoke public access and deactivate existing CDN URLs. Pass one file_id for a single file or up to 100 IDs for bulk updates. Both actions are outwardly visible: 'enable' exposes the file to the public internet, including brand-sensitive assets; 'disable' breaks any live embeds of these files.

stream-file

ChatGPT
Get the full original file (not a thumbnail) so you can use it: insert a logo into a document you generate, edit an image, convert a file, then upload the result back into a folder. Always returns download_url, a signed link valid for 15 minutes that needs no authentication — fetch it from your code sandbox (e.g. curl -L -o <filename> "<download_url>") or give it to the user to click. Small files are additionally returned inline: images up to 3.75 MB as an image you can see, and any other file up to 256 KB as an embedded resource with its bytes. To only look at a file, its thumbnail is cheaper.

stream-file-thumbnail

ChatGPT
Return a file's thumbnail as an inline MCP image the model can actually see and describe. Covers requests to view, see, describe, or display a file's content (images, videos, documents). Size defaults to "small" (≈600×350) which is enough for most "what's in this picture?" questions; size="large" (≈1280×1024) returns more detail, enough to read small text in the image. Does not return the full original file (needed to edit it, insert it into a document, or re-upload it). The response includes the image (for the LLM to view) alongside text metadata (id/mime/size) for record-keeping.

transfer-to-folder

ChatGPT
Move or copy files and/or folders into a destination folder. Actions: 'move' relocates items (originals disappear from their source); 'copy' duplicates them; 'archive-move' moves items across the archive boundary — use when the user asks to archive assets (destination is an archived folder) or restore them from archive (sources are archived, destination is not). Archive moves are destructive: they strip album/collection references and other runtime links. Every source must be on the same side of the archive boundary (all archived, or all not archived). Requires the Archive feature to be enabled on the client. Handle name collisions with file_conflict_resolution: 'rename' (default — keep both), 'skip', or 'overwrite'. Only file and folder resource types are accepted in sources.

update-category-item

ChatGPT
Update a PIM category item — set or change element values (product fields like title, description, SKU, price, colour, size, etc.). Use when the user asks to "update a product", "set the price", "fill in missing fields", or "translate this item". Pass attributes as an object keyed by element property_safe_name (from get-category-structure), each an object with a value. Value formats by element type: string/text/longtext → string; integer/number → number; boolean → true/false; date → "YYYY-MM-DD"; datetime → "YYYY-MM-DD HH:MM:SS"; translatable elements use the locale-suffixed key (e.g. title_en, title_da). Selectable/radio elements take the element OPTION ID (integer, from list-element-resource-options or the element-options link in get-category-structure) — NOT the option label. Reference elements take the target id: file references → file id, resource/PIM references → category item id; multi-value references take an array of ids. Call get-category-structure first to know which elements are valid and variation-specific.

update-cdn-file-video

ChatGPT
Update playback settings on an existing CDN video — currently: allow_download (whether viewers can download the original from the embed). Use when the user asks to "let viewers download this video" or "lock this video from downloads". Takes the CDN video ID (not the file ID); get it from get-file-cdn-video if needed.

update-channel-item

ChatGPT
Update a channel item's attribute values — change channel-specific overrides (translated copy, channel-only imagery, marketplace-mandatory fields). Use when the user asks to "edit the French description", "update the webshop title", or "tweak the marketplace listing". Pass attributes keyed by element code with a value property; only channel-mapped elements are accepted. Does not affect the underlying category item.

update-file

ChatGPT
Rename a file. Use when the user asks to rename an asset or fix a filename. The name must be unique within the folder. It changes only the file name: custom-field values such as alt text, photographer or approval are set separately.

update-folder

ChatGPT
Rename a folder or change its metadata/display flags. Use when the user asks to rename, re-describe, change the thumbnail, or adjust how a folder is displayed. Name must stay unique within its parent.

update-pim-resource

ChatGPT
Update the attribute values of an existing PIM resource (e.g., rename a brand, update a supplier contact). Changes propagate to every item that references this resource. Use when the user asks to "rename the brand", "fix the supplier address", or "correct material data across all products". Pass attributes keyed by element code with a value property. When many items reference the resource the update runs as a background job and the response returns its job_id instead of the updated record.

update-user

ChatGPT
Update a user's profile — name, email, company, active state, menu/brand flags, metadata. Use when the user asks to "rename a user", "deactivate someone", "update contact info", or "change custom metadata". Email must remain unique within the client. Does not change group membership (use manage-user-group-membership) or folder permissions (use manage-folder-user-permission). Prefer active=false over delete-user when disabling access temporarily.

update-user-group

ChatGPT
Update a user group — rename it, change its note, or toggle group-level capabilities (active state, sharing flags, CDN activation, menu/brand flags). Use when the user asks to "rename a group", "update a team note", or "change what a group is allowed to do". Does not change membership (use manage-user-group-membership) or folder permissions (use manage-folder-group-permission).

upload-file

ChatGPT
Upload a photo, video, logo, document, or any other file into a folder. Choose exactly one source: file_content (base64-encoded bytes; preferred for files attached to the chat — read the bytes yourself and encode them, do not ask the user to provide a URL), file_url (a public http/https URL), or file_path (only useful when the path exists on the MCP server's filesystem; almost never the right choice for hosted assistants). Use for adding new campaign material, product shots, brand assets, etc. Handle name collisions with file_conflict_resolution: 'rename' (default — keep both) or 'overwrite' (replace the existing file of the same name). Ask the user which mode to use when a conflict is likely, since 'overwrite' cannot be undone. Same parameter name and semantics as transfer-to-folder.

upload-thumbnail

ChatGPT
Upload or replace the preview thumbnail for a file — used for videos, PDFs, or any asset where the auto-generated thumbnail doesn't match what the user wants shown in listings and shares. Use when the user asks to "set a custom thumbnail", "change the preview image", or "fix the thumbnail for this video". Accepts a local image file or base64-encoded image data.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

App Stats

104

Tools

3

Prompts

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily