{"id":40503,"date":"2026-10-06T07:00:00","date_gmt":"2026-10-06T14:00:00","guid":{"rendered":"https:\/\/cloudinary.com\/blog\/?p=40503"},"modified":"2026-09-23T13:50:48","modified_gmt":"2026-09-23T20:50:48","slug":"upload-manage-media-assets-cloudinary-mcp","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp","title":{"rendered":"Upload and Manage Media Assets at Scale With Cloudinary MCP"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">If you manage media assets for a growing product, you know the challenge. Hundreds of new images, videos, and files arrive every week. Each one needs to be uploaded, organized, tagged, and optimized before it can go live. Doing this manually leads to duplicate assets, inconsistent tags, and files scattered across folders.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cloudinary MCP (Model Context Protocol) connects your Cloudinary account to an AI agent like Claude. Instead of writing scripts or clicking through dashboards, you tell Claude what to do in plain English. Upload files, apply transformations, organize by metadata, generate delivery URLs. Claude calls the right Cloudinary tools and handles the execution.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this guide, you&#8217;ll set up the <a href=\"https:\/\/github.com\/cloudinary\/mcp-servers\" target=\"_blank\" rel=\"noreferrer noopener\">Cloudinary Asset Management MCP server<\/a>, connect it to Claude Desktop, and use natural language to automate uploading, transforming, organizing, and analyzing your media assets.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What You\u2019re Building<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A working setup where Claude can:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Upload images and videos to your Cloudinary Media Library from URLs or your local filesystem.<\/li>\n\n\n\n<li>Tag assets automatically at upload with categories, campaigns, and product metadata.<\/li>\n\n\n\n<li>Generate optimized variants (web, mobile, thumbnail) from a single source asset.<\/li>\n\n\n\n<li>Analyze assets with AI to generate auto-tags based on image content.<\/li>\n\n\n\n<li>Create asset reports showing file names, formats, and storage usage.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Cloudinary MCP Servers Overview<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cloudinary provides <a href=\"https:\/\/cloudinary.com\/documentation\/cloudinary_llm_mcp\" target=\"_blank\" rel=\"noreferrer noopener\">several MCP servers<\/a>, each designed for a different part of the media workflow:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Server<\/strong><\/td><td><strong>Purpose<\/strong><\/td><\/tr><tr><td>Asset Management<\/td><td>Upload, manage, search, and transform media assets.<\/td><\/tr><tr><td>Environment Config<\/td><td>Manage environment settings, upload presets, and transformation configurations.<\/td><\/tr><tr><td>Structured Metadata<\/td><td>Create and query structured metadata fields for asset organization and search.<\/td><\/tr><tr><td>Analysis<\/td><td>AI-powered content recognition, tagging, and moderation.<\/td><\/tr><tr><td>MediaFlows<\/td><td>Automated workflows for processing and delivering media at scale.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This guide focuses on the Asset Management MCP server, which handles uploading, transforming, and organizing assets. This is the foundation for any automated media workflow.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before you start, make sure you have:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A free <a href=\"https:\/\/cloudinary.com\/users\/register\/free\" target=\"_blank\" rel=\"noreferrer noopener\">Cloudinary account<\/a>. You need your cloud name, API key, and API secret from the Cloudinary console (<a href=\"https:\/\/cloudinary.com\/documentation\/developer_onboarding_faq_find_credentials\" target=\"_blank\" rel=\"noreferrer noopener\">how<\/a><a href=\"https:\/\/cloudinary.com\/documentation\/developer_onboarding_faq_find_credentials\" target=\"_blank\" rel=\"noreferrer noopener\"> to find them<\/a>).<\/li>\n\n\n\n<li>Node.js version 18 or higher installed.<\/li>\n\n\n\n<li>Claude Desktop installed and running.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Open the Claude MCP Configuration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Open Claude Desktop, navigate to <strong>Settings<\/strong>, and click the <strong>Developers<\/strong> tab. You&#8217;ll see an option to add local MCP servers.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/f_auto,q_auto\/v1790116050\/blog-Upload_and_Manage_Media_Assets_at_Scale_With_Cloudinary_MCP-1.png\" alt=\"Claude Desktop settings page showing the Developers tab and local MCP configuration section.\"\/><figcaption class=\"wp-element-caption\">Claude Desktop settings page showing the Developers tab and local MCP configuration section.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Click <strong>Edit Config<\/strong>. This opens a folder containing <code>claude_desktop_config.json<\/code>. You&#8217;ll add your Cloudinary MCP configuration to this file.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Add the Cloudinary Configuration<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Open <code>claude_desktop_config.json<\/code> in your code editor and add the Asset Management MCP server:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JSON \/ JSON with Comments\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json shcb-wrap-lines\">{\n\n\u00a0 <span class=\"hljs-attr\">\"mcpServers\"<\/span>: {\n\n\u00a0 \u00a0 <span class=\"hljs-attr\">\"cloudinary-asset-mgmt\"<\/span>: {\n\n\u00a0 \u00a0 \u00a0 <span class=\"hljs-attr\">\"command\"<\/span>: <span class=\"hljs-string\">\"npx\"<\/span>,\n\n\u00a0 \u00a0 \u00a0 <span class=\"hljs-attr\">\"args\"<\/span>: &#91;\n\n\u00a0 \u00a0 \u00a0 \u00a0 <span class=\"hljs-string\">\"-y\"<\/span>,\n\n\u00a0 \u00a0 \u00a0 \u00a0 <span class=\"hljs-string\">\"--package\"<\/span>,\n\n\u00a0 \u00a0 \u00a0 \u00a0 <span class=\"hljs-string\">\"@cloudinary\/asset-management\"<\/span>,\n\n\u00a0 \u00a0 \u00a0 \u00a0 <span class=\"hljs-string\">\"--\"<\/span>,\n\n\u00a0 \u00a0 \u00a0 \u00a0 <span class=\"hljs-string\">\"mcp\"<\/span>,\n\n\u00a0 \u00a0 \u00a0 \u00a0 <span class=\"hljs-string\">\"start\"<\/span>\n\n\u00a0 \u00a0 \u00a0 ],\n\n\u00a0 \u00a0 \u00a0 <span class=\"hljs-attr\">\"env\"<\/span>: {\n\n\u00a0 \u00a0 \u00a0 \u00a0 <span class=\"hljs-attr\">\"CLOUDINARY_URL\"<\/span>: <span class=\"hljs-string\">\"api_key:api_secret@cloud_name\"<\/span>\n\n\u00a0 \u00a0 \u00a0 }\n\n\u00a0 \u00a0 }\n\n\u00a0 }\n\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON with Comments<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Replace <code>api_key<\/code>, <code>api_secret<\/code>, and <code>cloud_name<\/code> with your actual credentials from the Cloudinary console. Save the file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If your assets are stored locally (on your Desktop or Downloads folder), add the Filesystem MCP server alongside the Cloudinary one so Claude can access your local files:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JSON \/ JSON with Comments\" data-shcb-language-slug=\"json\"><span><code class=\"hljs language-json shcb-wrap-lines\">{\n\n\u00a0 <span class=\"hljs-attr\">\"mcpServers\"<\/span>: {\n\n\u00a0 \u00a0 <span class=\"hljs-attr\">\"cloudinary-asset-mgmt\"<\/span>: {\n\n\u00a0 \u00a0 \u00a0 <span class=\"hljs-attr\">\"...\"<\/span>: <span class=\"hljs-string\">\"...\"<\/span>\n\n\u00a0 \u00a0 },\n\n\u00a0 \u00a0 <span class=\"hljs-attr\">\"filesystem\"<\/span>: {\n\n\u00a0 \u00a0 \u00a0 <span class=\"hljs-attr\">\"command\"<\/span>: <span class=\"hljs-string\">\"npx\"<\/span>,\n\n\u00a0 \u00a0 \u00a0 <span class=\"hljs-attr\">\"args\"<\/span>: &#91;\n\n\u00a0 \u00a0 \u00a0 \u00a0 <span class=\"hljs-string\">\"-y\"<\/span>,\n\n\u00a0 \u00a0 \u00a0 \u00a0 <span class=\"hljs-string\">\"@modelcontextprotocol\/server-filesystem\"<\/span>,\n\n\u00a0 \u00a0 \u00a0 \u00a0 <span class=\"hljs-string\">\"\/Users\/YOUR_USERNAME\/Desktop\"<\/span>,\n\n\u00a0 \u00a0 \u00a0 \u00a0 <span class=\"hljs-string\">\"\/Users\/YOUR_USERNAME\/Downloads\"<\/span>\n\n\u00a0 \u00a0 \u00a0 ]\n\n\u00a0 \u00a0 }\n\n\u00a0 }\n\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JSON \/ JSON with Comments<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">json<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Replace <code>YOUR_USERNAME<\/code> with your actual OS username. Add or remove directories in the <code>argsarray<\/code> based on where your files are stored.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Restart and Verify the Connection<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Quit and reopen Claude Desktop so it loads the new configuration. Return to the <strong>Developers<\/strong> tab to confirm the MCP server is listed and running.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/f_auto,q_auto\/v1790116050\/blog-Upload_and_Manage_Media_Assets_at_Scale_With_Cloudinary_MCP-2.png\" alt=\"Claude Desktop Developers tab showing the Cloudinary Asset Management MCP server listed and connected\"\/><figcaption class=\"wp-element-caption\">Claude Desktop Developers tab showing the Cloudinary Asset Management MCP server listed and connected.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Test the connection by asking Claude:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">code<\/span>&gt;<\/span>Can you show me the available Cloudinary tools?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">code<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">If everything is configured correctly, Claude lists the available tools, including <code>upload-asset<\/code>, <code>transform-asset<\/code>, <code>search-assets<\/code>, and <code>get-asset-details<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1790116050\/blog-Upload_and_Manage_Media_Assets_at_Scale_With_Cloudinary_MCP-3.png\" alt=\"Claude listing the available Cloudinary MCP tools in response to the test prompt\"\/><figcaption class=\"wp-element-caption\">Claude listing the available Cloudinary MCP tools in response to the test prompt.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The connection is active. You can start managing assets.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Automating Media Workflows With Claude<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">With Claude connected to Cloudinary, you manage your media operations through conversation. You describe what you want done, and Claude calls the right tools.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Upload and Tag Images From URLs<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When your product images are hosted online (from a photographer&#8217;s shared link or a staging CDN), you can upload and tag them in a single prompt:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\">Upload these images to Cloudinary and tag them <span class=\"hljs-keyword\">with<\/span> <span class=\"hljs-string\">\"spring-2025, product, footwear\"<\/span>:\n\n- https:<span class=\"hljs-comment\">\/\/example.com\/assets\/shoe-001-front.jpg<\/span>\n\n- https:<span class=\"hljs-comment\">\/\/example.com\/assets\/shoe-001-side.jpg<\/span>\n\n- https:<span class=\"hljs-comment\">\/\/example.com\/assets\/shoe-002-front.jpg<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Claude calls the upload-asset tool for each file, applies your tags, and returns the results with file names, formats, file sizes, and Cloudinary URLs.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/f_auto,q_auto\/v1790116051\/blog-Upload_and_Manage_Media_Assets_at_Scale_With_Cloudinary_MCP-4.png\" alt=\"Claude uploading an image to Cloudinary with the Upload asset MCP tool.\"\/><figcaption class=\"wp-element-caption\">Claude uploading an image to Cloudinary with the Upload asset MCP tool..<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The uploaded images are now stored in your Cloudinary Media Library, tagged and ready to use.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/f_auto,q_auto\/v1790116051\/blog-Upload_and_Manage_Media_Assets_at_Scale_With_Cloudinary_MCP-5.png\" alt=\"Cloudinary Media Library showing the newly uploaded images with the spring-2025, product, and footwear tags applied\"\/><figcaption class=\"wp-element-caption\">Cloudinary Media Library showing the newly uploaded images with the spring-2025, product, and footwear tags applied.<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Upload Files From Your Local System<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If your assets are stored locally and you&#8217;ve added the Filesystem MCP server (from Step 2), Claude can browse your local directories and upload files to Cloudinary.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">First, you can ask Claude to organize your local files:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">code<\/span>&gt;<\/span>List all .jpg and .png files in my Desktop\/product-launch folder and move them into subfolders based on file type.<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">code<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Then upload the entire folder:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\">&lt;code&gt;Upload all files <span class=\"hljs-keyword\">from<\/span> my Desktop\/product-launch\/images folder to Cloudinary and tag them <span class=\"hljs-keyword\">with<\/span> <span class=\"hljs-string\">\"spring-2025, marketing, images\"<\/span>.&lt;<span class=\"hljs-regexp\">\/code&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Claude reads your local directory, passes each file through the upload-assettool, and applies your tags automatically.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/f_auto,q_auto\/v1790116052\/blog-Upload_and_Manage_Media_Assets_at_Scale_With_Cloudinary_MCP-6.png\" alt=\"Claude using Cloudinary MCP tools to read a local directory via the Filesystem MCP and upload each file to Cloudinary via the Asset Management MCP\"\/><figcaption class=\"wp-element-caption\">Claude using Cloudinary MCP tools to read a local directory via the Filesystem MCP and upload each file to Cloudinary via the Asset Management MCP.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This workflow is useful for large batches of media files from photo shoots, video productions, or audio recordings that originate on your machine.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Optimize and Transform Assets<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Once assets are uploaded, Claude can generate optimized versions for different platforms. Ask for a single transformation:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">code<\/span>&gt;<\/span>Create a web-optimized version of all assets tagged \"spring-2025\" with maximum width 1200px, automatic format and quality.<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">code<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Claude first calls search-assets to find everything tagged <code>spring-2025<\/code>, then calls transform-asset on each result with the parameters <code>c_limit,w_1200\/f_auto\/q_auto<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/f_auto,q_auto\/v1790116052\/blog-Upload_and_Manage_Media_Assets_at_Scale_With_Cloudinary_MCP-7.png\" alt=\"Claude searching for assets by tag, then applying transformations and returning the optimized URLs\"\/><figcaption class=\"wp-element-caption\">Claude searching for assets by tag, then applying transformations and returning the optimized URLs.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You can also generate multiple variants in one prompt:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs shcb-wrap-lines\">Generate three versions of each image:\n\n- A web version (max width 1200px)\n\n- A mobile version (max width 600px)\n\n- A thumbnail (300x300 crop, fill mode)<\/code><\/span><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Claude applies each transformation and organizes the results in your Cloudinary folders.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Analyze and Auto-Tag With AI<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If you have the <a target=\"_blank\" href=\"https:\/\/cloudinary.com\/documentation\/google_auto_tagging_addon\" rel=\"noreferrer noopener\">Google Auto Tagging add-on<\/a> enabled in your Cloudinary account, Claude can analyze assets and generate content-based tags automatically:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">code<\/span>&gt;<\/span>Analyze all assets tagged \"spring-2025\" and generate auto-tags based on image content.<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">code<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Claude calls the analysis tools to examine each file and enrich it with metadata like color, product type, or scene. These tags make your library searchable without manual categorization.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/f_auto,q_auto\/v1790116053\/blog-Upload_and_Manage_Media_Assets_at_Scale_With_Cloudinary_MCP-8.png\" alt=\"Claude analyzing assets and returning AI-generated tags for each image, showing tags like &quot;footwear&quot; and &quot;outdoor&quot;.\"\/><figcaption class=\"wp-element-caption\">Claude analyzing assets and returning AI-generated tags for each image, showing tags like &#8220;footwear&#8221; and &#8220;outdoor&#8221;.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You can also organize assets by naming patterns:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\">&lt;code&gt;Group all <span class=\"hljs-string\">\"shoe-001\"<\/span> images into a folder named <span class=\"hljs-string\">\"shoe-001\"<\/span> and link them <span class=\"hljs-keyword\">as<\/span> related assets.&lt;<span class=\"hljs-regexp\">\/code&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\">Generate Asset Reports<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When you need visibility into your library for audits, team handoffs, or tracking growth, ask Claude to generate a report:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">code<\/span>&gt;<\/span>Create a report of all assets tagged \"spring-2025\" showing file names, formats, and storage usage.<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">code<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p class=\"wp-block-paragraph\">Claude fetches the details from Cloudinary and returns a summary in chat. You can also ask for a .json or .csv export.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/f_auto,q_auto\/v1790116053\/blog-Upload_and_Manage_Media_Assets_at_Scale_With_Cloudinary_MCP-9.png\" alt=\"Claude generating an asset report showing file names, dimensions, and storage usage for all assets tagged spring-2025\"\/><figcaption class=\"wp-element-caption\">Claude generating an asset report showing file names, dimensions, and storage usage for all assets tagged spring-2025.<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Demo: Local Upload to Cloudinary<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s a walkthrough of the complete local file workflow. Files from a local &#8220;cloudinary&#8221; folder are uploaded to Cloudinary and organized into a &#8220;beach-2025&#8221; folder:<\/p>\n\n\n<cld-video-player\n      cloud-name='cloudinary-marketing'\n      public-id='blog-Upload_and_Manage_Media_Assets_at_Scale_With_Cloudinary_MCP-10'\n      js-config='{\"playbackRates\":[0.5,1,1.5,2]}'\n      style='max-width: ;'\n      class='c-video-player'\n      \n      core-version='2.12.3'\n      player-version='1.7.0'\n      >\n      <video\n        id='_video-player6ad2861c924b9'\n        data-cld-big-play-button='init'\n        data-cld-source-types='[\"hls\",\"webm\\\/vp9\",\"mp4\\\/h265\",\"mp4\"]'\n        controls\n        muted\n        class='cld-video-player cld-fluid wp-block-cloudinary-video-player  cld-video-player-skin-dark'\n      ><\/video>\n    <\/cld-video-player>\n\n\n<h2 class=\"wp-block-heading\">What You Built and Next Steps<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You connected Claude to Cloudinary through the Asset Management MCP server and used natural language to upload, tag, transform, analyze, and organize media assets. Every operation that would normally require manual dashboard work or custom scripts runs through a single conversational interface.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here are a few ways to extend your setup:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Add the Analysis MCP server.<\/strong> Connect the Cloudinary Analysis MCP server for AI-powered content recognition, moderation, and auto-tagging directly through Claude.<\/li>\n\n\n\n<li><strong>Add the Structured Metadata MCP server.<\/strong> Create custom metadata fields (product line, region, expiration date) and apply them to assets through Claude for more advanced organization.<\/li>\n\n\n\n<li><strong>Connect MediaFlows MCP.<\/strong> Build automated workflows that trigger on upload, metadata changes, or tag additions. See the <a href=\"https:\/\/cloudinary.com\/documentation\/mediaflows_mcp#banner\" target=\"_blank\" rel=\"noreferrer noopener\">MediaFlows MCP documentation<\/a> for setup details.<\/li>\n\n\n\n<li><strong>Combine with other MCP servers.<\/strong> If your team uses Google Drive, Dropbox, or Slack MCP servers, Claude can pull assets from those sources and upload them to Cloudinary in a single conversation.<\/li>\n\n\n\n<li><strong>Build batch processing scripts.<\/strong> Use Claude to generate Node.js scripts that batch-process hundreds of assets with consistent tags, transformations, and folder structures.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">For a deeper walkthrough of remote vs. local server setup and troubleshooting tips, read our blog post on <a href=\"https:\/\/cloudinary.com\/blog\/automate-media-workflows-claude-cloudinary-mcp\" target=\"_blank\" rel=\"noreferrer noopener\">automating media workflows with Claude and Cloudinary MCP<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sign up for a <a target=\"_blank\" href=\"https:\/\/cloudinary.com\/users\/register\/free\" rel=\"noreferrer noopener\">free Cloudinary account<\/a> to try it yourself.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"h-resources\"><strong>Resources:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/cloudinary.com\/documentation\/cloudinary_llm_mcp#banner\" target=\"_blank\" rel=\"noreferrer noopener\">Cloudinary MCP servers overview<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloudinary.com\/documentation\/asset_management#manage_assets_with_mcp_servers_in_cursor\" target=\"_blank\" rel=\"noreferrer noopener\">Asset Management MCP server<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloudinary.com\/documentation\/upload_images\" target=\"_blank\" rel=\"noreferrer noopener\">Cloudinary upload documentation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloudinary.com\/documentation\/image_transformations\" target=\"_blank\" rel=\"noreferrer noopener\">Image transformations documentation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/cloudinary.com\/documentation\/google_auto_tagging_addon\" target=\"_blank\" rel=\"noreferrer noopener\">Google Auto Tagging add-on<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/modelcontextprotocol\/servers\/tree\/main\/src\/filesystem\" target=\"_blank\" rel=\"noreferrer noopener\">Filesystem MCP server<\/a><\/li>\n<\/ul>\n\n\n\n<style>\n.faqs {\n    padding: 30px 60px;\n    margin-top: 40px;\n    background: var(--color-background-offset);\n    border-radius: 20px;\n}\n\n#frequently_asked_questions {\n    margin-bottom: 20px;\n}\n\n.question {\n    margin-bottom: 12px;\n    border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n}\n\n.question summary {\n    position: relative;\n    padding: 18px 40px 18px 0;\n    cursor: pointer;\n    font-weight: 700;\n    list-style: none;\n}\n\n.question summary::-webkit-details-marker {\n    display: none;\n}\n\n.question summary::after {\n    content: \"+\";\n    position: absolute;\n    top: 50%;\n    right: 0;\n    transform: translateY(-50%);\n    font-size: 24px;\n    font-weight: 400;\n    line-height: 1;\n}\n\n.question[open] summary::after {\n    content: \"\u2212\";\n}\n\n.answer {\n    padding: 0 40px 20px 0;\n}\n<\/style>\n\n<div class=\"faqs\">\n\n<h2 id=\"frequently_asked_questions\">Frequently Asked Questions<\/h2>\n\n<details class=\"question\">\n    <summary>What is Cloudinary MCP?<\/summary>\n    <div class=\"answer\">Cloudinary MCP is a set of Model Context Protocol servers that expose Cloudinary&#8217;s upload, transformation, analysis, and asset management capabilities as tools an AI assistant like Claude can call directly, instead of you writing API calls or scripts by hand. The full list of available servers and what each one covers is documented on the <a href=\"https:\/\/cloudinary.com\/documentation\/cloudinary_llm_mcp\">Cloudinary AI Agent Tools and MCP Servers<\/a> page.<\/div>\n<\/details>\n\n<details class=\"question\">\n    <summary>Which Cloudinary MCP server should I start with?<\/summary>\n    <div class=\"answer\">The Asset Management server is the foundation for most workflows, since it handles uploading, searching, and transforming media. From there you can add the Analysis server for AI-powered tagging and moderation, the Structured Metadata server for custom fields, or MediaFlows for automated triggers. The <a href=\"https:\/\/github.com\/cloudinary\/mcp-servers\">Cloudinary MCP servers GitHub repository<\/a> lists all five servers and their npm packages.<\/div>\n<\/details>\n\n<details class=\"question\">\n    <summary>Do I need to install anything locally to use Cloudinary MCP with Claude?<\/summary>\n    <div class=\"answer\">No, not necessarily. Cloudinary offers both remote and local MCP servers. Remote servers are hosted by Cloudinary and support OAuth authentication, so you can connect without running anything on your own machine, while local servers run via npx and require your API credentials in a config file. Setup instructions for both approaches are in the <a href=\"https:\/\/cloudinary.com\/documentation\/cloudinary_llm_mcp\">MCP Servers documentation<\/a>.<\/div>\n<\/details>\n\n<details class=\"question\">\n    <summary>Can Claude upload files from my computer, not just from URLs?<\/summary>\n    <div class=\"answer\">Yes, if you also connect the Filesystem MCP server alongside the Cloudinary Asset Management server. This lets Claude browse local directories, read files, and pass them to Cloudinary&#8217;s upload tool in the same conversation, the same pattern used in Cloudinary&#8217;s own <a href=\"https:\/\/cloudinary.com\/blog\/automate-media-workflows-claude-cloudinary-mcp\">guide to automating media workflows with Claude and Cloudinary MCP<\/a>.<\/div>\n<\/details>\n\n<details class=\"question\">\n    <summary>Is there an easier way to install all the Cloudinary MCP servers at once?<\/summary>\n    <div class=\"answer\">Yes. Rather than configuring each MCP server individually, Cloudinary offers a single marketplace plugin for Claude that installs all five servers, covering asset management, environment configuration, structured metadata, analysis, and MediaFlows, together. It&#8217;s available on the <a href=\"https:\/\/claude.com\/plugins\/cloudinary\">Cloudinary plugin page on Claude.com<\/a>.<\/div>\n<\/details>\n\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>If you manage media assets for a growing product, you know the challenge. Hundreds of new images, videos, and files arrive every week. Each one needs to be uploaded, organized, tagged, and optimized before it can go live. Doing this manually leads to duplicate assets, inconsistent tags, and files scattered across folders. Cloudinary MCP (Model [&hellip;]<\/p>\n","protected":false},"author":87,"featured_media":40527,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1],"tags":[424,25,134],"class_list":["post-40503","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-agentic","tag-asset-management","tag-guest-post"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.3 (Yoast SEO v28.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Cloudinary MCP: Manage Your Media Assets<\/title>\n<meta name=\"description\" content=\"Connect Cloudinary MCP to Claude to automate media asset uploads, tagging, transformations, and organization using natural language commands.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Upload and Manage Media Assets at Scale With Cloudinary MCP\" \/>\n<meta property=\"og:description\" content=\"Connect Cloudinary MCP to Claude to automate media asset uploads, tagging, transformations, and organization using natural language commands.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-06T14:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1789762868\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP.png?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1100\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"melindapham\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/upload-manage-media-assets-cloudinary-mcp#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/upload-manage-media-assets-cloudinary-mcp\"},\"author\":{\"name\":\"melindapham\",\"@id\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/#\\\/schema\\\/person\\\/0d5ad601e4c3b5be89245dfb14be42d9\"},\"headline\":\"Upload and Manage Media Assets at Scale With Cloudinary MCP\",\"datePublished\":\"2026-10-06T14:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/upload-manage-media-assets-cloudinary-mcp\"},\"wordCount\":1627,\"publisher\":{\"@id\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/upload-manage-media-assets-cloudinary-mcp#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/res.cloudinary.com\\\/cloudinary-marketing\\\/images\\\/f_auto,q_auto\\\/v1789762868\\\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP\\\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP.png?_i=AA\",\"keywords\":[\"Agentic\",\"Asset Management\",\"Guest Post\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\\\/\\\/cloudinary.com\\\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/upload-manage-media-assets-cloudinary-mcp\",\"url\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/upload-manage-media-assets-cloudinary-mcp\",\"name\":\"Cloudinary MCP: Manage Your Media Assets\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/upload-manage-media-assets-cloudinary-mcp#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/upload-manage-media-assets-cloudinary-mcp#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/res.cloudinary.com\\\/cloudinary-marketing\\\/images\\\/f_auto,q_auto\\\/v1789762868\\\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP\\\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP.png?_i=AA\",\"datePublished\":\"2026-10-06T14:00:00+00:00\",\"description\":\"Connect Cloudinary MCP to Claude to automate media asset uploads, tagging, transformations, and organization using natural language commands.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/upload-manage-media-assets-cloudinary-mcp#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cloudinary.com\\\/blog\\\/upload-manage-media-assets-cloudinary-mcp\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/upload-manage-media-assets-cloudinary-mcp#primaryimage\",\"url\":\"https:\\\/\\\/res.cloudinary.com\\\/cloudinary-marketing\\\/images\\\/f_auto,q_auto\\\/v1789762868\\\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP\\\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP.png?_i=AA\",\"contentUrl\":\"https:\\\/\\\/res.cloudinary.com\\\/cloudinary-marketing\\\/images\\\/f_auto,q_auto\\\/v1789762868\\\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP\\\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP.png?_i=AA\",\"width\":2000,\"height\":1100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/upload-manage-media-assets-cloudinary-mcp#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Upload and Manage Media Assets at Scale With Cloudinary MCP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/res.cloudinary.com\\\/cloudinary-marketing\\\/images\\\/f_auto,q_auto\\\/v1649718331\\\/Web_Assets\\\/blog\\\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\\\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\\\/\\\/res.cloudinary.com\\\/cloudinary-marketing\\\/images\\\/f_auto,q_auto\\\/v1649718331\\\/Web_Assets\\\/blog\\\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\\\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/cloudinary.com\\\/blog\\\/#\\\/schema\\\/person\\\/0d5ad601e4c3b5be89245dfb14be42d9\",\"name\":\"melindapham\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g\",\"caption\":\"melindapham\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Cloudinary MCP: Manage Your Media Assets","description":"Connect Cloudinary MCP to Claude to automate media asset uploads, tagging, transformations, and organization using natural language commands.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp","og_locale":"en_US","og_type":"article","og_title":"Upload and Manage Media Assets at Scale With Cloudinary MCP","og_description":"Connect Cloudinary MCP to Claude to automate media asset uploads, tagging, transformations, and organization using natural language commands.","og_url":"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp","og_site_name":"Cloudinary Blog","article_published_time":"2026-10-06T14:00:00+00:00","og_image":[{"width":2000,"height":1100,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1789762868\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP.png?_i=AA","type":"image\/png"}],"author":"melindapham","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp"},"author":{"name":"melindapham","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9"},"headline":"Upload and Manage Media Assets at Scale With Cloudinary MCP","datePublished":"2026-10-06T14:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp"},"wordCount":1627,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1789762868\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP.png?_i=AA","keywords":["Agentic","Asset Management","Guest Post"],"inLanguage":"en-US","copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp","url":"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp","name":"Cloudinary MCP: Manage Your Media Assets","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1789762868\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP.png?_i=AA","datePublished":"2026-10-06T14:00:00+00:00","description":"Connect Cloudinary MCP to Claude to automate media asset uploads, tagging, transformations, and organization using natural language commands.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1789762868\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1789762868\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP.png?_i=AA","width":2000,"height":1100},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Upload and Manage Media Assets at Scale With Cloudinary MCP"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9","name":"melindapham","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e6f989fa97fe94be61596259d8629c3df65aec4c7da5c0000f90d810f313d4f4?s=96&d=mm&r=g","caption":"melindapham"}}]}},"parsely":{"version":"1.1.0","canonical_url":"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp","meta":{"@context":"https:\/\/schema.org","@type":"NewsArticle","headline":"Upload and Manage Media Assets at Scale With Cloudinary MCP","url":"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp","mainEntityOfPage":{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1789762868\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP.png?_i=AA&w=150&h=150&crop=1","image":{"@type":"ImageObject","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1789762868\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP.png?_i=AA"},"articleSection":"Uncategorized","author":[{"@type":"Person","name":"melindapham"}],"creator":["melindapham"],"publisher":{"@type":"Organization","name":"Cloudinary Blog","logo":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA"},"keywords":["agentic","asset management","guest post"],"dateCreated":"2026-10-06T14:00:00Z","datePublished":"2026-10-06T14:00:00Z","dateModified":"2026-10-06T14:00:00Z"},"rendered":"<meta name=\"parsely-title\" content=\"Upload and Manage Media Assets at Scale With Cloudinary MCP\" \/>\n<meta name=\"parsely-link\" content=\"https:\/\/cloudinary.com\/blog\/upload-manage-media-assets-cloudinary-mcp\" \/>\n<meta name=\"parsely-type\" content=\"post\" \/>\n<meta name=\"parsely-image-url\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1789762868\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP.png?_i=AA&w=150&amp;h=150&amp;crop=1\" \/>\n<meta name=\"parsely-pub-date\" content=\"2026-10-06T14:00:00Z\" \/>\n<meta name=\"parsely-section\" content=\"Uncategorized\" \/>\n<meta name=\"parsely-tags\" content=\"agentic,asset management,guest post\" \/>\n<meta name=\"parsely-author\" content=\"melindapham\" \/>","tracker_url":"https:\/\/cdn.parsely.com\/keys\/cloudinary.com\/p.js"},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1789762868\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP\/Blog_Upload_and_Manage_Media_Assets_at_Scale_with_Cloudinary_MCP.png?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/40503","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/users\/87"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=40503"}],"version-history":[{"count":2,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/40503\/revisions"}],"predecessor-version":[{"id":40508,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/40503\/revisions\/40508"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/40527"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=40503"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=40503"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=40503"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}