{"id":38474,"date":"2025-09-09T07:00:00","date_gmt":"2025-09-09T14:00:00","guid":{"rendered":"https:\/\/cloudinary.com\/blog\/?p=38474"},"modified":"2025-09-05T13:00:04","modified_gmt":"2025-09-05T20:00:04","slug":"cloudinary-mcp-server-development","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development","title":{"rendered":"Introduction to the Cloudinary MCP Server Development"},"content":{"rendered":"\n<p>Cloudinary offers powerful tools for developers looking to integrate sophisticated media operations into their applications. One key aspect of this ecosystem is the Model Context Protocol (MCP) Server, designed specifically to empower developers and AI agents with programmatic access to Cloudinary\u2019s robust functionalities.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Part 1: What is the Cloudinary MCP Server?<\/h2>\n\n\n\n<p>The MCP server provides endpoints, both remote and local, that allow AI agents and developers to use Cloudinary\u2019s rich media handling capabilities directly within their product environments. This means developers can automate and simplify the integration of Cloudinary operations through generated code, significantly accelerating development workflows.<\/p>\n\n\n\n<p>Here\u2019s an overview of the available MCP servers and their core capabilities:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Asset Management<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Upload and organize.<\/strong> Easily upload and manage images, videos, and raw files.<\/li>\n\n\n\n<li><strong>Advanced search and filtering.<\/strong> Quickly locate specific assets using advanced search queries and filters.<\/li>\n\n\n\n<li><strong>Efficient organization.<\/strong> Rename, delete, organize assets using folders, and apply tags for streamlined asset management.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">2. Environment Config<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Centralized configuration.<\/strong> Manage upload presets, mappings, named transformations, webhook notifications, and streaming profiles.<\/li>\n\n\n\n<li><strong>Streamlined workflows.<\/strong> Simplify environment setup and maintenance, ensuring consistency across product deployments.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3. Structured Metadata<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Dynamic metadata management.<\/strong> Define and control structured metadata fields, supported values, and conditional rules.<\/li>\n\n\n\n<li><strong>Enhanced asset descriptions.<\/strong> Enable richer asset descriptions, facilitating precise asset management and retrieval.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">4. Analysis<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>AI-powered insights.<\/strong> Leverage AI-driven content analysis for automatic asset tagging.<\/li>\n\n\n\n<li><strong>Robust moderation tools.<\/strong> Implement content moderation, safety checks, and advanced object detection seamlessly within your apps.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">5. MediaFlows<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Automation simplified.<\/strong> Create and manage automated media processing workflows effortlessly.<\/li>\n\n\n\n<li><strong>Dynamic media processing.<\/strong> Automate content transformations and delivery based on flexible workflows defined in MediaFlows.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Part 2: Local Installation<\/h2>\n\n\n\n<p>We\u2019ll focus on installing the MCP server locally in our AI Code editor, Cursor. If you don\u2019t have Cursor yet, you can download it using <a href=\"https:\/\/cursor.com\/\">this link<\/a>.<\/p>\n\n\n\n<p>The first thing you need to do is open <strong>Cursor<\/strong> > <strong>Settings<\/strong> > <strong>Cursor Settings<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1757101365\/blog-Introduction_to_the_Cloudinary_MCP_Server_Development-1.png\" alt=\"Cursor Settings\"\/><\/figure>\n\n\n\n<p>Then, on the left navigation bar, click MCP, then the blue button <strong>+Add New Global MCP Server<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1757101365\/blog-Introduction_to_the_Cloudinary_MCP_Server_Development-2.png\" alt=\"+Add New Global MCP Server button is on the top-right corner\"\/><\/figure>\n\n\n\n<p>Copy and paste the following JSON object, which contains information from all the Cloudinary MCP servers we\u2019ll add to Cursor.<\/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\u00a0\u00a0<span class=\"hljs-attr\">\"mcpServers\"<\/span>: {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"cloudinary-asset-mgmt\"<\/span>: {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"command\"<\/span>: <span class=\"hljs-string\">\"npx\"<\/span>,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"args\"<\/span>: &#91;<span class=\"hljs-string\">\"-y\"<\/span>, <span class=\"hljs-string\">\"--package\"<\/span>, <span class=\"hljs-string\">\"@cloudinary\/asset-management\"<\/span>, <span class=\"hljs-string\">\"--\"<\/span>, <span class=\"hljs-string\">\"mcp\"<\/span>, <span class=\"hljs-string\">\"start\"<\/span>],\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"env\"<\/span>: {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"CLOUDINARY_CLOUD_NAME\"<\/span>: <span class=\"hljs-string\">\"YOUR-CLOUDE-NAME\"<\/span>,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"CLOUDINARY_API_KEY\"<\/span>: <span class=\"hljs-string\">\"YOUR-API-KEY\"<\/span>,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"CLOUDINARY_API_SECRET\"<\/span>: <span class=\"hljs-string\">\"YOUR-CLOUDINARY-SECRET\"<\/span>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"cloudinary-env-config\"<\/span>: {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"command\"<\/span>: <span class=\"hljs-string\">\"npx\"<\/span>,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"args\"<\/span>: &#91;<span class=\"hljs-string\">\"-y\"<\/span>, <span class=\"hljs-string\">\"--package\"<\/span>, <span class=\"hljs-string\">\"@cloudinary\/environment-config\"<\/span>, <span class=\"hljs-string\">\"--\"<\/span>, <span class=\"hljs-string\">\"mcp\"<\/span>, <span class=\"hljs-string\">\"start\"<\/span>],\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"env\"<\/span>: {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"CLOUDINARY_CLOUD_NAME\"<\/span>: <span class=\"hljs-string\">\"YOUR-CLOUDE-NAME\"<\/span>,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"CLOUDINARY_API_KEY\"<\/span>: <span class=\"hljs-string\">\"YOUR-API-KEY\"<\/span>,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"CLOUDINARY_API_SECRET\"<\/span>: <span class=\"hljs-string\">\"YOUR-CLOUDINARY-SECRET\"<\/span>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"cloudinary-smd\"<\/span>: {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"command\"<\/span>: <span class=\"hljs-string\">\"npx\"<\/span>,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"args\"<\/span>: &#91;<span class=\"hljs-string\">\"-y\"<\/span>, <span class=\"hljs-string\">\"--package\"<\/span>, <span class=\"hljs-string\">\"@cloudinary\/structured-metadata\"<\/span>, <span class=\"hljs-string\">\"--\"<\/span>, <span class=\"hljs-string\">\"mcp\"<\/span>, <span class=\"hljs-string\">\"start\"<\/span>],\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"env\"<\/span>: {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"CLOUDINARY_CLOUD_NAME\"<\/span>: <span class=\"hljs-string\">\"YOUR-CLOUDE-NAME\"<\/span>,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"CLOUDINARY_API_KEY\"<\/span>: <span class=\"hljs-string\">\"YOUR-API-KEY\"<\/span>,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"CLOUDINARY_API_SECRET\"<\/span>: <span class=\"hljs-string\">\"YOUR-CLOUDINARY-SECRET\"<\/span>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0},\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"cloudinary-analysis\"<\/span>: {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"command\"<\/span>: <span class=\"hljs-string\">\"npx\"<\/span>,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"args\"<\/span>: &#91;<span class=\"hljs-string\">\"-y\"<\/span>, <span class=\"hljs-string\">\"--package\"<\/span>, <span class=\"hljs-string\">\"@cloudinary\/analysis\"<\/span>, <span class=\"hljs-string\">\"--\"<\/span>, <span class=\"hljs-string\">\"mcp\"<\/span>, <span class=\"hljs-string\">\"start\"<\/span>],\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"env\"<\/span>: {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"CLOUDINARY_CLOUD_NAME\"<\/span>: <span class=\"hljs-string\">\"YOUR-CLOUDE-NAME\"<\/span>,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"CLOUDINARY_API_KEY\"<\/span>: <span class=\"hljs-string\">\"YOUR-API-KEY\"<\/span>,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span class=\"hljs-attr\">\"CLOUDINARY_API_SECRET\"<\/span>: <span class=\"hljs-string\">\"YOUR-CLOUDINARY-SECRET\"<\/span>\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\n\u00a0\u00a0\u00a0}\n\n\u00a0}<\/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>Then, save the MCP configuration file.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Set Up Your Cloudinary Credentials&nbsp;<\/h3>\n\n\n\n<p>Retrieve your Cloudinary cloud name, API key, and secret to make sure your MCP server configurations are connected to your Cloudinary application.<\/p>\n\n\n\n<p>To begin, log in to your <a href=\"https:\/\/cloudinary.com\/\">Cloudinary account or create a free account<\/a>. If prompted with the question, \u201cWhat\u2019s your main interest?\u201d, select <strong>Coding with APIs and SDKs<\/strong> or <strong>Skip<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1757101366\/blog-Introduction_to_the_Cloudinary_MCP_Server_Development-3.png\" alt=\"Cloudinary account message asking, &quot;What's your main interest?&quot; upon setup. Options are Coding with APIs and SDKs and Interactive Digital Asset Management.\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Cloudinary Cloud<\/h3>\n\n\n\n<p>In your account, select <strong>Settings <\/strong>&gt;<strong> Product Environments<\/strong>. Here, you\u2019ll see the cloud that you\u2019ve created. Let\u2019s click the three-dot menu to edit your Cloudinary cloud name.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1757101365\/blog-Introduction_to_the_Cloudinary_MCP_Server_Development-4.png\" alt=\"Product Environments with Active toggled on.\"\/><\/figure>\n\n\n\n<p>Edit the product environment and name your cloud, then click <strong>Save Changes<\/strong>.<\/p>\n\n\n\n<p>It\u2019s essential to maintain the same cloud name across different tools for consistency.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1757101366\/blog-Introduction_to_the_Cloudinary_MCP_Server_Development-5.png\" alt=\"\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Get Your Cloudinary API Keys<\/h3>\n\n\n\n<p>In your account, select <strong>Settings <\/strong>&gt;<strong> Product Environments Setting<\/strong> &gt;<strong> API Keys<\/strong>. Here, you can view the information that you need to use to populate the MCP Cloudinary JSON object with your credentials.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/cloudinary-marketing-res.cloudinary.com\/image\/upload\/v1757101371\/blog-Introduction_to_the_Cloudinary_MCP_Server_Development-6.png\" alt=\"Cloudinary API Keys\"\/><\/figure>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript shcb-wrap-lines\"><span class=\"hljs-string\">\"CLOUDINARY_CLOUD_NAME\"<\/span>: <span class=\"hljs-string\">\"YOUR-CLOUDE-NAME\"<\/span>,\n\n<span class=\"hljs-string\">\"CLOUDINARY_API_KEY\"<\/span>: <span class=\"hljs-string\">\"YOUR-API-KEY\"<\/span>,\n\n<span class=\"hljs-string\">\"CLOUDINARY_API_SECRET\"<\/span>: <span class=\"hljs-string\">\"YOUR-CLOUDINARY-SECRET\"<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><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<h2 class=\"wp-block-heading\">Part 3: Working With the Cloudinary MCP Server<\/h2>\n\n\n\n<p>Now that we\u2019ve configured our Cloudinary MCP server correctly into Cursor, it\u2019s time to test it. We&#8217;ll show you how to run basic instructions to your AI agent, triggering the use of the MCP server, which will help you develop your applications using Cloudinary.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Upload Image to Cloudinary Using the MCP Server<\/h3>\n\n\n\n<p>In Cursor, create a new folder for the new project we\u2019ll work on. Inside this folder, add any image you want to work with for this tutorial. Then on the right-hand side, you\u2019ll see a text box for you to tell our AI agent what to do.<\/p>\n\n\n\n<p>In my case, as you can see in the image, I created a folder called <code>TEST-MCP<\/code>. This is where I added my image called <code>test_image.jpg<\/code><em>.<\/em>\u00a0<\/p>\n\n\n\n<p>Now we\u2019ll enter the following prompt:&nbsp;<\/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\">em<\/span>&gt;<\/span>Upload the image file:\/\/\/Users\/devpato\/Desktop\/test-mcp\/test_image.jpg to my Cloudinary account. Place it under an \u201cuploads\u201d folder.<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">em<\/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<div class='c-callout  c-callout--inline-title c-callout--note'><strong class='c-callout__title'>Note:<\/strong> <p>Make sure to replace the path with the local path of your image on your computer.<\/p>\n<\/div>\n\n\n<p>What this prompt will do is to find the image you have specified in the local path and upload it to a folder called \u201cuploads.\u201d If the folder doesn\u2019t exist, it will create one. Finally, the MCP server should give you a secure URL from where your image is located.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Image Transformations With the MCP Server<\/h3>\n\n\n\n<p>The next step is to tell our AI agent the following prompt to start with a basic image transformation using Cloudinary:<em>&nbsp;<\/em><\/p>\n\n\n\n<p><em>Now<\/em><em> <\/em><em>use<\/em><em> <\/em><em>the<\/em><em> <\/em><em>Cloudinary<\/em><em> <\/em><em>MCP<\/em><em> <\/em><em>server<\/em><em> <\/em><em>to<\/em><em> <\/em><em>make<\/em><em> <\/em><em>this<\/em><em> <\/em><em>exciting<\/em><em> <\/em><em>image<\/em><em> <\/em><em>in<\/em><em> <\/em><em>my<\/em><em> <\/em><em>Cloudinary<\/em><em> <\/em><em>account<\/em><em> <\/em><em>a<\/em><em> <\/em><em>300&#215;300<\/em><em> <\/em><em>https:\/\/res.cloudinary.com\/mcp-server-test\/image\/upload\/v1752681002\/uploads\/szpshud6ttme2ojvriat.jpg<\/em><em>&nbsp;<\/em><\/p>\n\n\n<div class='c-callout  c-callout--inline-title c-callout--note'><strong class='c-callout__title'>Note:<\/strong> <p>Make sure to pass in the prompt the secure URL provided in the previous prompt.<\/p>\n<\/div>\n\n\n<p>You\u2019ve now learned how to start working with the Cloudinary MCP Server. Take a look at our documentation to start doing more transformations to your assets.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>Cloudinary&#8217;s Model Context Protocol (MCP) servers offer a comprehensive, developer-friendly way to automate and enhance your visual media handling workflows. To stay updated with the latest product features, follow <a href=\"https:\/\/twitter.com\/cloudinary\">Cloudinary<\/a> on Twitter and explore other <a href=\"https:\/\/github.com\/cloudinary-community\">sample apps<\/a>.<\/p>\n\n\n\n<p>Building an app with Cloudinary and need inspiration? Visit your <a href=\"https:\/\/app-gallery.cloudinary.com\/\">App Gallery<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cloudinary offers powerful tools for developers looking to integrate sophisticated media operations into their applications. One key aspect of this ecosystem is the Model Context Protocol (MCP) Server, designed specifically to empower developers and AI agents with programmatic access to Cloudinary\u2019s robust functionalities. Part 1: What is the Cloudinary MCP Server? The MCP server provides [&hellip;]<\/p>\n","protected":false},"author":87,"featured_media":38481,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[424],"class_list":["post-38474","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-agentic"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Introduction to the Cloudinary MCP Server Development<\/title>\n<meta name=\"description\" content=\"Discover Cloudinary&#039;s Model Context Protocol (MCP) Server, a tool for programmatic media management. Learn how to install it, use it with AI agents, and automate image transformations.\" \/>\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\/cloudinary-mcp-server-development\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introduction to the Cloudinary MCP Server Development\" \/>\n<meta property=\"og:description\" content=\"Discover Cloudinary&#039;s Model Context Protocol (MCP) Server, a tool for programmatic media management. Learn how to install it, use it with AI agents, and automate image transformations.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-09T14:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1757024453\/Blog_Introduction_to_Cloudinary_MCP_Server_development\/Blog_Introduction_to_Cloudinary_MCP_Server_development.jpg?_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\/jpeg\" \/>\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\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development\"},\"author\":{\"name\":\"melindapham\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\"},\"headline\":\"Introduction to the Cloudinary MCP Server Development\",\"datePublished\":\"2025-09-09T14:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development\"},\"wordCount\":844,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1757024453\/Blog_Introduction_to_Cloudinary_MCP_Server_development\/Blog_Introduction_to_Cloudinary_MCP_Server_development.jpg?_i=AA\",\"keywords\":[\"Agentic\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development\",\"url\":\"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development\",\"name\":\"Introduction to the Cloudinary MCP Server Development\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1757024453\/Blog_Introduction_to_Cloudinary_MCP_Server_development\/Blog_Introduction_to_Cloudinary_MCP_Server_development.jpg?_i=AA\",\"datePublished\":\"2025-09-09T14:00:00+00:00\",\"description\":\"Discover Cloudinary's Model Context Protocol (MCP) Server, a tool for programmatic media management. Learn how to install it, use it with AI agents, and automate image transformations.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1757024453\/Blog_Introduction_to_Cloudinary_MCP_Server_development\/Blog_Introduction_to_Cloudinary_MCP_Server_development.jpg?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1757024453\/Blog_Introduction_to_Cloudinary_MCP_Server_development\/Blog_Introduction_to_Cloudinary_MCP_Server_development.jpg?_i=AA\",\"width\":2000,\"height\":1100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introduction to the Cloudinary MCP Server Development\"}]},{\"@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:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/\",\"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":"Introduction to the Cloudinary MCP Server Development","description":"Discover Cloudinary's Model Context Protocol (MCP) Server, a tool for programmatic media management. Learn how to install it, use it with AI agents, and automate image transformations.","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\/cloudinary-mcp-server-development","og_locale":"en_US","og_type":"article","og_title":"Introduction to the Cloudinary MCP Server Development","og_description":"Discover Cloudinary's Model Context Protocol (MCP) Server, a tool for programmatic media management. Learn how to install it, use it with AI agents, and automate image transformations.","og_url":"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development","og_site_name":"Cloudinary Blog","article_published_time":"2025-09-09T14:00:00+00:00","og_image":[{"width":2000,"height":1100,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1757024453\/Blog_Introduction_to_Cloudinary_MCP_Server_development\/Blog_Introduction_to_Cloudinary_MCP_Server_development.jpg?_i=AA","type":"image\/jpeg"}],"author":"melindapham","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development"},"author":{"name":"melindapham","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9"},"headline":"Introduction to the Cloudinary MCP Server Development","datePublished":"2025-09-09T14:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development"},"wordCount":844,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1757024453\/Blog_Introduction_to_Cloudinary_MCP_Server_development\/Blog_Introduction_to_Cloudinary_MCP_Server_development.jpg?_i=AA","keywords":["Agentic"],"inLanguage":"en-US","copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development","url":"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development","name":"Introduction to the Cloudinary MCP Server Development","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1757024453\/Blog_Introduction_to_Cloudinary_MCP_Server_development\/Blog_Introduction_to_Cloudinary_MCP_Server_development.jpg?_i=AA","datePublished":"2025-09-09T14:00:00+00:00","description":"Discover Cloudinary's Model Context Protocol (MCP) Server, a tool for programmatic media management. Learn how to install it, use it with AI agents, and automate image transformations.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1757024453\/Blog_Introduction_to_Cloudinary_MCP_Server_development\/Blog_Introduction_to_Cloudinary_MCP_Server_development.jpg?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1757024453\/Blog_Introduction_to_Cloudinary_MCP_Server_development\/Blog_Introduction_to_Cloudinary_MCP_Server_development.jpg?_i=AA","width":2000,"height":1100},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Introduction to the Cloudinary MCP Server Development"}]},{"@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:\/\/cloudinary.com\/blog\/#\/schema\/person\/image\/","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"}}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1757024453\/Blog_Introduction_to_Cloudinary_MCP_Server_development\/Blog_Introduction_to_Cloudinary_MCP_Server_development.jpg?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/38474","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=38474"}],"version-history":[{"count":4,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/38474\/revisions"}],"predecessor-version":[{"id":38484,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/38474\/revisions\/38484"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/38481"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=38474"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=38474"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=38474"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}