Latest release v2026.1001.0 is live (October 1, 2026).

See what's new

Cloudinary connector

Find media assets and update their metadata and tags.

Category
Content
Tools from
Cloudinary
Sign-in
Cloudinary browser sign-in
Works as
Agent tool
Source recorded

Paperclip’s Cloudinary connector gives your AI agents tools to find media assets, inspect their details and update metadata or tags through its MCP server. Each tool can be Allowed, Ask first or Off.

This connection covers Cloudinary’s asset-management surface. Reach and allowed operations depend on the product environment and the authorizing user’s roles.

What agents can do with Cloudinary

  • Find assets and inspect their detailssearch-assets · get-asset-details
  • Update asset metadataget-asset-details · asset-update
  • Organize assets with tagssearch-assets · manage-asset-tags

How to connect Cloudinary

  1. In Paperclip, open Connectors and select Cloudinary.
  2. On the Access step, choose the identity and which agents may use the connection.
  3. Select Sign in with Cloudinary and complete browser sign-in for the intended product environment.

Setup guide

Cloudinary tools for agents29

Read 12

  • download-asset-backup

    Download a backup copy of an asset

  • get-asset-details

    Get resource by asset ID Returns the details of a single resource specified by its asset ID.

  • get-generation-task

    Get a generation task Get the status of a generation task.

  • get-tx-reference

    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

    Full description

    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.

  • get-usage-details

    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

    Full description

    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.

  • list-files

    Get raw assets Retrieves a list of raw assets.

    Full description

    Get raw assets Retrieves a list of raw assets. Results can be filtered by various criteria like tags, prefix, or specific public IDs.

Show all 12 Read tools
  • list-images

    Get image assets Retrieves a list of image assets.

    Full description

    Get image assets Retrieves a list of image assets. Results can be filtered by various criteria like tags, prefix, or specific public IDs.

  • list-tags

    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.

    Full description

    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)

  • list-videos

    Get video assets Retrieves a list of video assets.

    Full description

    Get video assets Retrieves a list of video assets. Results can be filtered by various criteria like tags, prefix, or specific public IDs.

  • search-assets

    Provides a powerful query interface to filter and retrieve assets and their details Returns a list of resources matching the specified search criteria.

    Full description

    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. See the `expression` parameter for the full field reference. ## Expression syntax - **Match**: `field:value` (token match) or `field=value` (exact match). Examples: `tags:shirt`, `tags=cotton`. - **Comparisons**: `>`, `<`, `>=`, `<=` for numbers and dates. Example: `bytes>10000000`. - **Ranges**: `field:[from TO to]` inclusive, `field:{from TO to}` exclusive. Example: `width:{200 TO 1028}`. - **Booleans**: `AND`, `OR`, `NOT` (uppercase), or `+` (must), `-` (must not). `NOT` must appear between clauses — a bare leading `NOT` is a parse error; use `-field:value` to negate the first clause. Group with parentheses: `(shirt OR pants) AND clothes`. - **Wildcards**: trailing `*` only, for prefix match (`public_id:shoes_*`, `format:jp*`, `tags:shirt*`). Not supported on `folder`, `asset_folder`, `resource_type`, or `type`. Leading `*`, middle `*`, `?`, and bare `*` (`folder:*`, `context.alt:*`) are all parse errors — wildcards cannot be used as a "field is present" probe. - **Tokenized vs exact fields**: `tags`, `filename`, `display_name`, `context.<key>`, and `metadata.<id>` match on tokens split by whitespace and punctuation — `tags:analysis` matches the tag `full-analysis`. `public_id`, `folder`, `asset_folder`, and `format` match the whole value — `public_id:dog` will not match `dog_pldcwy`; use `public_id="dog_pldcwy"` (exact) or `public_id:dog*` (prefix). These exact-match fields still accept a trailing `*` for prefix match (except `folder` / `asset_folder`, where wildcards are ignored). - **Dates**: ISO-8601 in quotes (`uploaded_at>"2024-01-15"`, `created_at>"2026-01-01T00:00:00Z"`) or relative shorthand `Nh`, `Nd`, `Nw` (`uploaded_at>1d`, `created_at:[4w TO 1w]`). Send raw `<`/`>`, never HTML-escaped. - **Quoting**: wrap any value containing a space, colon, or other reserved character (`! ( ) { } [ ] ^ ~ ? \ = & < > |`) in double quotes, or escape each character with `\`. Examples: `tags:"service:mantels"`, `tags:"brand:openhaul"`, `aspect_ratio:"16:9"`, `folder:"My Folder"`. ## Common mistakes - No months or years shorthand. `1m` and `1y` are not supported; use ISO dates: `created_at>"2024-01-01"` or `created_at:["2024-01-01" TO "2024-04-01"]`. - Use `folder:` or `asset_folder:` (singular); `folders:`, `asset_folder_id:`, and other invented variants are not valid fields. Pass the exact folder name — wildcards do not apply here. - There is no "has any value" / presence probe. `folder:*`, `metadata.alt:*`, `context.key:*`, `tags:*`, and `-tags:*` are all parse errors. See *"Which assets have any value for `metadata.<id>`?"* under **Common tasks** for workarounds. - `NOT foo AND bar` is a parse error. Write it as `bar AND NOT foo` or `-foo AND bar`, and keep every `NOT` between two clauses (`a AND NOT b AND NOT c` is fine; `NOT b AND NOT c …` is not). - `public_id:dog` will not match `dog_pldcwy`. Use `public_id="dog_pldcwy"` (exact) or `public_id:dog*` (prefix). - `tags=service:mantels` fails because the unquoted colon is parsed as a field separator. Use `tags="service:mantels"` or `tags=service\:mantels`. - Do not HTML-escape operators. Send `uploaded_at<1h`, not `uploaded_at&lt;1h`. - Do not leave an operand empty (e.g. `tags: AND -tags:foo`). Omit the empty clause entirely. ## Tips - Set `max_results: 0` to return only `total_count` and `aggregations` without any resource payload — useful for counts and aggregation-only queries. - `total_count` is always present in the response; prefer it over running an aggregation just to get a count. - `aggregate` (both simple and range variants) and the `metadata`, `image_metadata`, `image_analysis` values of `with_field` require a Tier 2 search plan. - Range aggregations require each range to include a `key` label (1–20 chars, `[a-zA-Z0-9_-]+`) and at least one of `from` / `to`. ## Common tasks - **Count matching assets** — put the filter in `expression` with `max_results: 0` and read `total_count` from the response. Works on every tier; no `aggregate` needed. - **Preview one matching asset** — set `max_results: 1`; add `with_field: ["tags", "context"]` (or `metadata`, Tier 2) to inspect values. Prefer this over fetching and scanning a full page. - **Distribution of values for a field** — Tier 2: `aggregate: [format|resource_type|type]` for enum counts, or range aggregations on `bytes`, `image_pixels`, `video_pixels`, or `duration`. Tier 1 fallback: run N small queries with `max_results: 0`, one per candidate value, and read `total_count` from each. - **"Which assets have any value for `metadata.<id>`?"** — not expressible directly (`metadata.X:*` is a parse error; there is no presence probe). Workarounds: (a) if the field has a known value set, enumerate — `metadata.region:(apac OR emea OR amer)`; (b) query broadly with `with_field: ["metadata"]` (Tier 2) and filter client-side for entries where the field is set; (c) at ingest time, attach a sentinel tag whenever the field is set, then search by that tag. - **Newest / largest N** — keep the filter in `expression` and sort explicitly: `sort_by: [{uploaded_at: "desc"}]` with `max_results: 10`. - **Filter by folder** — both `asset_folder:"parent/child"` and `folder:"parent/child"` match an exact folder path; there is no wildcard or "contains". To query across multiple folders, enumerate: `asset_folder:("campaigns/2024" OR "campaigns/2025")`. - **Filter by metadata when you only know the label** — first call `list-metadata-fields` to resolve the label to an `external_id`, then query `metadata.<external_id>:value`. - **Multiple independent filters in one turn** — prefer one `expression` with `OR` / parentheses over firing many parallel calls: `metadata.region:apac OR metadata.region:emea` in a single request is faster and more reliable than two parallel requests. ## Examples - `tags:shirt AND uploaded_at>1d` - `resource_type:image AND bytes>1000000 AND (format:png OR format:jpg)` - `folder:products AND context.category:electronics` - `tags:"service:mantels" AND -tags:discontinued`

  • search-folders

    Searches for folders whose attributes match a given expression Lists the folders that match the specified search expression.

    Full description

    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.

  • visual-search-assets

    Finds images in your asset library based on visual similarity or content Returns a list of resources that are visually similar to a specified image.

    Full description

    Finds images in your asset library based on visual similarity or content Returns a list of resources that are visually similar to a specified image. You can provide the source image for comparison in one of three ways: - Provide a URL of an image - Specify the asset ID of an existing image - Provide a textual description

Write 17

  • asset-rename

    Updates an existing asset's identifier (public ID) and optionally other metadata in your Cloudinary account

  • asset-update

    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.

    Full description

    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.

  • create-asset-relations

    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.

    Full description

    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.

  • create-folder

    Creates a new empty folder in your Cloudinary media library Creates a new folder at the specified path

  • delete-asset

    Delete asset by asset ID Deletes an asset using its immutable asset ID.

  • delete-asset-relations

    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

    Full description

    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.

Show all 17 Write tools
  • delete-derived-assets

    Delete derived resources Deletes derived resources by derived resource ID

  • delete-folder

    Deletes an existing folder from your media library Deletes a folder and all assets within it.

  • generate-archive

    Creates an archive (ZIP or TGZ file) that contains a set of assets from your product environment.

    Full description

    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-image

    Generate an image Generate an image from a text prompt using AI models.

    Full description

    Generate an image Generate an image from a text prompt using AI models. The model is selected via the optional `model` object: 1. If `model.id` is provided, use that exact model. 2. Else if `model.family` (+ optional `model.tier`) is provided, resolve via the model registry; a missing tier defaults to `standard`. 3. Else if `model.mode` is `auto`, the service picks the model for the request (optionally steered by `model.preference`). 4. Otherwise, use the global default (nano-banana / premium, i.e. `nano-banana-2`).

  • generate-image-from-images

    Generate an image from reference images Generate an image guided by one or more reference images — restyle, on-brand variants, character consistency, virtual try-on, edit/extend — steered by prompt.

    Full description

    Generate an image from reference images Generate an image guided by one or more **reference images** — restyle, on-brand variants, character consistency, virtual try-on, edit/extend — steered by `prompt`. Only edit-capable models are selectable here. The model is selected via the optional `model` object, exactly like `text_to_image`, but IDs are restricted to edit models: 1. If `model.id` is provided, use that exact edit model. 2. Else if `model.family` (+ optional `model.tier`) is provided, resolve to that family's edit model (e.g. `nano-banana` / `premium` → `nano-banana-2-edit`). 3. Else if `model.mode` is `auto`, the service picks an edit model for the request (optionally steered by `model.preference`). 4. Otherwise, use the default edit model (`nano-banana-2-edit`). Each reference image is either a stored managed asset (by `asset_id`, read-permission checked) or an external HTTPS `url`.

  • manage-asset-context

    Adds or clears contextual metadata on multiple assets Applies a contextual-metadata command to the given assets, addressing them by public ID.

  • manage-asset-metadata

    Sets structured metadata values on multiple assets Assigns structured metadata field values to the given assets, addressing them by public ID.

    Full description

    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.

  • manage-asset-tags

    Adds, removes, or replaces tags on multiple assets Applies a tag command to the given assets, addressing them by public ID.

    Full description

    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.

  • move-folder

    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

    Full description

    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.

  • transform-asset

    Generate derived transformations for existing assets using Cloudinary's explicit API with eager transformations CRITICAL PREREQUISITES: MUST call get-tx-reference tool first MUST validate

    Full description

    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.

  • upload-asset

    Uploads media assets (images, videos, raw files) to your Cloudinary product environment Uploads media assets (images, videos, raw files) to your Cloudinary product environment.

    Full description

    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.

Tool availability and permissions

This provider-published list describes the server’s tools. Authorization and feature access can reduce the tools available on your connection.

These lists use a conservative permission policy. Read requires a provider read-only hint or a reviewed Paperclip read rule. Evidence that an action changes data or submits information elsewhere puts it in Write. Write also includes actions we cannot verify as read-only. Read describes the reviewed evidence; it does not guarantee that an action has no side effects. A connected account can group actions differently.

This list covers the static asset-management tools. Dynamic-mode tools are separate. Hosted version, filters, scopes and account access can change availability.

Connection policies

Discovered actions become active under the connection’s existing policies. Review the list after each refresh. You can set any tool to Ask first or Off. Deleting assets can break pages that embed them and cannot be reversed from Paperclip.

Cloudinary connector FAQ

Can I require approval for changes?

Set actions that change data to Ask first to require human approval of each call or Off to prevent calls. Allowed actions run without approval. Read and Write grouping is separate from these settings.

What can agents reach in Cloudinary?

Agents reach one Cloudinary product environment per connection. The authorizing user’s roles limit what they can do.

What do I need before connecting?

Use a Cloudinary account with access to the intended product environment. Choose the authorizing user before connecting. Paperclip registers its client automatically.