100+ integrations are ready to connect to your AI.Connect your first MCP

Cloudinary MCP server for your AI

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

List my largest images uploaded this month

Supported Cloudinary tools

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_actions

Do 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_archive

Make a ZIP or TGZ file of assets and get its link back as secure_url.

cloudinary_delete_assets

Delete assets by public_ids (up to 100), by prefix, or all=true for every asset of this type.

cloudinary_download_asset

Fetch the file of an asset by public ID.

cloudinary_get_asset

Get all the details of one asset by public ID: secure_url, size, format, tags, context, metadata and derived versions.

cloudinary_get_asset_by_id

Get all the details of one asset by asset ID.

cloudinary_get_asset_details

Get 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_tag

List assets with a tag.

cloudinary_list_assets_in_folder

List the assets directly inside one Media Library folder, of every type.

cloudinary_list_images

List image assets, newest first.

cloudinary_list_raw_files

List raw files (documents and anything else that is not an image or video), newest first.

cloudinary_list_tags

List the tags in use on one resource type (image by default).

cloudinary_list_videos

List video and audio assets, newest first.

cloudinary_rename_asset

Change an asset's public ID, which changes its delivery URL.

cloudinary_restore_assets

Bring back deleted assets from backup by public ID.

cloudinary_update_asset

Change 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_fields

List the structured metadata fields, with external_id, type, label and allowed values.

cloudinary_analyze_ai_vision_general

Analyze - AI Vision General.

cloudinary_analyze_captioning

Analyze - Captioning.

cloudinary_create_folder

Create a folder, including any missing parents.

cloudinary_delete_folder

Delete an empty folder.

cloudinary_list_root_folders

List the top-level folders of the Media Library.

cloudinary_list_subfolders

List the folders directly inside one folder.

cloudinary_destroy_asset

Delete one asset by public ID.

cloudinary_upload_asset

Upload a file to the media library, usually from a URL: Cloudinary fetches it.

cloudinary_build_delivery_url

Build a link that delivers an asset, resized or transformed on the fly, with no request to Cloudinary.

cloudinary_create_named_transformation

Save a transformation under a name, used as t_<name> in delivery links.

cloudinary_list_transformations

List the transformations used in this environment.

cloudinary_create_trigger

Have Cloudinary call a URL when something happens.

cloudinary_create_upload_preset

Save a set of upload settings.

cloudinary_list_triggers

List webhook notifications: which URL hears which event.

cloudinary_list_upload_presets

List the upload presets (saved upload settings).

cloudinary_find_assets

Find assets without writing a search expression.

cloudinary_get_config

Details of this product environment: cloud name, created_at and, with settings=true, folder_mode.

cloudinary_get_usage

Plan, credits used against the limit, storage, bandwidth, transformations, objects and request counts, with percentages.

cloudinary_search_assets

Search every asset with Cloudinary's query language.

cloudinary_update_assets_context

Add or remove contextual metadata, such as alt text and captions, on many assets at once.

cloudinary_update_assets_metadata

Set structured metadata values on many assets at once.

cloudinary_update_assets_tags

Add, remove or replace tags on many assets at once, without using up the hourly Admin API limit.

cloudinary_visual_search_assets

Find images that look like a picture or a description.

cloudinary_generate_image

Make an image from a text prompt with AI.

cloudinary_delete_assets_by_id

Delete assets by asset_ids (up to 100), whatever their type.

cloudinary_delete_assets_by_tag

Delete all assets with a tag, up to 1000 per call.

cloudinary_delete_backup_versions

Delete backed up versions.

cloudinary_delete_derived_assets

Delete derived versions by derived_resource_ids.

cloudinary_destroy_asset_by_id

Delete one asset by asset ID.

cloudinary_download_asset_by_id

Fetch the file of an asset by asset ID.

cloudinary_download_backup_version

Fetch one backed up version of an asset without restoring it.

cloudinary_get_assets_by_external_ids

Get resources by external IDs.

cloudinary_get_assets_by_ids

Get details of up to 100 assets by asset ID.

cloudinary_invalidate_derived_urls

Clear CDN copies of derived assets by their delivery URLs.

cloudinary_list_asset_types

List which resource types this product environment holds (image, video, raw).

cloudinary_list_assets_by_context

Get resources by context.

cloudinary_list_assets_by_type

List assets of a resource type and delivery type.

cloudinary_list_assets_in_container

List the assets in a folder by container ID.

cloudinary_list_assets_in_moderation

List assets by moderation kind and status, for example manual and pending.

cloudinary_lookup_asset

Get 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_id

Bring back deleted assets from backup by asset ID.

cloudinary_update_asset_by_id

Change one asset by asset ID: display_name, asset_folder, tags (replaces them all), context, metadata, moderation_status.

cloudinary_update_asset_by_lookup

Update the details of a single asset by body parameters.

cloudinary_add_user_to_group

Add User to User Group.

cloudinary_create_product_environment

Create a product environment in the account.

cloudinary_create_user

Invite a person to the Cloudinary account.

cloudinary_create_user_group

Create User Group.

cloudinary_delete_access_key

Delete an API key.

cloudinary_delete_access_key_by_name

Delete access key by name.

cloudinary_delete_product_environment

Delete a whole product environment and everything in it.

cloudinary_delete_user

Remove a person from the Cloudinary account.

cloudinary_delete_user_group

Delete User Group.

cloudinary_generate_access_key

Create an API key for a product environment.

cloudinary_get_billing_usage

Credits and usage across the whole account, per billing cycle.

cloudinary_get_product_environment

Get one product environment of the account.

cloudinary_get_user

Get user.

cloudinary_get_user_group

Get User Group.

cloudinary_list_access_keys

List the API keys of a product environment.

cloudinary_list_groups_of_user

Get user groups.

cloudinary_list_product_environments

List the product environments (clouds) of the Cloudinary account, with their cloud names.

cloudinary_list_product_environments_of_user

Get user sub-accounts.

cloudinary_list_user_groups

Get User Groups.

cloudinary_list_users

List the people in the Cloudinary account.

cloudinary_list_users_in_group

Get Users in User Group.

cloudinary_remove_user_from_group

Remove User from User Group.

cloudinary_update_access_key

Update an access key.

cloudinary_update_product_environment

Update product environment.

cloudinary_update_user

Update user.

cloudinary_update_user_group

Update User Group.

cloudinary_create_custom_policy

Create custom policy.

cloudinary_create_role

Create custom role.

cloudinary_delete_custom_policy

Delete custom policy.

cloudinary_delete_role

Delete custom role.

cloudinary_get_custom_policy

Get custom policy.

cloudinary_get_permission_policy_schema

Get Cedar schema.

cloudinary_get_permissions_catalog

List Cloudinary's built-in roles and policies.

cloudinary_get_role

Get role.

cloudinary_inspect_principal_permissions

Inspect.

cloudinary_inspect_principals_permissions

Inspect multiple.

cloudinary_list_custom_policies

Get custom policies.

cloudinary_list_effective_policies

Get effective policies.

cloudinary_list_principal_roles

Get a principal's roles.

cloudinary_list_role_principals

Get a role's principals.

cloudinary_list_roles

Get roles.

cloudinary_list_system_policies

Get system policies.

cloudinary_update_custom_policy

Update custom policy.

cloudinary_update_principal_roles

Assign roles to a principal.

cloudinary_update_role

Update custom role.

cloudinary_update_role_principals

Assign principals to a role.

cloudinary_validate_permission_policy

Validate a Cedar policy.

cloudinary_create_streaming_profile

Creates a new adaptive streaming profile in your Cloudinary account.

cloudinary_create_video_analysis_job

Start a visual transcription of a stored video: timestamped descriptions of what is on screen.

cloudinary_create_video_canvas_applet

Create an applet.

cloudinary_create_video_prompt

Create an image to video prompt.

cloudinary_delete_streaming_profile

Delete custom streaming profile or revert built-in profile to the original settings.

cloudinary_delete_video_canvas_applet

Delete an applet.

cloudinary_delete_video_prompt

Delete an image to video prompt.

cloudinary_generate_video_from_image

Start making a video from an image and a text prompt with AI.

cloudinary_get_streaming_profile

Retrieves the details of a single adaptive streaming profile by its name.

cloudinary_get_video_analysis_job

Read a video analysis job.

cloudinary_get_video_canvas_applet

Get an applet.

cloudinary_get_video_generation_job

Read an image-to-video job.

cloudinary_get_video_prompt

Get an image to video prompt.

cloudinary_get_video_views

Video view data for assets played with the Cloudinary Video Player.

cloudinary_list_streaming_profiles

Lists all adaptive streaming profiles (both built-in and custom) defined in your Cloudinary account.

cloudinary_list_video_canvas_applets

List applets.

cloudinary_list_video_prompts

Get a list of image to video prompts.

cloudinary_update_streaming_profile

Modifies an existing adaptive streaming profile's configuration.

cloudinary_update_video_canvas_applet

Replace an applet's content.

cloudinary_update_video_prompt

Update an image to video prompt.

cloudinary_create_metadata_field

Create a structured metadata field.

cloudinary_create_metadata_rule

Creates a new conditional metadata rule.

cloudinary_delete_metadata_datasource_values

Removes one or more allowed values from a metadata field's datasource.

cloudinary_delete_metadata_field

Deletes a structured metadata field definition from your account.

cloudinary_delete_metadata_rule

Deletes a conditional metadata rule by its ID.

cloudinary_get_metadata_field

Retrieves the definition of a specific structured metadata field by its identifier.

cloudinary_list_metadata_rules

Retrieves a list of all conditional metadata rules defined in your account.

cloudinary_order_metadata_datasource

Order the datasource values of a metadata field.

cloudinary_reorder_metadata_field

Change position of metadata field.

cloudinary_reorder_metadata_fields

Reorder all metadata fields.

cloudinary_restore_metadata_datasource_values

Restore datasource values.

cloudinary_search_all_metadata_datasources

Search across all metadata field datasources.

cloudinary_search_metadata_datasource

Search datasource values in a metadata field.

cloudinary_set_metadata_datasource_order

Order the datasource values of a metadata field.

cloudinary_update_metadata_datasource

Updates the allowed values (the datasource) for a specified metadata field.

cloudinary_update_metadata_field

Updates the configuration of an existing metadata field.

cloudinary_update_metadata_rule

Updates an existing conditional metadata rule's definition.

cloudinary_analyze_ai_vision_moderation

Analyze - AI Vision Moderation.

cloudinary_analyze_ai_vision_tagging

Analyze - AI Vision Tagging.

cloudinary_analyze_coco_objects

Analyze - Coco.

cloudinary_analyze_fashion

Analyze - Cld-Fashion.

cloudinary_analyze_google_tagging

Analyze - Google Tagging.

cloudinary_analyze_human_anatomy

Analyze - Human Anatomy.

cloudinary_analyze_image_quality

Analyze - Image Quality Analysis.

cloudinary_analyze_logos

Analyze - Google Logo Detection.

cloudinary_analyze_lvis_objects

Analyze - Lvis.

cloudinary_analyze_shop_classifier

Analyze - Shop Classifier.

cloudinary_analyze_text

Analyze - Cld-Text.

cloudinary_analyze_unidet_objects

Analyze - Unidet.

cloudinary_analyze_watermarks

Analyze - Watermark Detection.

cloudinary_assign_folder_roles

Give or take away people's roles on a folder.

cloudinary_get_folder_by_id

Get a folder and its parents by its identifier.

cloudinary_get_folder_by_path

Get a folder and its parents by its path, including its external_id.

cloudinary_list_folder_descendants

List all folders under a folder, by its identifier.

cloudinary_list_folder_roles

List who has which role on a folder.

cloudinary_rename_folder

Rename or move a folder and everything under it, as one operation for big folders.

cloudinary_search_folders

Search folders with an expression such as name:shoes or path:products/*.

cloudinary_search_folders_by_query

Same as cloudinary_search_folders, sent as query parameters.

cloudinary_update_folder

Rename or move a folder: to_folder is the full new path.

cloudinary_activate_live_stream

Manually activate a live stream.

cloudinary_create_live_stream

Create a live stream.

cloudinary_create_live_stream_output

Create a new live stream output.

cloudinary_delete_live_stream

Delete a live stream.

cloudinary_delete_live_stream_output

Delete a live stream output.

cloudinary_get_live_stream

Get one live stream.

cloudinary_get_live_stream_output

Get a single live stream output.

cloudinary_idle_live_stream

Manually idle a live stream.

cloudinary_list_live_stream_outputs

Get a list of live stream outputs.

cloudinary_list_live_streams

List live streams and their state.

cloudinary_update_live_stream

Update a live stream.

cloudinary_update_live_stream_output

Update a live stream output.

cloudinary_concatenate_videos

Join videos into one new video, stored as a new asset.

cloudinary_create_animation

Make 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_image

Make an image from a text string.

cloudinary_evaluate_upload_params

Try out a dynamic eval expression against upload parameters, without uploading anything.

cloudinary_explode_asset

Make one derived image per page or frame of a PDF or animated image.

cloudinary_upload_asset_auto

Same as cloudinary_upload_asset with resource_type auto: Cloudinary works out the type from the file.

cloudinary_upload_asset_chunk

Upload 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_profile

Delete a player profile.

cloudinary_delete_transformation

Delete a transformation.

cloudinary_get_player_profile

Get a single player profile.

cloudinary_get_transformation

Get one transformation and the assets that used it.

cloudinary_get_video_player_config

Get video config.

cloudinary_list_player_profiles

Get a list of player profiles.

cloudinary_set_player_profile

Create or replace a player profile.

cloudinary_set_video_player_config

Create or replace video player config for a specific video.

cloudinary_update_transformation

Change a named transformation or whether it can be used in unsigned links.

cloudinary_create_upload_mapping

Creates a new upload mapping.

cloudinary_delete_trigger

Deletes a notification trigger.

cloudinary_delete_upload_mapping

Deletes a folder upload mapping.

cloudinary_delete_upload_preset

Deletes an upload preset from the account.

cloudinary_get_person

Get person details.

cloudinary_get_upload_preset

Retrieves details of a single upload preset.

cloudinary_inspect_people_permissions

Inspect the caller's permitted actions on people.

cloudinary_list_people

List recognized people.

cloudinary_list_person_assets

List the images of a person.

cloudinary_list_upload_mappings

Retrieves a list of all upload mapping rules configured in your Cloudinary product environment.

cloudinary_replace_upload_mappings

Replaces all upload mappings.

cloudinary_test_trigger

Check a trigger's filter against sample data.

cloudinary_update_person

Update a person.

cloudinary_update_trigger

Updates the callback URL of an existing webhook trigger in your Cloudinary account.

cloudinary_update_upload_mapping

Updates an existing upload mapping by changing its remote URL template for a given folder.

cloudinary_update_upload_preset

Updates an existing upload preset's configuration settings.

cloudinary_add_related_assets

Create asset relations by public ID.

cloudinary_add_related_assets_by_id

Add related assets by asset ID.

cloudinary_create_last_access_report

Create a last access report.

cloudinary_get_last_access_report

Get a last access report.

cloudinary_list_last_access_report_assets

List the assets in a last access report.

cloudinary_list_last_access_reports

List last access reports.

cloudinary_remove_related_assets

Delete asset relations by public ID.

cloudinary_remove_related_assets_by_id

Delete asset relations by asset ID.

cloudinary_create_initial_backup

Start backing up assets that existed before backups were turned on.

cloudinary_get_initial_backup

Get initial backup.

cloudinary_list_initial_backups

List initial backups.

cloudinary_ping

Check Cloudinary answers these credentials.

cloudinary_generate_image_from_images

Make a new image from a prompt and reference images, for edits, restyling and combining.

cloudinary_get_analysis_task

Read the result of an analysis run with async=true.

cloudinary_get_image_generation_task

Check an image generation running in the background.

Connect Cloudinary to Claude, ChatGPT and Claude Code

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.

Cloud namemy-cloud
API key123456789012345
API secret••••••••••••3f7a
ConnectionVerified

Then just ask for the work

  • “List my largest images uploaded this month”

    • find_assets
  • “How much of my Cloudinary plan have I used so far?”

    • get_usage
  • “Upload this image from its link into the products folder and give me a version 400 pixels wide”

    • upload_asset
    • build_delivery_url
  • “Add the tag summer-sale to everything in the campaigns folder”

    • find_assets
    • update_assets_tags
  • “Show me images that look like a red leather bag”

    • visual_search_assets
  • “Write alt text for this image and save it on the asset”

    • analyze_captioning
    • update_assets_context

Use Cloudinary from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Cloudinary MCP server questions

What teams ask before putting Cloudinary behind an AI client.

What does PopMCP need to connect Cloudinary?

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.

Does it work on Cloudinary's free plan?

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.

Can the AI reach all my product environments?

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.

Do I have to know whether something is an image or a video?

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.

How does the AI make resized or transformed links?

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.

Can I stop the AI from changing or deleting my media?

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.

Can it manage product environments, users and permissions?

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.

Which Cloudinary events can start a workflow?

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.

Do I have to run or host the Cloudinary MCP server myself?

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.

Which AI clients can use this MCP server?

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.

How do I connect Cloudinary to Claude Code?

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.

Why do only 41 of the 225 tools load by default?

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.

What is the difference between a tool and a trigger?

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.

Connect Cloudinary to your AI in minutes

Launch a hosted MCP endpoint for Cloudinary, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP