MCP server for managing Cloudinary digital assets including uploading, listing, searching, transforming, and organizing media assets and folders
The Cloudinary MCP server presents a mixed quality profile. Strengths: 31 tools with mostly clear verb-noun naming (upload-asset, delete-asset, search-assets); tool annotations properly declared (readOnlyHint, destructiveHint, idempotentHint, openWorldHint visible in tools.ts); comprehensive resource coverage across asset management domains. Weaknesses: Many tool descriptions lack specificity and prerequisite guidance. Parameter schemas are not fully visible in the provided source excerpt, only tool names and descriptions are clearly shown, forcing inference. Error handling patterns are not evident in the code sample. Several tools lack clear output schema documentation. The server uses STDIO transport, which is a hard cap at 50 per protocol readiness rules. Average tool quality reflects good naming discipline but incomplete parameter and schema documentation.
Updates an existing asset's identifier (public ID) and optionally other metadata in your Cloudinary account
Updates an existing asset's metadata, tags, and other attributes using its asset ID Updates one or more attributes of a specified resource (asset) by its asset ID. This enables you to update details of an asset by its unique and immutable identifier, regardless of public ID, display name, asset folder, resource type or delivery type. Note that you can also update attributes of an existing asset using the explicit API endpoint.
Add related assets by asset ID Relates an asset to other assets by their asset IDs, an immutable identifier, regardless of public ID, display name, asset folder, resource type or delivery type. This is a bidirectional process, meaning that the asset will also be added as a related_asset to all the other assets specified. The relation is also a one to many relationship, where the asset is related to all the assets specified, but those assets aren't also related to each other.
Creates a new empty folder in your Cloudinary media library Creates a new folder at the specified path
Input schemas not visible in provided source code for 26 of 31 tools. Only tool names and descriptions are shown; parameter definitions, types, and constraints cannot be verified.
Many tool descriptions are under 100 characters and lack prerequisite guidance, when-to-use context, or actionable decision criteria for LLM selection. Examples: 'Download a backup copy of an asset' (37 chars), 'Get raw assets' (14 chars), 'Delete asset by asset ID' (24 chars).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 45 | - | v1 |
Delete asset by asset ID Deletes an asset using its immutable asset ID.
Delete asset relations by asset ID Unrelates the asset from other assets, specified by their asset IDs, an immutable identifier, regardless of public ID, display name, asset folder, resource type or delivery type. This is a bidirectional process, meaning that the asset will also be removed as a related_asset from all the other assets specified.
Delete derived resources Deletes derived resources by derived resource ID
Deletes an existing folder from your media library Deletes a folder and all assets within it.
Get the input schema for one or more tools. It is a good idea to call this tool first to understand how to successfully call execute_tool.
Download a backup copy of an asset
Creates an archive (ZIP or TGZ file) that contains a set of assets from your product environment. Creates a downloadable ZIP or other archive format containing the specified resources.
Generate images using generative AI models
Generate images from existing images using generative AI models
Get resource by asset ID Returns the details of a single resource specified by its asset ID.
Get the status of a generation task
Get Cloudinary transformation rules documentation from official docs 🚨 WHEN TO USE: - MANDATORY before creating, modifying, or discussing Cloudinary transformations - REQUIRED when user asks for image/video effects, resizing, cropping, filters, etc. - NOT needed for simple asset management (upload, list, delete, etc.) - ⚠️ CALL ONLY ONCE per session - documentation doesn't change, reuse the knowledge 🚨 STRICT REQUIREMENTS (when transformations are involved): - MUST call this tool BEFORE any transformation-related task (but only once) - MUST read and understand the returned documentation - DO NOT attempt transformations without consulting this reference - DO NOT make up transformation parameters - DO NOT guess syntax - only use documented parameters - DO NOT call this tool multiple times - the docs are static, remember them This tool returns the complete, authoritative Cloudinary transformation reference that contains all valid parameters, syntax rules, and best practices.
Retrieves comprehensive usage metrics and account statistics A report on the status of product environment usage, including storage, credits, bandwidth, requests, number of resources, and add-on usage. No date parameter needed to get current usage statistics.
Get raw assets Retrieves a list of raw assets. Results can be filtered by various criteria like tags, prefix, or specific public IDs.
Get image assets Retrieves a list of image assets. Results can be filtered by various criteria like tags, prefix, or specific public IDs.
Retrieves a list of tags currently applied to assets in your Cloudinary account Retrieves a comprehensive list of all tags that exist in your product environment for assets of the specified type. [Cloudinary Admin API documentation](https://cloudinary.com/documentation/admin_api)
Get video assets Retrieves a list of video assets. Results can be filtered by various criteria like tags, prefix, or specific public IDs.
List available tools. Optionally filter by search terms that match against tool name, description, and scopes.
Adds or clears contextual metadata on multiple assets Applies a contextual-metadata command to the given assets, addressing them by public ID.
Sets structured metadata values on multiple assets Assigns structured metadata field values to the given assets, addressing them by public ID. Values are merged into each asset's existing structured metadata: fields not mentioned keep their current values, and an empty value clears the field. Every referenced field must already exist in the product environment. Conditional metadata rules are evaluated as part of the update.
Adds, removes, or replaces tags on multiple assets Applies a tag command to the given assets, addressing them by public ID. The number of tags multiplied by the number of public IDs must not exceed 10,000.
Renames or moves an entire folder (along with all assets it contains) to a new location Renames or moves an entire folder (along with all assets it contains) to a new location within your Cloudinary media library.
Provides a powerful query interface to filter and retrieve assets and their details Returns a list of resources matching the specified search criteria. Uses a Lucene-like query language to filter assets by descriptive attributes (`public_id`, `asset_id`, `filename`, `display_name`, `folder` / `asset_folder`, `tags`, `context.<key>`), file details (`resource_type`, `type`, `format`, `bytes`, `width`, `height`, `duration`, `pages`, `aspect_ratio`, `transparent`, `grayscale`), lifecycle dates (`uploaded_at`, `created_at`, `taken_at`, `updated_at`, `last_updated.<kind>`), moderation and lifecycle state (`status`, `moderation_status`, `moderation_kind`), embedded data (`image_metadata.*`), structured metadata (`metadata.<external_id>`), and analysis fields (`face_count`, `colors`, `quality_score`, `illustration_score`, `accessibility_analysis.*`). Supports sorting, aggregate counts, and complex boolean expressions.
Searches for folders whose attributes match a given expression Lists the folders that match the specified search expression. Limited to 2000 results. If no parameters are passed, returns the 50 most recently created folders in descending order of creation time.
Generate derived transformations for existing assets using Cloudinary's explicit API with eager transformations ⚠️ CRITICAL PREREQUISITES: 1. MUST call get-tx-reference tool first 2. MUST validate transformation syntax against official docs 3. MUST use only documented parameters from the reference 4. MUST follow proper URL component structure (slashes between components, commas within) 📋 VALIDATION CHECKLIST: - ✅ Called get-tx-reference tool - ✅ Verified all parameters exist in official docs - ✅ Used correct syntax (e.g., f_auto/q_auto not f_auto,q_auto) - ✅ Applied proper component chaining rules - ✅ Included crop mode when using width/height This tool creates actual derived assets on Cloudinary using the explicit API.
Uploads media assets (images, videos, raw files) to your Cloudinary product environment Uploads media assets (images, videos, raw files) to your Cloudinary product environment. The file is securely stored in the cloud with backup and revision history. Cloudinary automatically analyzes and saves important data about each asset, such as format, size, resolution, and prominent colors, which is indexed to enable searching on those attributes. Supports uploading from: - Local file paths (SDKs/MCP server only). For MCP server path MUST start with file:// - Remote HTTP/HTTPS URLs - Base64 Data URIs (max ~60 MB) - Private storage buckets (S3 or Google Storage) - FTP addresses The uploaded asset is immediately available for transformation and delivery upon successful upload. Transform media files using transformation syntax in delivery URLs, which creates derived files accessible immediately without re-uploading the original.
Search assets using visual similarity
No documented output schemas visible. LLMs cannot determine what fields to expect from tool responses, limiting their ability to chain tools or extract required IDs for downstream operations.
Destructive tools (delete-asset, delete-folder, delete-derived-assets) lack confirmation or dry-run support noted in descriptions. No evidence of confirmation-request pattern.
List tools (list-images, list-videos, list-files) do not document pagination parameters (limit, offset, cursor) or result limits. Descriptions mention filtering but not result caps, risking context window exhaustion.
Error handling patterns not evident in provided source. No evidence of actionable error messages, retryable vs. fatal classification, or recovery guidance in tool descriptions.
Parameter naming inconsistency: tools accept 'public ID', 'asset ID', and 'folder' interchangeably in descriptions but parameter names are not shown. Unclear if tools accept human-readable names or only system IDs.