Cloudinary Automation
Scannednpx machina-cli add skill ComposioHQ/awesome-claude-skills/cloudinary-automation --openclawCloudinary Automation
Automate Cloudinary media management workflows -- create folders, configure upload presets, look up assets, manage transformations, search folders, and monitor usage -- all through natural language.
Toolkit docs: composio.dev/toolkits/cloudinary
Setup
- Add the Rube MCP server to your environment:
https://rube.app/mcp - Connect your Cloudinary account when prompted (API key auth via Composio)
- Start issuing natural language commands for Cloudinary automation
Core Workflows
1. Organize Assets with Folders
Create folder structures for organizing hosted images, videos, and raw files.
Tool: CLOUDINARY_CREATE_FOLDER
Key parameters:
folder-- full path of the new asset folder (required), e.g.,images/events/2023
Supporting tools:
CLOUDINARY_SEARCH_FOLDERS-- search folders by name, path, or creation date using Lucene-like expressionsexpression-- search filter (e.g.,name:sample AND path:events)max_results-- 1-500 results (default 50)sort_by-- list of sort objects (e.g.,[{"created_at": "desc"}])next_cursor-- pagination cursor
CLOUDINARY_GET_RESOURCES_BY_ASSET_FOLDER-- list assets within a specific folder
Example prompt:
"Create a folder called 'marketing/campaigns/spring-2026' in Cloudinary"
2. Configure Upload Presets
Define centralized upload behavior including target folder, allowed formats, transformations, tags, and overwrite rules.
Tool: CLOUDINARY_CREATE_UPLOAD_PRESET
Key parameters:
name-- preset name (auto-generated if omitted)folder-- target folder path for uploads (e.g.,samples/)allowed_formats-- comma-separated list (e.g.,jpg,png,webp)tags-- comma-separated tags to apply (e.g.,marketing,thumbnail)transformation-- incoming transformation (e.g.,c_limit,w_500)eager-- eager transformations to generate on upload (e.g.,c_fill,g_face,h_150,w_150)unsigned-- allow unsigned uploads (true/false)overwrite-- overwrite existing assets with same public_id (cannot betruewhenunsigned=true)resource_type--image,video, orraw(defaultimage)unique_filename-- append random suffix to avoid collisions (defaulttrue)use_filename-- use original filename (defaultfalse)moderation-- moderation type:manual,webpurify,aws_rek, etc.auto_tagging-- confidence threshold 0.0-1.0 for AI auto-taggingnotification_url-- webhook URL for upload notifications
Example prompt:
"Create an upload preset called 'product-images' that only allows JPG and PNG, stores in 'products/' folder, and auto-tags with 0.7 confidence"
3. Look Up Asset Details
Retrieve full details for a specific asset by its public ID, including metadata, derived assets, and related resources.
Tool: CLOUDINARY_GET_RESOURCE_BY_PUBLIC_ID
Key parameters:
public_id-- the asset's public ID (required)resource_type--image,video, orraw(required)type-- delivery type:upload,private,authenticated,fetch, etc. (required)colors-- include color histogram and predominant colorsfaces-- include detected face coordinatesmedia_metadata-- include IPTC, XMP, and detailed metadataquality_analysis-- include quality analysis scoresphash-- include perceptual hash for similarity detectionversions-- include backed-up versionsrelated-- include related assetsmax_results-- max derived/related assets to return (1-500)
Example prompt:
"Get full details for the image 'products/hero-banner' including color analysis and quality scores"
4. Manage Transformations and Derived Assets
List existing transformations, apply eager transformations to uploaded assets, and clean up derived resources.
Tools:
CLOUDINARY_GET_TRANSFORMATIONS-- list all named and unnamed transformationsmax_results-- 1-500 (default 10)next_cursor-- pagination cursor
CLOUDINARY_EXPLICIT_RESOURCE-- update an existing asset: pre-generate transformations, update metadata, move to new folders, or modify tagspublic_id-- target asset (required)eager-- list of transformation strings to pre-generate (e.g.,["c_fill,w_300,h_200", "c_thumb,w_100,h_100,g_face"])eager_async-- generate transformations asynchronouslytags-- replace existing tagsasset_folder-- move asset to a new folderdisplay_name-- set display namecontext-- key-value metadata (e.g.,{"alt": "Mountain view"})invalidate-- invalidate CDN cache (takes up to 1 hour)
CLOUDINARY_DELETE_DERIVED_RESOURCES-- delete specific derived assets by IDs (up to 100 per call)
Example prompt:
"Pre-generate a 300x200 fill crop and a 100x100 face-detection thumbnail for asset 'products/hero-banner'"
5. Monitor Usage and Configuration
Check account-level usage limits, environment configuration, and tag inventory.
Tools:
CLOUDINARY_GET_USAGE-- monitor storage, bandwidth, requests, and quota limitsCLOUDINARY_GET_CONFIG-- fetch environment config detailssettings-- set totrueto include configuration settings likefolder_mode
CLOUDINARY_GET_TAGS-- list all tags for a resource type
Example prompt:
"Show me my Cloudinary account usage and remaining quota"
6. Set Up Webhook Triggers
Create webhook notifications for specific Cloudinary events.
Tool: CLOUDINARY_CREATE_TRIGGER
Use to receive callbacks when uploads complete, transformations finish, or other events occur.
Example prompt:
"Create a webhook trigger that notifies https://my-app.com/hook on upload events"
Known Pitfalls
| Pitfall | Details |
|---|---|
| Folder creation idempotency | CLOUDINARY_CREATE_FOLDER may error or no-op if the path already exists -- design idempotent folder naming |
| Preset-upload alignment | Upload preset options like allowed_formats, folder, and unsigned must match the actual upload method or uploads will be rejected |
| Strict asset lookup | CLOUDINARY_GET_RESOURCE_BY_PUBLIC_ID fails if any of resource_type, type, or public_id is incorrect, even when the asset exists |
| Folder path sensitivity | CLOUDINARY_GET_RESOURCES_BY_ASSET_FOLDER only lists assets in the exact folder specified; typos return empty results |
| Quota blocking | CLOUDINARY_GET_USAGE reflects account-level limits -- hitting caps silently blocks uploads until usage is checked and addressed |
| CDN invalidation delay | Setting invalidate=true on CLOUDINARY_EXPLICIT_RESOURCE takes up to 1 hour to propagate |
| Unsigned vs overwrite conflict | Cannot set overwrite=true when unsigned=true in upload presets |
Quick Reference
| Action | Tool Slug | Key Params |
|---|---|---|
| Create folder | CLOUDINARY_CREATE_FOLDER | folder |
| Search folders | CLOUDINARY_SEARCH_FOLDERS | expression, max_results |
| List folder assets | CLOUDINARY_GET_RESOURCES_BY_ASSET_FOLDER | folder path |
| Create upload preset | CLOUDINARY_CREATE_UPLOAD_PRESET | name, folder, allowed_formats, tags |
| Get asset details | CLOUDINARY_GET_RESOURCE_BY_PUBLIC_ID | public_id, resource_type, type |
| List transformations | CLOUDINARY_GET_TRANSFORMATIONS | max_results, next_cursor |
| Update/transform asset | CLOUDINARY_EXPLICIT_RESOURCE | public_id, eager, tags |
| Delete derived assets | CLOUDINARY_DELETE_DERIVED_RESOURCES | derived_resource_ids |
| Get usage | CLOUDINARY_GET_USAGE | (none) |
| Get config | CLOUDINARY_GET_CONFIG | settings |
| List tags | CLOUDINARY_GET_TAGS | resource_type |
| Create webhook | CLOUDINARY_CREATE_TRIGGER | event type, URL |
Powered by Composio
Source
git clone https://github.com/ComposioHQ/awesome-claude-skills/blob/master/composio-skills/cloudinary-automation/SKILL.mdView on GitHub Overview
Cloudinary Automation streamlines media management by enabling natural language prompts to create folders, configure upload presets, look up assets, manage transformations, search folders, and monitor usage. It plugs Cloudinary into a Composio-driven automation flow via the Rube MCP server for NL-driven actions.
How This Skill Works
A Rube MCP-based engine translates natural language prompts into Cloudinary toolkit actions. You issue commands mapped to tools like CLOUDINARY_CREATE_FOLDER, CLOUDINARY_CREATE_UPLOAD_PRESET, CLOUDINARY_GET_RESOURCE_BY_PUBLIC_ID, and CLOUDINARY_SEARCH_FOLDERS to perform structured operations without manual UI clicks.
When to Use It
- Organize assets by creating folder structures (e.g., images/events/2023) using CLOUDINARY_CREATE_FOLDER
- Define centralized upload behavior with presets (CLOUDINARY_CREATE_UPLOAD_PRESET) for consistency
- Retrieve full asset details, including metadata and derived resources (CLOUDINARY_GET_RESOURCE_BY_PUBLIC_ID)
- Search and list folders or assets with flexible criteria (CLOUDINARY_SEARCH_FOLDERS, CLOUDINARY_GET_RESOURCES_BY_ASSET_FOLDER)
- Monitor usage and asset performance across Cloudinary assets
Quick Start
- Step 1: Add the Rube MCP server to your environment: https://rube.app/mcp
- Step 2: Connect your Cloudinary account when prompted (API key auth via Composio)
- Step 3: Start issuing natural language commands for Cloudinary automation
Best Practices
- Plan folder structures to reflect campaigns or product lines for easier retrieval
- Use meaningful preset names and conservative allowed_formats to enforce consistency
- Validate transformation and eager options to balance quality with performance
- Test prompts on sample assets before applying broadly to avoid unintended overwrites
- Secure API keys and enable audit trails for all automation actions
Example Use Cases
- Create a folder called 'marketing/campaigns/spring-2026' in Cloudinary
- Create an upload preset called 'product-images' that only allows JPG and PNG, stores in 'products/' folder, and auto-tags with 0.7 confidence
- Get full details for the image 'products/hero-banner' including color analysis and quality scores
- Search folders where name contains 'events' and sort by creation date descending
- List assets inside the folder 'marketing/campaigns/spring-2026' using CLOUDINARY_GET_RESOURCES_BY_ASSET_FOLDER