Cloudinary MCP Server Cursor IDE Setup 2026: Upload, Transform & Search Media from Chat
Set up Cloudinary's official MCP servers in Cursor IDE — remote OAuth endpoint or local npm packages for asset management, transformations, and AI-powered content analysis.
Cloudinary MCP Server Cursor IDE Setup 2026
Cloudinary ships several official MCP servers, not one — asset management, environment configuration, structured metadata, and AI-powered content analysis are separate packages, and you connect the ones you actually need rather than one monolithic integration. Most Cursor setups only need asset management (upload, search, transform, tag) to start.
Two ways to connect: the remote OAuth-based endpoint, which needs no local install, or local npm packages authenticated with your own API key and secret. The remote route is the faster path if you just want to try it; local is the one to reach for if your org prefers self-managed credentials over an OAuth grant.
What You Can Do with Cloudinary MCP in Cursor
Depending on which package(s) you connect:
That last category is worth calling out on its own: the analysis server can generate real alt-text and captions for images already in your Cloudinary account, and moderation checks (flagging content that violates a policy) before you publish, from inside a chat instead of a separate dashboard workflow.
Why This Fits a Coding Workflow
The recurring pain point with a DAM (digital asset management) system is that transformation URLs are hard to construct correctly by hand — the query string syntax that resizes, crops, and reformats an image is dense and easy to get subtly wrong. Asking Cursor to "get me a 400x400 cropped, WebP version of this hero image" and having it construct (and verify) the actual transformation URL, rather than you looking up Cloudinary's transformation reference mid-task, is the direct time saved.
The second win is search: instead of digging through folders in the Cloudinary console to find "that product photo we uploaded last month," a natural-language search against your asset library, with results linked directly, stays inside the same chat where you're writing the component that needs the image.
Prerequisites
Method 1: Remote Server (OAuth, No Install)
The hosted endpoint for asset management:
https://asset-management.mcp.cloudinary.com/sse
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"cloudinary": {
"url": "https://asset-management.mcp.cloudinary.com/sse"
}
}
}
Restart Cursor. On first tool call, it opens a browser window for Cloudinary's OAuth authorization — approve it, and Cursor reuses the credential for future sessions without a stored secret in your config.
Method 2: Local npm Packages (API Key + Secret)
Use this if you want a self-managed credential instead of an OAuth grant, or need one of the non-asset-management servers (environment config, structured metadata, analysis) that don't have their own dedicated remote endpoint documented alongside asset management.
{
"mcpServers": {
"cloudinary-asset-mgmt": {
"command": "npx",
"args": ["-y", "--package", "@cloudinary/asset-management-mcp", "--", "mcp", "start"],
"env": {
"CLOUDINARY_URL": "cloudinary://your_api_key:your_api_secret@your_cloud_name"
}
}
}
}
CLOUDINARY_URL is a single combined credential string; alternatively, set CLOUDINARY_CLOUD_NAME, CLOUDINARY_API_KEY, and CLOUDINARY_API_SECRET as separate env entries if you prefer not to combine them.
To add the analysis or metadata servers alongside asset management, add additional entries using their respective package names (@cloudinary/environment-config-mcp, @cloudinary/structured-metadata-mcp, @cloudinary/analysis), each with the same credential env vars.
Step: Find Your Credentials
1. Log into cloudinary.com
2. Your Cloud Name, API Key, and API Secret are on the dashboard home page (Product Environment Credentials)
3. For the local method, either combine them into a CLOUDINARY_URL string or set them individually
Verify the Connection
Restart Cursor, then in chat:
Search my Cloudinary assets for anything tagged "hero" and show me the results
Or:
List the folders in my Cloudinary account
Real folder names or asset results confirm the connection is live.
Practical Workflows
Generating a transformation URL from a description
I need a 1200x630 cropped version of the asset "og-image-base" for Open Graph,
converted to WebP with quality set to auto. Build the transformation URL
and show it to me before I use it in the meta tag.
Finding an asset without opening the console
Find any image in Cloudinary tagged "product" and uploaded in the last 30 days,
then show me their URLs and dimensions
Auto-generating alt text for accessibility
Pull the last 10 images uploaded to the "blog" folder and generate
descriptive alt text for each one using the analysis tools
Bundling assets for a handoff
Generate a downloadable archive of every asset tagged "Q3-campaign"
Gotchas
The remote endpoint above covers asset management only. If you need environment config, structured metadata, or content analysis, those are separate packages without (as of this writing) their own documented remote OAuth endpoint alongside asset management — use the local npm route for those.
Transformations consume Cloudinary account credits/quota. Generating transformed variants of assets, especially at scale (batch-transforming many images in one session), counts against your account's transformation limits the same way it would from any other client. Scope batch requests deliberately rather than looping over an entire media library.
CLOUDINARY_API_SECRET is a genuine secret, not a public key like your Cloud Name. Don't commit an mcp.json with the combined CLOUDINARY_URL string to a shared repo — treat it the same as any other API secret.
AI-powered analysis features (auto-tagging, moderation) may be gated by your Cloudinary plan tier. If a captioning or moderation request comes back empty or errors, check whether your account tier includes that specific add-on before assuming the MCP connection is broken.
Troubleshooting
OAuth popup never appears (remote method)
Confirm your Cursor version supports url-based remote MCP servers with SSE/HTTP transport. If it does and the popup still doesn't fire, check that nothing on your network blocks *.mcp.cloudinary.com, then disconnect and reconnect the server from Cursor's MCP settings.
"Unauthorized" errors (local method)
Double-check the CLOUDINARY_URL string format exactly: cloudinary://api_key:api_secret@cloud_name — a swapped key/secret order or a missing cloudinary:// scheme is a common copy-paste mistake.
Transformation requests return errors on valid-looking parameters
Some transformation combinations are plan-gated (certain AI-based transformations, for instance) or require specific asset types. Ask Cursor to show you the raw error from the API rather than just "it failed" — Cloudinary's error messages are usually specific about which parameter is the problem.
Search returns no results even though assets exist
Confirm which Cloudinary environment/product environment your credentials point at — an account with multiple environments (common on paid plans) can have assets in one environment that are invisible to credentials scoped to another.
Frequently Asked Questions
Q: Do I need all four Cloudinary MCP packages, or just one?
A: Just the ones you need. Most Cursor setups only connect asset management for upload, search, and transformations. Add environment config, structured metadata, or analysis only if you specifically need preset/webhook management, custom metadata fields, or AI-powered tagging and moderation.
Q: Is OAuth or an API key/secret the better choice for a solo developer?
A: OAuth (the remote endpoint) is simpler — no credential to store or rotate yourself. API key/secret (local) is preferable if you want a credential you fully control and can revoke independently, or if you need one of the non-asset-management servers.
Q: Can this delete assets from my Cloudinary account?
A: The asset management server includes management operations beyond pure read access, so yes, depending on the specific tool called — treat delete-shaped prompts with the same care you'd apply to any destructive action, and confirm the exact asset before asking Cursor to remove anything.
Q: Does using the AI content analysis tools cost extra?
A: It depends on your Cloudinary plan — AI-powered analysis (auto-tagging, moderation, captioning) is often a metered add-on distinct from basic transformations. Check your account's usage dashboard if you're running analysis across a large batch of assets.
Q: Can I generate a Cloudinary transformation URL without actually applying it?
A: Yes — ask Cursor to construct and show you the URL before you use it anywhere. This is the safer pattern for anything going into production code, since you can verify the exact parameters before committing to them.
Q: Does this integration work with video, or only images?
A: Asset management covers video and raw files in addition to images — Cloudinary is a general media platform, not image-only, and the MCP tools reflect that.
Related Guides
---