
Cloudinary Asset Management
io.github.cloudinaryPublished by GitHub account cloudinaryv0.11.6Updated Nov 5, 2026
Upload, generate, organize, search, and transform images, videos, and files with AI-powered tools.
Overview
Cloudinary Asset Management lets an assistant upload, search, organize, transform and archive images, videos and files in a Cloudinary account.
- What you can do
- Upload images, videos and files to Cloudinary, including local files
- Search and list assets by tag, folder, type and date, and create folders
- Update assets and add tags to organize a media library
- Transform assets with Cloudinary transformation strings and invalidate CDN cache
- Generate ZIP archives of assets and read account usage statistics
- Look up the transformation reference documentation before applying effects
- When to use it
- Useful when you keep media in Cloudinary and want an assistant to handle routine asset work: uploading new files, finding assets by tag or folder, applying resizing or effect transformations, and exporting batches as archives.
- Requirements
- Either the hosted remote endpoint or a local process via npx or Docker; Node.js 20.19.0 or later for the npm package. A Cloudinary cloud name plus API key and API secret, supplied as CLOUDINARY_CLOUD_NAME, CLOUDINARY_API_KEY and CLOUDINARY_API_SECRET, as CLOUDINARY_URL, or through the cloudinary-api-key, cloudinary-api-secret and cloudinary-cloud-name headers. OAuth is declared for the remote endpoint.
Installation
In SourceWeft
- Open Cloudinary Asset Management in the dashboard and add it to a workspace.
- Connect the required credentials. They are stored privately and never shown on public pages.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.cloudinary%2Fasset-management-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.
{
"mcpServers": {
"cloudinary-asset-management": {
"type": "http",
"url": "https://asset-management.mcp.cloudinary.com/mcp"
}
}
}README
Cloudinary Asset Management MCP Server
Summary
Table of Contents
Installation
The MCP server requires Node.js 20.19.0 or later.
Claude Desktop
Install the MCP server as a Desktop Extension using the pre-built mcp-server.mcpb file:
Simply drag and drop the mcp-server.mcpb file onto Claude Desktop to install the extension.
The MCP bundle package includes the MCP server and all necessary configuration. Once installed, the server will be available without additional setup.
[!NOTE] MCP bundles provide a streamlined way to package and distribute MCP servers. Learn more about Desktop Extensions.
Cursor
Or manually:
- Open Cursor Settings
- Select Tools and Integrations
- Select New MCP Server
- If the configuration file is empty paste the following JSON into the MCP Server Configuration:
Claude Code CLI
Gemini
Windsurf
Refer to Official Windsurf documentation for latest information
- Open Windsurf Settings
- Select Cascade on left side menu
- Click on
Manage MCPs. (To Manage MCPs you should be signed in with a Windsurf Account) - Click on
View raw configto open up the mcp configuration file. - If the configuration file is empty paste the full json
VS Code
Or manually:
Refer to Official VS Code documentation for latest information
- Open Command Palette
- Search and open
MCP: Open User Configuration. This should open mcp.json file - If the configuration file is empty paste the full json
Stdio installation via npm
To start the MCP server, run:For a full list of server arguments, run:
Configuration
Environment Variables
The MCP server supports the following environment variables:
CLOUDINARY_URL Format
You can use a single CLOUDINARY_URL instead of individual variables:
Response Header Collection
You can configure the server to include Cloudinary API response headers (such as x-request-id and rate limit info) in tool output. This is useful for debugging and monitoring.
Set CLOUDINARY_COLLECT_HEADERS to control which headers are collected:
Header matching specs
Each entry in the comma-separated list is matched against response header names:
You can also set this via the CLOUDINARY_URL query parameter:
When enabled, collected headers appear in an _headers field in the tool response. When not set, no headers are collected and responses are unchanged.
MCP Apps
The server can expose interactive MCP UI Apps (spec-aligned with io.modelcontextprotocol/ui) that hosts can render alongside tool results — for example, an asset gallery for list results, a single-asset detail view, and an upload UI.
Apps are enabled by default. Use the --mcp-apps flag (available on both start and serve) or the CLOUDINARY_MCP_APPS environment variable to override this behaviour:
Available app names: asset-gallery, asset-details, asset-upload.
Precedence: CLI flag > environment variable > built-in default.
Authentication
The MCP server uses your Cloudinary API key and secret for authentication:
Available Tools
The MCP server exposes Cloudinary's Asset Management API as tools. Use your AI application to discover and invoke the available tools for uploading, managing, searching, and transforming your media assets.
Usage Examples
Example 1: Upload and Transform an Image
Example 2: Search and Organize Assets
Example 3: Generate Archive
Example 4: Asset Management Workflow
Custom Tools
This MCP server includes two powerful custom tools:
get-tx-reference
Retrieves the complete Cloudinary transformation reference documentation.
When to use:
- Before creating or modifying transformations
- When user asks about image/video effects, resizing, cropping, filters
Example:
transform-asset
Applies transformations to existing assets using Cloudinary's explicit API.
Parameters:
publicId- The asset's public IDtransformations- Transformation string (e.g.,c_fill,w_300,h_200)resourceType- Type:image,video, orraw(default:image)invalidate- Invalidate CDN cache (default:false)
Example:
Progressive Discovery
MCP servers with many tools can bloat LLM context windows, leading to increased token usage and tool confusion. Dynamic mode solves this by exposing only a small set of meta-tools that let agents progressively discover and invoke tools on demand.
To enable dynamic mode, pass the --mode dynamic flag when starting your server:
In dynamic mode, the server registers only the following meta-tools instead of every individual tool:
list_tools: Lists all available tools with their names and descriptions.describe_tool_input: Returns the input schema for one or more tools by name.execute_tool: Executes a tool by name with its arguments.list_scopes: Lists the scopes available on the server.
This approach significantly reduces the number of tokens sent to the LLM on each request, which is especially useful for servers with a large number of tools.
You can combine dynamic mode with scope and tool filters:
Development
Building from Source
Prerequisites
- Node.js v20 or higher
- npm, pnpm, bun, or yarn
Build Steps
Project Structure
Contributions
While we value contributions to this MCP Server, most of the code is generated programmatically from the Cloudinary API spec. Any manual changes to generated files will be overwritten on the next generation — please direct your changes to the manual extension points below.
What you can contribute:
- Custom tools and server wiring in
src/mcp-server/server.extensions.ts - MCP UI Apps in
src/mcp-server/apps/(gallery, details, upload, and new apps) - SDK hooks in
src/hooks/(auth, custom headers, response headers, user agent) - Documentation improvements (this README, JSDoc on manual files)
- Bug reports and feature requests
Generated files (do not edit):
src/mcp-server/server.tssrc/mcp-server/tools/*.tssrc/funcs/*.tssrc/models/*.ts
When touching generated files is unavoidable, prefer updating the upstream spec or Speakeasy configuration in .speakeasy/ so the change survives regeneration.
We look forward to hearing your feedback. Feel free to open a PR or issue with a proof of concept and we'll do our best to include it in a future release.
MCP Server Created by Speakeasy
Source: README.md at commit ada9cd0
Tools
0Version history
3- v0.11.6LatestNov 5, 2026
- v0.11.5Oct 23, 2026
- v0.8.1Sep 16, 2026
Score
85% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts

