---
slug: "cloudinary-mcp-server"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/yoavniran/cloudinary-mcp-server@main/README.md"
repo: "https://github.com/yoavniran/cloudinary-mcp-server"
source_file: "README.md"
branch: "main"
---
<img src="https://github.com/yoavniran/cloudinary-mcp-server/blob/main/cld-mcp-server.png?raw=true" width="120" height="120" align="center" />

# Cloudinary MCP Server

<a href="https://glama.ai/mcp/servers/@yoavniran/cloudinary-mcp-server">
  <img width="380" height="200" src="https://glama.ai/mcp/servers/@yoavniran/cloudinary-mcp-server/badge" alt="cloudinary-mcp-server MCP server" />
</a>

<p align="center">
    <a href="https://badge.fury.io/js/cloudinary-mcp-server">
        <img src="https://badge.fury.io/js/cloudinary-mcp-server.svg" alt="npm version" height="20">
    </a>
</p>

A Model Context Protocol server that exposes Cloudinary Upload & Admin API methods as tools by AI assistants. 
This integration allows AI systems to trigger and interact with your Cloudinary cloud.

## How It Works

The MCP server:

-   Makes calls on your behalf to the Cloudinary API
-   Enables uploading of assets to Cloudinary
-   Enables management of assets in your Cloudinary cloud

It relies on the Cloudinary [API](https://cloudinary.com/documentation/admin_api) to perform these actions. Not all methods and parameters are supported. 
More will be added over time. 

Open an [issue](https://github.com/yoavniran/cloudinary-mcp-server/issues) with a request for specific method if you need it.

## Benefits

-   Turn your Cloudinary cloud actions into callable tools for AI assistants
-   Turn your Cloudinary assets into data for AI assistants

## Usage with Claude Desktop

### Prerequisites

-   NodeJS
-   MCP Client (like Claude Desktop App)
-   Create & Copy Cloudinary API Key/Secret at: [API KEYS](https://console.cloudinary.com/settings/api-keys)

### Installation

To use this server with the Claude Desktop app, add the following configuration to the "mcpServers" section of your `claude_desktop_config.json`:

```json
{
    "mcpServers": {
        "cloudinary-mcp-server": {
            "command": "npx",
            "args": ["-y", "cloudinary-mcp-server"],
            "env": {
                "CLOUDINARY_CLOUD_NAME": "<cloud name>",
                "CLOUDINARY_API_KEY": "<api-key>",
                "CLOUDINARY_API_SECRET": "<api-secret>"
            }
        }
    }
}
```

-   `CLOUDINARY_CLOUD_NAME` - your cloud name
-   `CLOUDINARY_API_KEY` - The API Key for your cloud
-   `CLOUDINARY_API_SECRET` - The API Secret for your cloud


### Tools

The following tools are available:

1. **upload**
    - Description: Upload a file (asset) to Cloudinary
    - Parameters:
        - `source`: URL, file path, base64 content, or binary data to upload
        - `folder`: Optional folder path in Cloudinary
        - `publicId`: Optional public ID for the uploaded asset
        - `resourceType`: Type of resource to upload (image, video, raw, auto)
        - `tags`: Comma-separated list of tags to assign to the asset

2. **delete-asset**
    - Description: Delete a file (asset) from Cloudinary
    - Parameters:
        - `publicId`: The public ID of the asset to delete
        - `assetId`: The asset ID of the asset to delete

3. **get-asset**
    - Description: Get the details of a specific file (asset)
    - Parameters:
        - `assetId`: The Cloudinary asset ID
        - `publicId`: The public ID of the asset
        - `resourceType`: Type of asset (image, raw, video)
        - `type`: Delivery type (upload, private, authenticated, etc.)
        - `tags`: Whether to include the list of tag names
        - `context`: Whether to include contextual metadata
        - `metadata`: Whether to include structured metadata

4. **find-assets**
    - Description: Search for existing files (assets) in Cloudinary with a query expression
    - Parameters:
        - `expression`: Search expression (e.g. 'tags=cat' or 'public_id:folder/*')
        - `resourceType`: Resource type (image, video, raw)
        - `maxResults`: Maximum number of results (1-500)
        - `nextCursor`: Next cursor for pagination
        - `tags`: Include tags in the response
        - `context`: Include context in the response

5. **get-usage**
    - Description: Get a report on the status of your product environment usage, including storage, credits, bandwidth, requests, number of resources, and add-on usage
    - Parameters:
        - `date`: Optional. The date for the usage report in the format: yyyy-mm-dd. Must be within the last 3 months. Default: the current date