Cloudinary Analysis MCP server
Commit Nov 12, 2026Perform AI-powered image analysis including moderation, tagging, captioning, and quality assessment using the Cloudinary Analyze API.
Also known as cloudinary/analysis-mcp, analysis-mcp, @cloudinary/analysis-mcp
- Stars
- 0
- Tools
- —
- Downloads, 30 days
- 317
- Latest version
- 0.5.3
- Last commit
- Nov 12, 2026
- License
- MIT
What is Cloudinary Analysis MCP?
Cloudinary Analysis is an MCP server. Perform AI-powered image analysis including moderation, tagging, captioning, and quality assessment using the Cloudinary Analyze API.
Summary generated from the project's README
About Cloudinary Analysis MCP server
Analyzing external assets for visual details is what developers do with the Cloudinary Analysis MCP server. This tool connects AI clients to the Cloudinary Analyze API to perform various types of automated inspections on images. It supports a wide range of specialized functions including AI vision tagging, moderation, captioning, and human anatomy detection. It also provides capabilities for checking image quality, detecting watermarks, and using specific models like Cld Fashion or Shop Classifier.
To use this server, you must provide a Cloudinary cloud name and authenticate using either Basic Authentication with an API Key and API Secret or via OAuth2. The server can be integrated into environments like Claude Desktop, Cursor, VS Code, and Windsurf. It is designed to work with Node.js 20.19.0 or later. Because the Analyze API is in public beta, users must have an active subscription to the relevant Cloudinary add-ons to access specific analysis options.
What you can do with it
- 1Automated content moderationCheck images for inappropriate content using the built-in moderation tools.
- 2Generate descriptive image captionsCreate text descriptions for images to improve accessibility or searchability.
- 3Assess visual asset qualityEvaluate whether uploaded images meet specific quality standards.
- 4Identify fashion and retail itemsUse specialized models to classify clothing or shopping-related content.
Written from the project's README. Every use case is checked against a quote from it.
How to install Cloudinary Analysis MCP
Formats verified 10 Nov 2026Add to CursorAdd to GooseInstall Cloudinary Analysis MCP in Claude Code
$ claude mcp add --env 'CLOUDINARY_API_SECRET=<YOUR_CLOUDINARY_API_SECRET>' --env 'CLOUDINARY_API_KEY=<CLOUDINARY_API_KEY>' --env 'CLOUDINARY_CLOUD_NAME=<CLOUDINARY_CLOUD_NAME>' analysis-mcp -- npx -y @cloudinary/analysis-mcpInstall Cloudinary Analysis MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"analysis-mcp": {
"command": "npx",
"args": [
"-y",
"@cloudinary/analysis-mcp"
],
"env": {
"CLOUDINARY_API_SECRET": "<YOUR_CLOUDINARY_API_SECRET>",
"CLOUDINARY_API_KEY": "<CLOUDINARY_API_KEY>",
"CLOUDINARY_CLOUD_NAME": "<CLOUDINARY_CLOUD_NAME>"
}
}
}
}Install Cloudinary Analysis MCP in VS Code
.vscode/mcp.json
{
"servers": {
"analysis-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cloudinary/analysis-mcp"
],
"env": {
"CLOUDINARY_API_SECRET": "<YOUR_CLOUDINARY_API_SECRET>",
"CLOUDINARY_API_KEY": "<CLOUDINARY_API_KEY>",
"CLOUDINARY_CLOUD_NAME": "<CLOUDINARY_CLOUD_NAME>"
}
}
}
}Install Cloudinary Analysis MCP in VS Code CLI
$ code --add-mcp '{"name":"analysis-mcp","type":"stdio","command":"npx","args":["-y","@cloudinary/analysis-mcp"],"env":{"CLOUDINARY_API_SECRET":"<YOUR_CLOUDINARY_API_SECRET>","CLOUDINARY_API_KEY":"<CLOUDINARY_API_KEY>","CLOUDINARY_CLOUD_NAME":"<CLOUDINARY_CLOUD_NAME>"}}'Install Cloudinary Analysis MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"analysis-mcp": {
"command": "npx",
"args": [
"-y",
"@cloudinary/analysis-mcp"
],
"env": {
"CLOUDINARY_API_SECRET": "<YOUR_CLOUDINARY_API_SECRET>",
"CLOUDINARY_API_KEY": "<CLOUDINARY_API_KEY>",
"CLOUDINARY_CLOUD_NAME": "<CLOUDINARY_CLOUD_NAME>"
}
}
}
}Install Cloudinary Analysis MCP in Codex
$ codex mcp add analysis-mcp --env 'CLOUDINARY_API_SECRET=<YOUR_CLOUDINARY_API_SECRET>' --env 'CLOUDINARY_API_SECRET=<YOUR_CLOUDINARY_API_SECRET>' --env 'CLOUDINARY_API_KEY=<CLOUDINARY_API_KEY>' --env 'CLOUDINARY_API_KEY=<CLOUDINARY_API_KEY>' --env 'CLOUDINARY_CLOUD_NAME=<CLOUDINARY_CLOUD_NAME>' --env 'CLOUDINARY_CLOUD_NAME=<CLOUDINARY_CLOUD_NAME>' -- npx -y @cloudinary/analysis-mcpInstall Cloudinary Analysis MCP in Codex config.toml
~/.codex/config.toml
[mcp_servers.analysis-mcp] command = "npx" args = ["-y", "@cloudinary/analysis-mcp"] [mcp_servers.analysis-mcp.env] CLOUDINARY_API_SECRET = "<YOUR_CLOUDINARY_API_SECRET>" CLOUDINARY_API_KEY = "<CLOUDINARY_API_KEY>" CLOUDINARY_CLOUD_NAME = "<CLOUDINARY_CLOUD_NAME>"
Install Cloudinary Analysis MCP in Gemini CLI
$ gemini mcp add -s user -e 'CLOUDINARY_API_SECRET=<YOUR_CLOUDINARY_API_SECRET>' -e 'CLOUDINARY_API_SECRET=<YOUR_CLOUDINARY_API_SECRET>' -e 'CLOUDINARY_API_KEY=<CLOUDINARY_API_KEY>' -e 'CLOUDINARY_API_KEY=<CLOUDINARY_API_KEY>' -e 'CLOUDINARY_CLOUD_NAME=<CLOUDINARY_CLOUD_NAME>' -e 'CLOUDINARY_CLOUD_NAME=<CLOUDINARY_CLOUD_NAME>' analysis-mcp npx -- -y @cloudinary/analysis-mcpInstall Cloudinary Analysis MCP in Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"analysis-mcp": {
"command": "npx",
"args": [
"-y",
"@cloudinary/analysis-mcp"
],
"env": {
"CLOUDINARY_API_SECRET": "<YOUR_CLOUDINARY_API_SECRET>",
"CLOUDINARY_API_KEY": "<CLOUDINARY_API_KEY>",
"CLOUDINARY_CLOUD_NAME": "<CLOUDINARY_CLOUD_NAME>"
}
}
}
}Configuration
CLOUDINARY_API_SECRETRequiredSecretYour Cloudinary API secret. Found in Dashboard > Settings > Access Keys.
CLOUDINARY_API_SECRETRequiredSecretYour Cloudinary API secret. Found in Dashboard > Settings > Access Keys.
CLOUDINARY_API_KEYRequiredYour Cloudinary API key. Found in Dashboard > Settings > Access Keys.
CLOUDINARY_API_KEYRequiredYour Cloudinary API key. Found in Dashboard > Settings > Access Keys.
CLOUDINARY_CLOUD_NAMERequiredYour Cloudinary cloud name. Find it in your Cloudinary Dashboard.
CLOUDINARY_CLOUD_NAMERequiredYour Cloudinary cloud name. Find it in your Cloudinary Dashboard.
CLOUDINARY_URL
| Name | Description | |
|---|---|---|
| CLOUDINARY_API_SECRET | Your Cloudinary API secret. Found in Dashboard > Settings > Access Keys. | RequiredSecret |
| CLOUDINARY_API_SECRET | Your Cloudinary API secret. Found in Dashboard > Settings > Access Keys. | RequiredSecret |
| CLOUDINARY_API_KEY | Your Cloudinary API key. Found in Dashboard > Settings > Access Keys. | Required |
| CLOUDINARY_API_KEY | Your Cloudinary API key. Found in Dashboard > Settings > Access Keys. | Required |
| CLOUDINARY_CLOUD_NAME | Your Cloudinary cloud name. Find it in your Cloudinary Dashboard. | Required |
| CLOUDINARY_CLOUD_NAME | Your Cloudinary cloud name. Find it in your Cloudinary Dashboard. | Required |
| CLOUDINARY_URL | — |
Automated checks
Ran Nov 13, 2026Full report →Not verified yet. A server needs a score of 80, no serious finding, and enough data for us to check. How checks work · What to fix for more points
- Source repository linked and reachablePass
- Open source license (OSI)Pass
- Commit or release in the last yearPass
- Package name not close to a popular package@cloudinary/analysis-mcp looks like @amplitude/mcp-analyticsFinding
- Remote endpoint uses HTTPSPass
- Destructive tools are labelledNot checked
- No hidden instructions to the modelPass
- No critical advisory in the package or its dependenciesPass
README
View on GitHubCloudinary Analysis MCP Server
Summary
Analyze API (Beta): Use the Analyze API to analyze any external asset and return details based on the type of analysis requested.
Currently supports the following analysis options:
- AI Vision - Tagging
- AI Vision - Moderation
- AI Vision - General
- Captioning
- Cld Fashion
- Cld Text
- Coco
- Google Tagging
- Human Anatomy
- Image Quality Analysis
- Lvis
- Shop Classifier
- Unidet
- Watermark Detection
Notes:
- The Analyze API is currently in development and is available as a Public Beta, which means we value your feedback, so please feel free to share any thoughts with us.
- The analysis options require an active subscription to the relevant add-on. Learn more about registering for add-ons.
The API supports both Basic Authentication using your Cloudinary API Key and API Secret (which can be found on the Dashboard page of your Cloudinary Console) or OAuth2 (Contact support for more information regarding OAuth).
Table of Contents
Installation
The MCP server requires Node.js 20.19.0 or later.
Install the MCP server as a Desktop Extension using the pre-built mcp-server.mcpb file:
Simply drag and drop the mcp-server.mcpb file onto Claude Desktop to install the extension.
The MCP bundle package includes the MCP server and all necessary configuration. Once installed, the server will be available without additional setup.
[!NOTE] MCP bundles provide a streamlined way to package and distribute MCP servers. Learn more about Desktop Extensions.
Or manually:
- Open Cursor Settings
- Select Tools and Integrations
- Select New MCP Server
- If the configuration file is empty paste the following JSON into the MCP Server Configuration:
{
"command": "npx",
"args": [
"@cloudinary/analysis-mcp",
"start",
"--cloud-name",
"CLOUD_NAME",
"--api-key",
"",
"--api-secret",
"",
"--o-auth2",
""
]
}
claude mcp add CloudinaryAnalysis -- npx -y @cloudinary/analysis-mcp start --cloud-name CLOUD_NAME --api-key --api-secret --o-auth2
gemini mcp add CloudinaryAnalysis -- npx -y @cloudinary/analysis-mcp start --cloud-name CLOUD_NAME --api-key --api-secret --o-auth2
Refer to Official Windsurf documentation for latest information
- Open Windsurf Settings
- Select Cascade on left side menu
- Click on
Manage MCPs. (To Manage MCPs you should be signed in with a Windsurf Account) - Click on
View raw configto open up the mcp configuration file. - If the configuration file is empty paste the full json
{
"command": "npx",
"args": [
"@cloudinary/analysis-mcp",
"start",
"--cloud-name",
"CLOUD_NAME",
"--api-key",
"",
"--api-secret",
"",
"--o-auth2",
""
]
}
Or manually:
Refer to Official VS Code documentation for latest information
- Open Command Palette
- Search and open
MCP: Open User Configuration. This should open mcp.json file - If the configuration file is empty paste the full json
{
"command": "npx",
"args": [
"@cloudinary/analysis-mcp",
"start",
"--cloud-name",
"CLOUD_NAME",
"--api-key",
"",
"--api-secret",
"",
"--o-auth2",
""
]
}
npx @cloudinary/analysis-mcp start --cloud-name CLOUD_NAME --api-key --api-secret --o-auth2
For a full list of server arguments, run:
npx @cloudinary/analysis-mcp --help
Progressive Discovery
MCP servers with many tools can bloat LLM context windows, leading to increased token usage and tool confusion. Dynamic mode solves this by exposing only a small set of meta-tools that let agents progressively discover and invoke tools on demand.
To enable dynamic mode, pass the --mode dynamic flag when starting your server:
{
"mcpServers": {
"CloudinaryAnalysis": {
"command": "npx",
"args": ["@cloudinary/analysis-mcp", "start", "--mode", "dynamic"],
// ... other server arguments
}
}
}
In dynamic mode, the server registers only the following meta-tools instead of every individual tool:
list_tools: Lists all available tools with their names and descriptions.describe_tool_input: Returns the input schema for one or more tools by name.execute_tool: Executes a tool by name with its arguments.
This approach significantly reduces the number of tokens sent to the LLM on each request, which is especially useful for servers with a large number of tools.
Configuration
Environment Variables
The MCP server supports the following environment variables:
| Variable | Description | Required |
|---|---|---|
CLOUDINARY_CLOUD_NAME |
Your Cloudinary cloud name | Yes |
CLOUDINARY_API_KEY |
Your Cloudinary API key | Yes |
CLOUDINARY_API_SECRET |
Your Cloudinary API secret | Yes |
CLOUDINARY_URL |
Complete Cloudinary URL (alternative to individual vars) | No |
CLOUDINARY_URL Format
You can use a single CLOUDINARY_URL instead of individual variables:
CLOUDINARY_URL=cloudinary://API_KEY:API_SECRET@CLOUD_NAME
Authentication
The MCP server uses your Cloudinary API key and secret for authentication:
{
"env": {
"CLOUDINARY_CLOUD_NAME": "demo",
"CLOUDINARY_API_KEY": "123456789012345",
"CLOUDINARY_API_SECRET": "abcdefghijklmnopqrstuvwxyz12"
}
}
Development
Building from Source
Prerequisites
- Node.js v20 or higher
- npm, pnpm, bun, or yarn
Build Steps
# Clone the repository
git clone https://github.com/cloudinary/analysis-mcp.git
cd analysis-mcp
# Install dependencies
npm install
# Build the project
npm run build
# Run locally
npm start
Contributions
While we value contributions to this MCP Server, the code is generated programmatically from the Cloudinary API spec. Any manual changes to generated files will be overwritten on the next generation.
We look forward to hearing your feedback. Feel free to open a PR or issue with a proof of concept and we'll do our best to include it in a future release.
MCP Server Created by Speakeasy
Cloudinary Analysis MCP questions
How do I add Cloudinary Analysis MCP to Claude Code?
Run claude mcp add --env 'CLOUDINARY_API_SECRET=<YOUR_CLOUDINARY_API_SECRET>' --env 'CLOUDINARY_API_KEY=<CLOUDINARY_API_KEY>' --env 'CLOUDINARY_CLOUD_NAME=<CLOUDINARY_CLOUD_NAME>' analysis-mcp -- npx -y @cloudinary/analysis-mcp in your terminal. Add --scope user to make it available in every project.
How do I add Cloudinary Analysis MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
Do I need a subscription to use these analysis tools?
Yes, the specific analysis options require an active subscription to the relevant Cloudinary add-on.
How can I authenticate with the Cloudinary Analysis MCP server?
The server supports Basic Authentication using your Cloudinary API Key and API Secret, or OAuth2.
What are the system requirements for installation?
The MCP server requires Node.js version 20.19.0 or later.