cloudinary_apply_ asset_ actionsDo things to an existing asset without uploading it again: pre-generate derived versions (eager), run AI add-ons (auto_tagging, ocr, background_removal), change tags or context.
Find any image or video by tag, folder or what is in it, upload from a link, tidy up tags and metadata, get a resized link in one step, and check how much of your plan is left, from the AI you already use.
PopMCPCloudinary
Every documented operation in Cloudinary's REST APIs, with the everyday media tools loaded by default and the rest, from structured metadata rules and upload mappings to live streaming, AI video and account management, one search away.
225 tools in the full catalog: 98 read and 127 write. 41 load by default, and the rest are found with tool search.
cloudinary_apply_ asset_ actionsDo things to an existing asset without uploading it again: pre-generate derived versions (eager), run AI add-ons (auto_tagging, ocr, background_removal), change tags or context.
cloudinary_create_ archiveMake a ZIP or TGZ file of assets and get its link back as secure_url.
cloudinary_delete_ assetsDelete assets by public_ids (up to 100), by prefix, or all=true for every asset of this type.
cloudinary_download_ assetFetch the file of an asset by public ID.
cloudinary_get_ assetGet all the details of one asset by public ID: secure_url, size, format, tags, context, metadata and derived versions.
cloudinary_get_ asset_ by_ idGet all the details of one asset by asset ID.
cloudinary_get_ asset_ detailsGet one asset's full details from a public ID, a 32 character asset ID or a delivery link, without knowing whether it is an image, video or raw file: each is tried in turn.
cloudinary_list_ assets_ by_ tagList assets with a tag.
cloudinary_list_ assets_ in_ folderList the assets directly inside one Media Library folder, of every type.
cloudinary_list_ imagesList image assets, newest first.
cloudinary_list_ raw_ filesList raw files (documents and anything else that is not an image or video), newest first.
cloudinary_list_ tagsList the tags in use on one resource type (image by default).
cloudinary_list_ videosList video and audio assets, newest first.
cloudinary_rename_ assetChange an asset's public ID, which changes its delivery URL.
cloudinary_restore_ assetsBring back deleted assets from backup by public ID.
cloudinary_update_ assetChange one asset by public ID: display_name, asset_folder (moves it in dynamic folder mode), tags (replaces them all), context, metadata, moderation_status (approved or rejected).
cloudinary_list_ metadata_ fieldsList the structured metadata fields, with external_id, type, label and allowed values.
cloudinary_analyze_ ai_ vision_ generalAnalyze - AI Vision General.
cloudinary_analyze_ captioningAnalyze - Captioning.
cloudinary_create_ folderCreate a folder, including any missing parents.
cloudinary_delete_ folderDelete an empty folder.
cloudinary_list_ root_ foldersList the top-level folders of the Media Library.
cloudinary_list_ subfoldersList the folders directly inside one folder.
cloudinary_destroy_ assetDelete one asset by public ID.
cloudinary_upload_ assetUpload a file to the media library, usually from a URL: Cloudinary fetches it.
cloudinary_build_ delivery_ urlBuild a link that delivers an asset, resized or transformed on the fly, with no request to Cloudinary.
cloudinary_create_ named_ transformationSave a transformation under a name, used as t_<name> in delivery links.
cloudinary_list_ transformationsList the transformations used in this environment.
cloudinary_create_ triggerHave Cloudinary call a URL when something happens.
cloudinary_create_ upload_ presetSave a set of upload settings.
cloudinary_list_ triggersList webhook notifications: which URL hears which event.
cloudinary_list_ upload_ presetsList the upload presets (saved upload settings).
cloudinary_find_ assetsFind assets without writing a search expression.
cloudinary_get_ configDetails of this product environment: cloud name, created_at and, with settings=true, folder_mode.
cloudinary_get_ usagePlan, credits used against the limit, storage, bandwidth, transformations, objects and request counts, with percentages.
cloudinary_search_ assetsSearch every asset with Cloudinary's query language.
cloudinary_update_ assets_ contextAdd or remove contextual metadata, such as alt text and captions, on many assets at once.
cloudinary_update_ assets_ metadataSet structured metadata values on many assets at once.
cloudinary_update_ assets_ tagsAdd, remove or replace tags on many assets at once, without using up the hourly Admin API limit.
cloudinary_visual_ search_ assetsFind images that look like a picture or a description.
cloudinary_generate_ imageMake an image from a text prompt with AI.
cloudinary_delete_ assets_ by_ idDelete assets by asset_ids (up to 100), whatever their type.
cloudinary_delete_ assets_ by_ tagDelete all assets with a tag, up to 1000 per call.
cloudinary_delete_ backup_ versionsDelete backed up versions.
cloudinary_delete_ derived_ assetsDelete derived versions by derived_resource_ids.
cloudinary_destroy_ asset_ by_ idDelete one asset by asset ID.
cloudinary_download_ asset_ by_ idFetch the file of an asset by asset ID.
cloudinary_download_ backup_ versionFetch one backed up version of an asset without restoring it.
cloudinary_get_ assets_ by_ external_ idsGet resources by external IDs.
cloudinary_get_ assets_ by_ idsGet details of up to 100 assets by asset ID.
cloudinary_invalidate_ derived_ urlsClear CDN copies of derived assets by their delivery URLs.
cloudinary_list_ asset_ typesList which resource types this product environment holds (image, video, raw).
cloudinary_list_ assets_ by_ contextGet resources by context.
cloudinary_list_ assets_ by_ typeList assets of a resource type and delivery type.
cloudinary_list_ assets_ in_ containerList the assets in a folder by container ID.
cloudinary_list_ assets_ in_ moderationList assets by moderation kind and status, for example manual and pending.
cloudinary_lookup_ assetGet one asset by a choice of identifiers in the body, such as asset_id, or public_id with resource_type and type.
cloudinary_restore_ assets_ by_ idBring back deleted assets from backup by asset ID.
cloudinary_update_ asset_ by_ idChange one asset by asset ID: display_name, asset_folder, tags (replaces them all), context, metadata, moderation_status.
cloudinary_update_ asset_ by_ lookupUpdate the details of a single asset by body parameters.
cloudinary_add_ user_ to_ groupAdd User to User Group.
cloudinary_create_ product_ environmentCreate a product environment in the account.
cloudinary_create_ userInvite a person to the Cloudinary account.
cloudinary_create_ user_ groupCreate User Group.
cloudinary_delete_ access_ keyDelete an API key.
cloudinary_delete_ access_ key_ by_ nameDelete access key by name.
cloudinary_delete_ product_ environmentDelete a whole product environment and everything in it.
cloudinary_delete_ userRemove a person from the Cloudinary account.
cloudinary_delete_ user_ groupDelete User Group.
cloudinary_generate_ access_ keyCreate an API key for a product environment.
cloudinary_get_ billing_ usageCredits and usage across the whole account, per billing cycle.
cloudinary_get_ product_ environmentGet one product environment of the account.
cloudinary_get_ userGet user.
cloudinary_get_ user_ groupGet User Group.
cloudinary_list_ access_ keysList the API keys of a product environment.
cloudinary_list_ groups_ of_ userGet user groups.
cloudinary_list_ product_ environmentsList the product environments (clouds) of the Cloudinary account, with their cloud names.
cloudinary_list_ product_ environments_ of_ userGet user sub-accounts.
cloudinary_list_ user_ groupsGet User Groups.
cloudinary_list_ usersList the people in the Cloudinary account.
cloudinary_list_ users_ in_ groupGet Users in User Group.
cloudinary_remove_ user_ from_ groupRemove User from User Group.
cloudinary_update_ access_ keyUpdate an access key.
cloudinary_update_ product_ environmentUpdate product environment.
cloudinary_update_ userUpdate user.
cloudinary_update_ user_ groupUpdate User Group.
cloudinary_create_ custom_ policyCreate custom policy.
cloudinary_create_ roleCreate custom role.
cloudinary_delete_ custom_ policyDelete custom policy.
cloudinary_delete_ roleDelete custom role.
cloudinary_get_ custom_ policyGet custom policy.
cloudinary_get_ permission_ policy_ schemaGet Cedar schema.
cloudinary_get_ permissions_ catalogList Cloudinary's built-in roles and policies.
cloudinary_get_ roleGet role.
cloudinary_inspect_ principal_ permissionsInspect.
cloudinary_inspect_ principals_ permissionsInspect multiple.
cloudinary_list_ custom_ policiesGet custom policies.
cloudinary_list_ effective_ policiesGet effective policies.
cloudinary_list_ principal_ rolesGet a principal's roles.
cloudinary_list_ role_ principalsGet a role's principals.
cloudinary_list_ rolesGet roles.
cloudinary_list_ system_ policiesGet system policies.
cloudinary_update_ custom_ policyUpdate custom policy.
cloudinary_update_ principal_ rolesAssign roles to a principal.
cloudinary_update_ roleUpdate custom role.
cloudinary_update_ role_ principalsAssign principals to a role.
cloudinary_validate_ permission_ policyValidate a Cedar policy.
cloudinary_create_ streaming_ profileCreates a new adaptive streaming profile in your Cloudinary account.
cloudinary_create_ video_ analysis_ jobStart a visual transcription of a stored video: timestamped descriptions of what is on screen.
cloudinary_create_ video_ canvas_ appletCreate an applet.
cloudinary_create_ video_ promptCreate an image to video prompt.
cloudinary_delete_ streaming_ profileDelete custom streaming profile or revert built-in profile to the original settings.
cloudinary_delete_ video_ canvas_ appletDelete an applet.
cloudinary_delete_ video_ promptDelete an image to video prompt.
cloudinary_generate_ video_ from_ imageStart making a video from an image and a text prompt with AI.
cloudinary_get_ streaming_ profileRetrieves the details of a single adaptive streaming profile by its name.
cloudinary_get_ video_ analysis_ jobRead a video analysis job.
cloudinary_get_ video_ canvas_ appletGet an applet.
cloudinary_get_ video_ generation_ jobRead an image-to-video job.
cloudinary_get_ video_ promptGet an image to video prompt.
cloudinary_get_ video_ viewsVideo view data for assets played with the Cloudinary Video Player.
cloudinary_list_ streaming_ profilesLists all adaptive streaming profiles (both built-in and custom) defined in your Cloudinary account.
cloudinary_list_ video_ canvas_ appletsList applets.
cloudinary_list_ video_ promptsGet a list of image to video prompts.
cloudinary_update_ streaming_ profileModifies an existing adaptive streaming profile's configuration.
cloudinary_update_ video_ canvas_ appletReplace an applet's content.
cloudinary_update_ video_ promptUpdate an image to video prompt.
cloudinary_create_ metadata_ fieldCreate a structured metadata field.
cloudinary_create_ metadata_ ruleCreates a new conditional metadata rule.
cloudinary_delete_ metadata_ datasource_ valuesRemoves one or more allowed values from a metadata field's datasource.
cloudinary_delete_ metadata_ fieldDeletes a structured metadata field definition from your account.
cloudinary_delete_ metadata_ ruleDeletes a conditional metadata rule by its ID.
cloudinary_get_ metadata_ fieldRetrieves the definition of a specific structured metadata field by its identifier.
cloudinary_list_ metadata_ rulesRetrieves a list of all conditional metadata rules defined in your account.
cloudinary_order_ metadata_ datasourceOrder the datasource values of a metadata field.
cloudinary_reorder_ metadata_ fieldChange position of metadata field.
cloudinary_reorder_ metadata_ fieldsReorder all metadata fields.
cloudinary_restore_ metadata_ datasource_ valuesRestore datasource values.
cloudinary_search_ all_ metadata_ datasourcesSearch across all metadata field datasources.
cloudinary_search_ metadata_ datasourceSearch datasource values in a metadata field.
cloudinary_set_ metadata_ datasource_ orderOrder the datasource values of a metadata field.
cloudinary_update_ metadata_ datasourceUpdates the allowed values (the datasource) for a specified metadata field.
cloudinary_update_ metadata_ fieldUpdates the configuration of an existing metadata field.
cloudinary_update_ metadata_ ruleUpdates an existing conditional metadata rule's definition.
cloudinary_analyze_ ai_ vision_ moderationAnalyze - AI Vision Moderation.
cloudinary_analyze_ ai_ vision_ taggingAnalyze - AI Vision Tagging.
cloudinary_analyze_ coco_ objectsAnalyze - Coco.
cloudinary_analyze_ fashionAnalyze - Cld-Fashion.
cloudinary_analyze_ google_ taggingAnalyze - Google Tagging.
cloudinary_analyze_ human_ anatomyAnalyze - Human Anatomy.
cloudinary_analyze_ image_ qualityAnalyze - Image Quality Analysis.
cloudinary_analyze_ logosAnalyze - Google Logo Detection.
cloudinary_analyze_ lvis_ objectsAnalyze - Lvis.
cloudinary_analyze_ shop_ classifierAnalyze - Shop Classifier.
cloudinary_analyze_ textAnalyze - Cld-Text.
cloudinary_analyze_ unidet_ objectsAnalyze - Unidet.
cloudinary_analyze_ watermarksAnalyze - Watermark Detection.
cloudinary_assign_ folder_ rolesGive or take away people's roles on a folder.
cloudinary_get_ folder_ by_ idGet a folder and its parents by its identifier.
cloudinary_get_ folder_ by_ pathGet a folder and its parents by its path, including its external_id.
cloudinary_list_ folder_ descendantsList all folders under a folder, by its identifier.
cloudinary_list_ folder_ rolesList who has which role on a folder.
cloudinary_rename_ folderRename or move a folder and everything under it, as one operation for big folders.
cloudinary_search_ foldersSearch folders with an expression such as name:shoes or path:products/*.
cloudinary_search_ folders_ by_ querySame as cloudinary_search_folders, sent as query parameters.
cloudinary_update_ folderRename or move a folder: to_folder is the full new path.
cloudinary_activate_ live_ streamManually activate a live stream.
cloudinary_create_ live_ streamCreate a live stream.
cloudinary_create_ live_ stream_ outputCreate a new live stream output.
cloudinary_delete_ live_ streamDelete a live stream.
cloudinary_delete_ live_ stream_ outputDelete a live stream output.
cloudinary_get_ live_ streamGet one live stream.
cloudinary_get_ live_ stream_ outputGet a single live stream output.
cloudinary_idle_ live_ streamManually idle a live stream.
cloudinary_list_ live_ stream_ outputsGet a list of live stream outputs.
cloudinary_list_ live_ streamsList live streams and their state.
cloudinary_update_ live_ streamUpdate a live stream.
cloudinary_update_ live_ stream_ outputUpdate a live stream output.
cloudinary_concatenate_ videosJoin videos into one new video, stored as a new asset.
cloudinary_create_ animationMake one animated GIF, PNG or WebP, one MP4 or WebM, or one PDF from all images with a tag, or from a list of image URLs.
cloudinary_create_ text_ imageMake an image from a text string.
cloudinary_evaluate_ upload_ paramsTry out a dynamic eval expression against upload parameters, without uploading anything.
cloudinary_explode_ assetMake one derived image per page or frame of a PDF or animated image.
cloudinary_upload_ asset_ autoSame as cloudinary_upload_asset with resource_type auto: Cloudinary works out the type from the file.
cloudinary_upload_ asset_ chunkUpload one chunk of a large file (required above 100 MB) when the file is not at a URL Cloudinary can fetch whole.
cloudinary_delete_ player_ profileDelete a player profile.
cloudinary_delete_ transformationDelete a transformation.
cloudinary_get_ player_ profileGet a single player profile.
cloudinary_get_ transformationGet one transformation and the assets that used it.
cloudinary_get_ video_ player_ configGet video config.
cloudinary_list_ player_ profilesGet a list of player profiles.
cloudinary_set_ player_ profileCreate or replace a player profile.
cloudinary_set_ video_ player_ configCreate or replace video player config for a specific video.
cloudinary_update_ transformationChange a named transformation or whether it can be used in unsigned links.
cloudinary_create_ upload_ mappingCreates a new upload mapping.
cloudinary_delete_ triggerDeletes a notification trigger.
cloudinary_delete_ upload_ mappingDeletes a folder upload mapping.
cloudinary_delete_ upload_ presetDeletes an upload preset from the account.
cloudinary_get_ personGet person details.
cloudinary_get_ upload_ presetRetrieves details of a single upload preset.
cloudinary_inspect_ people_ permissionsInspect the caller's permitted actions on people.
cloudinary_list_ peopleList recognized people.
cloudinary_list_ person_ assetsList the images of a person.
cloudinary_list_ upload_ mappingsRetrieves a list of all upload mapping rules configured in your Cloudinary product environment.
cloudinary_replace_ upload_ mappingsReplaces all upload mappings.
cloudinary_test_ triggerCheck a trigger's filter against sample data.
cloudinary_update_ personUpdate a person.
cloudinary_update_ triggerUpdates the callback URL of an existing webhook trigger in your Cloudinary account.
cloudinary_update_ upload_ mappingUpdates an existing upload mapping by changing its remote URL template for a given folder.
cloudinary_update_ upload_ presetUpdates an existing upload preset's configuration settings.
cloudinary_add_ related_ assetsCreate asset relations by public ID.
cloudinary_add_ related_ assets_ by_ idAdd related assets by asset ID.
cloudinary_create_ last_ access_ reportCreate a last access report.
cloudinary_get_ last_ access_ reportGet a last access report.
cloudinary_list_ last_ access_ report_ assetsList the assets in a last access report.
cloudinary_list_ last_ access_ reportsList last access reports.
cloudinary_remove_ related_ assetsDelete asset relations by public ID.
cloudinary_remove_ related_ assets_ by_ idDelete asset relations by asset ID.
cloudinary_create_ initial_ backupStart backing up assets that existed before backups were turned on.
cloudinary_get_ initial_ backupGet initial backup.
cloudinary_list_ initial_ backupsList initial backups.
cloudinary_pingCheck Cloudinary answers these credentials.
cloudinary_generate_ image_ from_ imagesMake a new image from a prompt and reference images, for edits, restyling and combining.
cloudinary_get_ analysis_ taskRead the result of an analysis run with async=true.
cloudinary_get_ image_ generation_ taskCheck an image generation running in the background.
Credentials off one Cloudinary screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.
In Cloudinary open Settings, then API Keys, and copy your cloud name, an API key and its API secret into PopMCP. Every plan can do this, free included, with no app or approval. PopMCP finds your data region and locks the connection to that product environment.
my-cloud123456789012345••••••••••••3f7aUploads, renames, deletions and everything else that changes Cloudinary are writes, as are AI analysis and image generation because they spend credits, and they wait until an owner or admin allows write actions; new connections start read-only. Your API key's role in Cloudinary still applies, and existing API secrets stay hidden in answers.
Drop the PopMCP URL into Claude, ChatGPT, Claude Code, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Cloudinary credential never leaves the server.
app.popmcp.com/mcpAsk for something harmless before the agent changes anything. Writes run as soon as it calls them, so confirm it reads the right account first.
List my largest images uploaded this month
cloudinary_find_assetsok
Then just ask for the work
“List my largest images uploaded this month”
“How much of my Cloudinary plan have I used so far?”
“Upload this image from its link into the products folder and give me a version 400 pixels wide”
“Add the tag summer-sale to everything in the campaigns folder”
“Show me images that look like a red leather bag”
“Write alt text for this image and save it on the asset”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Cloudinary behind an AI client.
Three values from one page: your cloud name, an API key and its API secret. In Cloudinary open Settings, then API Keys, click the eye icon to show the secret, and copy them into PopMCP, which stores them encrypted. They never reach your AI client. You need the Master admin, Admin or Technical admin role to see that page.
Yes. The API keys page is on every plan. Cloudinary's Admin API allows 500 requests an hour on the free plan and from 2,000 on paid plans, resetting on the hour. Its Upload API has no such limit, so tools for tags, context, metadata, renames and uploads keep working, and the answer warns when the hourly count is running low.
No. A Cloudinary API key belongs to one product environment, so each PopMCP connection stays on that cloud, and a request for another one is refused, not answered with the wrong data. To work with several, connect each one.
No. get_asset_details takes a public ID, an asset ID or a delivery link, and tries image, video and raw for you. find_assets searches by tag, folder, type, date and size without any query language, and delivery links work wherever a public ID does.
build_delivery_url makes the link from plain settings such as width, crop, gravity and format, or a full transformation string, and adds automatic format and quality. It signs the link when you ask, for private or authenticated assets, using your secret on PopMCP's side. The secret is never shown to the AI. A custom domain or private CDN needs its host swapped in the link.
Yes. Every connection starts read-only, which keeps searching, browsing and usage readable and blocks every upload, rename and deletion. An owner or admin can allow write actions later. AI analysis and image generation count as writes too, because they spend credits. Your API key's role in Cloudinary still applies on top.
Yes, if your account has Provisioning API access, which Cloudinary offers on Enterprise plans on request. Add the account ID, key and secret from Settings, Account Management Keys under More options when connecting. Everything else works without them, and those tools say what is missing.
PopMCP can register Cloudinary's own notifications with your key, so a workflow can start when an asset is uploaded, deleted, renamed or moved, when tags, context or metadata change, when something is approved or rejected in moderation, when an upload fails, when an add-on finishes, or when folders change.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Connect Cloudinary in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Cloudinary on the consent screen. The Cloudinary tools are then available in that session, and no Cloudinary credential is stored on your machine.
Loading 225 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 41-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.
A tool is something your AI calls, and there are 225 here. A trigger is something PopMCP watches for you: 23 Cloudinary events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Cloudinary.
Launch a hosted MCP endpoint for Cloudinary, keep tool access under control, and start testing real workflow prompts right away.