cloudinary mcp server
This server provides tools for uploading images and videos directly to Cloudinary using Claude/Cline, facilitating resource management with customizable options like resource type and public ID.
This server provides tools for uploading images and videos directly to Cloudinary using Claude/Cline, facilitating resource management with customizable options like resource type and public ID.
This MCP server provides tools for uploading images and videos to Cloudinary through Claude Desktop and compatible MCP clients.
node --version
npm --version
Navigate to the Claude configuration directory:
Windows: C:UsersNAMEAppDataRoamingClaude
~/Library/Application Support/Claude/
You can also find these directories inside the Claude Desktop app: Claude Desktop > Settings > Developer > Edit Config
{
"mcpServers": {
"cloudinary": {
"command": "npx",
"args": ["@felores/cloudinary-mcp-server@latest"],
"env": {
"CLOUDINARY_CLOUD_NAME": "your_cloud_name",
"CLOUDINARY_API_KEY": "your_api_key",
"CLOUDINARY_API_SECRET": "your_api_secret"
}
}
}
}
If you want to modify the server or contribute to development:
Clone the repository:
git clone https://github.com/felores/cloudinary-mcp-server.git
cd cloudinary-mcp-server
Install dependencies and build:
npm install
npm run build
API Secret
Add the server configuration to your Claude/Cline MCP settings file:
{
"mcpServers": {
"cloudinary": {
"command": "node",
"args": ["c:/path/to/cloudinary-mcp-server/dist/index.js"],
"env": {
"CLOUDINARY_CLOUD_NAME": "your_cloud_name",
"CLOUDINARY_API_KEY": "your_api_key",
"CLOUDINARY_API_SECRET": "your_api_secret"
}
}
}
}
For Claude desktop app, edit the configuration file at the appropriate location for your OS.
npm install
npm run build
Upload images and videos to Cloudinary.
Parameters:
- file
(required): Path to file, URL, or base64 data URI to upload
- resource_type
(optional): Type of resource ('image', 'video', or 'raw')
- public_id
(optional): Custom public ID for the uploaded asset
- overwrite
(optional): Whether to overwrite existing assets with the same public ID
- tags
(optional): Array of tags to assign to the uploaded asset
Example usage in Claude/Cline: ```typescript use_mcp_tool({ server_name: "cloudinary", tool_name: "upload", arguments: { file: "path/to/image.jpg", resource_type: "image", public_id: "my-custom-id" } });
[
{
"description": "Upload media (images/videos) to Cloudinary. For large files, the upload is processed in chunks and returns a streaming response. The uploaded asset will be available at:n- HTTP: http://res.cloudinary.com/{cloud_name}/{resource_type}/upload/v1/{public_id}.{format}n- HTTPS: https://res.cloudinary.com/{cloud_name}/{resource_type}/upload/v1/{public_id}.{format}nwhere cloud_name='dadljfaoz', resource_type is 'image' or 'video', and format is determined by the file extension.",
"inputSchema": {
"properties": {
"file": {
"description": "Path to file, URL, or base64 data URI to upload",
"type": "string"
},
"overwrite": {
"description": "Whether to overwrite existing assets with the same public ID",
"type": "boolean"
},
"public_id": {
"description": "Public ID to assign to the uploaded asset. This will be used in the final URL. If not provided, Cloudinary will generate one.",
"type": "string"
},
"resource_type": {
"description": "Type of resource to upload. For videos, the upload will return a streaming response as it processes in chunks.",
"enum": [
"image",
"video",
"raw"
],
"type": "string"
},
"tags": {
"description": "Tags to assign to the uploaded asset",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"file"
],
"type": "object"
},
"name": "upload"
}
]