Cloudinary MCP Server

Official

Upload, search, transform and organise your Cloudinary media library from a chat window

Local + remotestreamable-httpssestdioTypeScriptMIT

What is the Cloudinary MCP Server?

Connects assistants to a Cloudinary media library so they can upload files, run search and visual search, apply transformations, manage folders and tags.

What it needs from you

A Cloudinary account. The hosted endpoint authorises over OAuth; running the npm package locally needs Node.js 18+ and a cloud name, API key and API secret.

More MCP options

Compare MCP servers by category, or browse hosted MCP servers if you prefer an endpoint over a local process.

Maintainer setup documentation.

What you can do with it

Bulk clean-up after a migration

Point the assistant at a folder of freshly imported assets and have it normalise public IDs, apply a consistent tag scheme, and flag anything that failed to upload.

Prototyping transformations

Ask for a crop-and-optimise variant, look at the result, iterate on the transformation string in conversation, then copy the final string into your delivery code.

Assembling a hand-off package

Search for every asset tagged for a campaign, confirm the list, and generate a single ZIP archive to send to an agency or partner.

Finding a picture you cannot name

Use visual search to locate an asset by describing what is in the frame when nobody remembers the filename or tag.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
upload-assetUpload an image, video or raw file from a local path or remote URL, setting public ID, folder and tags at ingest time.
search-assetsRun a structured expression search across the media library with sorting, aggregation and pagination.
visual-search-assetsFind assets by visual similarity or image content rather than by filename or tag.
transform-assetApply a Cloudinary transformation string to an existing asset via the explicit API, with optional CDN invalidation.
get-tx-referenceReturn Cloudinary's full transformation reference so the model can compose valid transformation strings.
get-asset-detailsFetch the full metadata record for one asset by asset ID.
asset-updateUpdate an existing asset — tags, contextual metadata, moderation state and other mutable fields.
asset-renameChange an asset's public ID, optionally overwriting an existing target.
delete-assetDelete an asset by asset ID.
list-imagesList image resources in the product environment with filtering and pagination.
list-videosList video resources in the product environment.
list-filesList raw (non-image, non-video) files.
list-tagsList the tags currently in use across the library.
create-folderCreate a new folder in the asset hierarchy.
search-foldersSearch the folder tree by expression.
generate-archiveBuild a ZIP or TGZ archive from a set of assets matched by tag, prefix or public ID.
generate-imageGenerate a new image from a text prompt and store it in the library.
generate-image-from-imagesGenerate a new image conditioned on one or more existing assets.
get-generation-taskPoll the status of an asynchronous generation task.
get-usage-detailsReport account usage — credits, storage, bandwidth and transformation counts.

How to install the Cloudinary MCP Server

claude mcp add cloudinary --transport http https://asset-management.mcp.cloudinary.com/mcp

Configuration

A Cloudinary account. The hosted endpoint authorises over OAuth; running the npm package locally needs Node.js 18+ and a cloud name, API key and API secret.

VariableDescriptionRequired
CLOUDINARY_CLOUD_NAMECloud name of the Cloudinary product environment you want the server to act on. Local runs only.e.g. demoOptional
CLOUDINARY_API_KEYAPI key for the product environment. Local runs only; the hosted endpoint uses OAuth instead.e.g. 123456789012345Optional
CLOUDINARY_API_SECRETAPI secret paired with the API key. Local runs only.Optional
CLOUDINARY_URLSingle-string alternative that encodes cloud name, key and secret together.e.g. cloudinary://key:secret@cloud-nameOptional
CLOUDINARY_MCP_APPSControls the interactive MCP UI apps (asset gallery, asset details, upload view). Set to 'none' to disable them.e.g. asset-gallery,asset-detailsOptional

Example prompts to try

  • “Upload every image in ./launch-assets to the folder spring-2026 and tag them launch,hero.”
  • “Find all videos in the marketing folder uploaded in the last 30 days and show me their durations.”
  • “Transform the asset 'homepage-banner' with c_fill,w_1600,h_600/f_auto,q_auto and invalidate the CDN cache.”
  • “Build a ZIP archive of everything tagged export-ready and tell me how big it is.”

Frequently asked questions

No. Cloudinary hosts the asset management server at https://asset-management.mcp.cloudinary.com/mcp, and any client that supports remote MCP servers can point at that URL and complete an OAuth sign-in. Installing the @cloudinary/asset-management-mcp npm package locally is optional and mainly useful if you want to pin a version, run it in CI, or authenticate with a raw API key instead of OAuth.