{"id":39543,"date":"2025-12-09T07:00:00","date_gmt":"2025-12-09T15:00:00","guid":{"rendered":"https:\/\/cloudinary.com\/blog\/?p=39543"},"modified":"2025-12-10T09:21:45","modified_gmt":"2025-12-10T17:21:45","slug":"transformations-cloudinary-mcp-server","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server","title":{"rendered":"Deep Dive Into Transformations With the Cloudinary MCP Server"},"content":{"rendered":"\n<p>If you\u2019re a developer who lives inside Cursor and already has a Model Context Protocol (MCP) server wired up, you can offload a surprising amount of Cloudinary URL munging to your AI assistant safely and repeatedly.&nbsp;<\/p>\n\n\n\n<p>You can also watch the YouTube DevHints video of this blog post.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Deep Dive into Transformations with Cloudinary MCP Server - Dev Hint\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/EiK1NkUw6b4?start=122&#038;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">What You\u2019ll Build<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>A Cursor setup<\/strong> that gives your AI agent authoritative context for Cloudinary.<\/li>\n\n\n\n<li>An <strong>MCP toolchain<\/strong> that takes a local image and returns <strong>ready-to-paste Cloudinary URLs<\/strong>.<\/li>\n\n\n\n<li>A repeatable workflow to:\n<ul class=\"wp-block-list\">\n<li>Apply the <strong>sepia<\/strong> filter.<\/li>\n\n\n\n<li>Make a <strong>perfect circle<\/strong> thumbnail.<\/li>\n\n\n\n<li>And <strong>overlay centered text<\/strong> all by prompting.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Prerequisites<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cursor<\/strong> installed.<\/li>\n\n\n\n<li>An <strong>MCP server<\/strong> available in Cursor (the video uses one aliased as \u201c<a href=\"https:\/\/cloudinary.com\/documentation\/cloudinary_llm_mcp#cloudinary_in_context7\">context-7<\/a>\u201d).<br>If you haven\u2019t set up MCP on your machine yet, do that first.<\/li>\n\n\n\n<li>A <strong>Cloudinary account<\/strong> with credentials configured for the MCP server (so the tool can upload\/transform).<\/li>\n\n\n\n<li>A <strong>test image<\/strong> is placed in your project <strong>root folder<\/strong> (e.g., hero.jpg).<\/li>\n<\/ul>\n\n\n<div class='c-callout  c-callout--inline-title c-callout--note'><strong class='c-callout__title'>Note:<\/strong> <p>For detailed instructions on how to set up the Cloudinary MCP server, watch the <a href=\"https:\/\/www.youtube.com\/watch?v=BZOyaAc8Qw0&amp;t=19s\">Dev Hints video<\/a>, read the <a href=\"https:\/\/cloudinary.com\/documentation\/cloudinary_llm_mcp#mcp_servers\">docs<\/a>,\u00a0or read this <a href=\"https:\/\/cloudinary.com\/blog\/cloudinary-mcp-server-development\">blog post<\/a>.<\/p>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Step 1: Add\/Confirm Your MCP Server in Cursor<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open <strong>Cursor <\/strong>&gt;<strong> Settings <\/strong>&gt;<strong> MCP Servers<\/strong>.<\/li>\n\n\n\n<li><strong>Add MCP server<\/strong> (e.g., alias it context-7).<br>Exact command\/env varies by your server. The key is that Cursor can \u201cRun tool\u201d successfully.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Give the AI the Right Context (Docs &gt; Indexing)<\/h2>\n\n\n\n<p>You\u2019ll add two Doc sources so the AI generates the correct Cloudinary syntax:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Cloudinary Docs <\/strong><a href=\"https:\/\/cloudinary.com\/documentation\/cloudinary_llm_mcp#llm_friendly_docs\"><strong>llms.txt<\/strong><\/a><strong>:<\/strong><br><br>Think of this like robots.txt, but for LLMs, guidance for how AI should consume the docs.\n<ul class=\"wp-block-list\">\n<li>In <strong>Cursor <\/strong>&gt;<strong> Settings <\/strong>&gt;<strong> Indexing &amp; Docs <\/strong>&gt;<strong> Add Doc<\/strong>.<\/li>\n\n\n\n<li>Paste the <strong>Cloudinary Docs LLMs.txt<\/strong> URL.<\/li>\n\n\n\n<li>Name it something like <code>cloudinary-docs-llm<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Cloudinary transformation rules:<\/strong><br><br>A simple ruleset that nudges the AI toward correct transformation syntax.\n<ul class=\"wp-block-list\">\n<li><strong>Add Doc<\/strong> again.<\/li>\n\n\n\n<li>Paste the transformation rules URL.<\/li>\n\n\n\n<li>Name it cloudinary-transform-rules.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>With both added, your agent has the context to produce valid, minimal Cloudinary URLs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Prime the Agent With the Right Sources<\/h2>\n\n\n\n<p>In your Cursor chat, enable:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Your MCP server (e.g., context-7)<\/li>\n\n\n\n<li>The two Doc sources you just added:\n<ul class=\"wp-block-list\">\n<li><code>cloudinary-docs-llm<\/code><\/li>\n\n\n\n<li><code>cloudinary-transform-rules<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>Also, mention the <strong>image filename<\/strong> you put in your root so the agent knows what to transform.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Run the First Transformation (Sepia)<\/h2>\n\n\n\n<p>Prompt example:<\/p>\n\n\n\n<p>Apply a sepia effect to hero.jpg using the Cloudinary URL transformation syntax. Return a single URL I can paste in the browser.<\/p>\n\n\n\n<p>You should get a URL with an <code>e_sepia<\/code> step (effect = sepia). It will look like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\">https:\/\/res.cloudinary.com\/<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">cloud_name<\/span>&gt;<\/span>\/image\/upload\/e_sepia\/<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">public_id<\/span>&gt;<\/span>.jpg<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><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>Paste into your browser, and you\u2019ll see the sepia version.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Make the Image Circular<\/h2>\n\n\n\n<p>A circle requires a <strong>square<\/strong> base. If your original isn\u2019t square, first <strong>resize + crop<\/strong> to square, <strong>then<\/strong> round the corners.<\/p>\n\n\n\n<p>Prompt example:<\/p>\n\n\n\n<p>Make <code>hero.jpg<\/code> a perfect circle. If it isn\u2019t square, first make it 400\u00d7400, then apply the circle. Return one final URL.<\/p>\n\n\n\n<p>These are what you should expect.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Square crop (fill the box so no letterboxing): <code>c_fill,w_400,h_400<\/code><\/li>\n\n\n\n<li>Circle: <code>r_max<\/code><\/li>\n<\/ol>\n\n\n\n<p>And the combined URL shape:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml shcb-wrap-lines\">https:\/\/res.cloudinary.com\/<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">cloud_name<\/span>&gt;<\/span>\/image\/upload\/c_fill,w_400,h_400\/r_max\/<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">public_id<\/span>&gt;<\/span>.jpg<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><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>If you didn\u2019t square it first, you\u2019ll get a rounded rectangle. Ensuring <code>w<\/code> and <code>h<\/code> are equal before <code>r_max<\/code> is the key to a true circle.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: Add a Centered Text Overlay (Green \u2018Pato\u2019)<\/h2>\n\n\n\n<p>Text overlays are a separate \u201clayer\u201d applied over your base transformations.<\/p>\n\n\n\n<p>Prompt example:<\/p>\n\n\n\n<p>Overlay the centered word Pato in green on the circular image. Keep it readable. Return a single URL.<\/p>\n\n\n\n<p>Typical overlay step:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Text layer: <code>l_text:Arial_64:Pato<\/code><\/li>\n\n\n\n<li>Color: <code>co_rgb:green<\/code><\/li>\n\n\n\n<li>Centering: <code>g_center<\/code><\/li>\n\n\n\n<li>Apply the layer: <code>fl_layer_apply<\/code><\/li>\n<\/ul>\n\n\n\n<p>Full example (chained steps):<\/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\">https:\/\/res.cloudinary.com\/<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">cloud_name<\/span>&gt;<\/span>\/image\/upload\n\nc_fill,w_400,h_400\/r_max\/\n\nl_text:Arial_64:Pato,co_rgb:green,g_center\/fl_layer_apply\/\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">public_id<\/span>&gt;<\/span>.jpg<\/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--note'><strong class='c-callout__title'>Notes<\/strong> <ul>\n<li>URL\u2011encode your text if it includes spaces or punctuation (e.g., <code>Hello%20World<\/code>).<\/li>\n<li>You can tweak font family\/size (<code>Arial_64<\/code>) and add offsets (e.g., <code>y_30<\/code>) for fine positioning.<\/li>\n<\/ul>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">A Typical \u2018Session\u2019 You Can Replay in Cursor<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Context on<\/strong>\n<ul class=\"wp-block-list\">\n<li>Enable <code>context-7,<\/code> <code>cloudinary-docs-llm<\/code>, <code>cloudinary-transform-rules<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Sepia<\/strong>\n<ul class=\"wp-block-list\">\n<li>Prompt example: Add sepia to hero.jpg and return the URL.\n<ul class=\"wp-block-list\">\n<li><strong>Result:<\/strong> <code>...\/e_sepia\/...<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Circle<\/strong>\n<ul class=\"wp-block-list\">\n<li>Prompt example: Make it a perfect circle at 400\u00d7400 and return one URL.\n<ul class=\"wp-block-list\">\n<li><strong>Result:<\/strong> <code>...\/c_fill,w_400,h_400\/r_max\/...<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Text overlay<\/strong>\n<ul class=\"wp-block-list\">\n<li>Prompt example: Add centered green text Pato, readable size. One final URL.\n<ul class=\"wp-block-list\">\n<li><strong>Result:<\/strong> <code>...\/l_text:Arial_64:Pato,co_rgb:green,g_center\/fl_layer_apply\/...<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>Paste, verify, iterate.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting and Gotchas<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Rounded rectangle instead of circle.<\/strong>\n<ul class=\"wp-block-list\">\n<li>Ensure square geometry before <code>r_max<\/code>. For example: <code>c_fill,w_400,h_400\/r_max<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Text not showing \/ wrong color.<\/strong>\n<ul class=\"wp-block-list\">\n<li>Keep the overlay parameters together, then <code>fl_layer_apply<\/code>.<\/li>\n\n\n\n<li>Use <code>co_rgb:green<\/code> (or a hex, e.g., <code>co_rgb:00FF00<\/code>).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Weird positioning.<\/strong>\n<ul class=\"wp-block-list\">\n<li>Start with <code>g_center<\/code>, then add small offsets like <code>y_20<\/code> or <code>x_-10<\/code>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Spacing\/special characters in text.<\/strong>\n<ul class=\"wp-block-list\">\n<li>URL\u2011encode the overlay text (e.g., <code>l_text:Arial_64:Hello%20World<\/code>).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Long, brittle URLs.<\/strong>\n<ul class=\"wp-block-list\">\n<li>Prefer composing in <strong>steps<\/strong> (separate by <code>\/<\/code>) and keep each step focused (resize > shape > overlay).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>Cloudinary\u2019s MCP servers offer a comprehensive, developer-friendly way to automate and enhance your visual media handling workflows.<\/p>\n\n\n\n<p>Here are some ideas on what to do next:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Face-aware crops.<\/strong> Swap <code>g_center<\/code> for <code>g_auto<\/code> or <code>g_face<\/code> in your square step.<\/li>\n\n\n\n<li><strong>Add borders\/shadows.<\/strong> <code>bo_2px_solid_black<\/code> or subtle <code>e_shadow<\/code>.<\/li>\n\n\n\n<li><strong>Chain effects<\/strong>. <code>e_sepia\/e_contrast:20<\/code> (effects are composable).<\/li>\n<\/ul>\n\n\n\n<p>That\u2019s it. With an MCP server in Cursor and the right doc context, you can ask for high\u2011level image goals and get back rock\u2011solid Cloudinary transformation URLs.<\/p>\n\n\n\n<p>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>, or <a href=\"https:\/\/cloudinary.com\/users\/register_free\">sign up<\/a> for a free account to get started building today.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you\u2019re a developer who lives inside Cursor and already has a Model Context Protocol (MCP) server wired up, you can offload a surprising amount of Cloudinary URL munging to your AI assistant safely and repeatedly.&nbsp; You can also watch the YouTube DevHints video of this blog post. What You\u2019ll Build Prerequisites Step 1: Add\/Confirm [&hellip;]<\/p>\n","protected":false},"author":87,"featured_media":39581,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[424,165],"class_list":["post-39543","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-agentic","tag-image-transformation"],"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>Transformations: Using Cloudinary&#039;s MCP Server + Cursor<\/title>\n<meta name=\"description\" content=\"Learn how to use the Cloudinary MCP server inside Cursor to automate image transformations and generate clean, ready-to-use URLs with AI-assisted workflows.\" \/>\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\/transformations-cloudinary-mcp-server\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deep Dive Into Transformations With the Cloudinary MCP Server\" \/>\n<meta property=\"og:description\" content=\"Learn how to use the Cloudinary MCP server inside Cursor to automate image transformations and generate clean, ready-to-use URLs with AI-assisted workflows.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-09T15:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-10T17:21:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1764964594\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server.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\/transformations-cloudinary-mcp-server#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server\"},\"author\":{\"name\":\"melindapham\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9\"},\"headline\":\"Deep Dive Into Transformations With the Cloudinary MCP Server\",\"datePublished\":\"2025-12-09T15:00:00+00:00\",\"dateModified\":\"2025-12-10T17:21:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server\"},\"wordCount\":815,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1764964594\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server.jpg?_i=AA\",\"keywords\":[\"Agentic\",\"Image Transformation\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server\",\"url\":\"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server\",\"name\":\"Transformations: Using Cloudinary's MCP Server + Cursor\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1764964594\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server.jpg?_i=AA\",\"datePublished\":\"2025-12-09T15:00:00+00:00\",\"dateModified\":\"2025-12-10T17:21:45+00:00\",\"description\":\"Learn how to use the Cloudinary MCP server inside Cursor to automate image transformations and generate clean, ready-to-use URLs with AI-assisted workflows.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1764964594\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server.jpg?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1764964594\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server.jpg?_i=AA\",\"width\":2000,\"height\":1100},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deep Dive Into Transformations With the Cloudinary MCP Server\"}]},{\"@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":"Transformations: Using Cloudinary's MCP Server + Cursor","description":"Learn how to use the Cloudinary MCP server inside Cursor to automate image transformations and generate clean, ready-to-use URLs with AI-assisted workflows.","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\/transformations-cloudinary-mcp-server","og_locale":"en_US","og_type":"article","og_title":"Deep Dive Into Transformations With the Cloudinary MCP Server","og_description":"Learn how to use the Cloudinary MCP server inside Cursor to automate image transformations and generate clean, ready-to-use URLs with AI-assisted workflows.","og_url":"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server","og_site_name":"Cloudinary Blog","article_published_time":"2025-12-09T15:00:00+00:00","article_modified_time":"2025-12-10T17:21:45+00:00","og_image":[{"width":2000,"height":1100,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1764964594\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server.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\/transformations-cloudinary-mcp-server#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server"},"author":{"name":"melindapham","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/person\/0d5ad601e4c3b5be89245dfb14be42d9"},"headline":"Deep Dive Into Transformations With the Cloudinary MCP Server","datePublished":"2025-12-09T15:00:00+00:00","dateModified":"2025-12-10T17:21:45+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server"},"wordCount":815,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1764964594\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server.jpg?_i=AA","keywords":["Agentic","Image Transformation"],"inLanguage":"en-US","copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server","url":"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server","name":"Transformations: Using Cloudinary's MCP Server + Cursor","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1764964594\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server.jpg?_i=AA","datePublished":"2025-12-09T15:00:00+00:00","dateModified":"2025-12-10T17:21:45+00:00","description":"Learn how to use the Cloudinary MCP server inside Cursor to automate image transformations and generate clean, ready-to-use URLs with AI-assisted workflows.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1764964594\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server.jpg?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1764964594\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server.jpg?_i=AA","width":2000,"height":1100},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/transformations-cloudinary-mcp-server#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Deep Dive Into Transformations With the Cloudinary MCP Server"}]},{"@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\/v1764964594\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server\/Blog_Deep_Dive_into_Transformations_with_Cloudinary_MCP_Server.jpg?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/39543","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=39543"}],"version-history":[{"count":5,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/39543\/revisions"}],"predecessor-version":[{"id":39554,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/39543\/revisions\/39554"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/39581"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=39543"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=39543"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=39543"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}