Ermöglicht es einem AI-Client, Cloudinary-Metadatenfelder, Datenquellen und Regeln zu erstellen und zu verwalten.
Auch bekannt als cloudinary/structured-metadata-mcp, structured-metadata-mcp, @cloudinary/structured-metadata-mcp
- Stars
- 0
- Tools
- —
- Downloads, 30 Tage
- 924
- Neueste Version
- 0.6.2
- Letzter Commit
- 14. Nov. 2026
- Lizenz
- MIT
Was ist Cloudinary Structured Metadata MCP?
Cloudinary Structured Metadata ist ein MCP server. Ermöglicht es einem AI-Client, Cloudinary-Metadatenfelder, Datenquellen und Regeln zu erstellen und zu verwalten.
Zusammenfassung generiert aus dem README des Projekts
Über Cloudinary Structured Metadata MCP server
Dieser MCP server ermöglicht es Entwicklern und Media Managern, die Cloudinary-Asset-Organisation per natürlicher Sprache zu steuern. Er bietet eine Schnittstelle, über die AI-Clients direkt mit der Cloudinary Structured Metadata API interagieren können, was die programmatische Erstellung und Verwaltung von Metadatenfeldern, Datenquellen und Automatisierungsregeln erlaubt.
Nutzer können diesen Server in Umgebungen wie Claude Desktop, Cursor, VS Code oder über CLI-Tools wie Claude Code und Gemini integrieren. Die Einrichtung erfordert eine Node.js-Umgebung und die Authentifizierung via Cloudinary API key, API secret und cloud name, die entweder über einzelne Umgebungsvariablen oder eine einzige CLOUDINARY_URL übergeben werden können.
Der Server zeichnet sich durch einen dynamischen Modus aus, der das Aufblähen des Context Windows verhindert. Durch die Verwendung des Flags --mode dynamic stellt der Server Meta-Tools wie list_tools und execute_tool bereit. So kann die KI spezifische Funktionen bei Bedarf entdecken, anstatt alle verfügbaren Tools sofort zu laden. Das macht ihn besonders effizient für komplexe Workflows wie das Umordnen von Feldern, das Aktualisieren von Datenquellen oder das Management von Regeln.
Was du damit machen kannst
- 1Automatisierte Erstellung von MetadatenfeldernLass deinen AI-Client neue Metadatenfelder mit spezifischen Typen und Werten generieren.
- 2Verwaltung von Feld-DatenquellenAnweise einen Agenten, spezifische Werte aus der Datenquelle eines bestehenden Feldes hinzuzufügen oder zu entfernen.
- 3Konfiguration von Asset-AutomatisierungsregelnRichte Regeln ein, die Metadaten-Tags automatisch auf Assets in bestimmten Ordnern anwenden.
- 4Organisation der Reihenfolge von MetadatenfeldernFordere die KI auf, die Position mehrerer Metadatenfelder gleichzeitig neu zu ordnen.
Geschrieben aus dem README des Projekts. Jeder Use Case wurde gegen ein Zitat daraus geprüft.
So installierst du Cloudinary Structured Metadata MCP
Formate geprüft am 10. Nov. 2026Zu Cursor hinzufügenZu Goose hinzufügenCloudinary Structured Metadata MCP in Claude Code installieren
$ 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>' structured-metadata-mcp -- npx -y @cloudinary/structured-metadata-mcpCloudinary Structured Metadata MCP in Cursor installieren
~/.cursor/mcp.json
{
"mcpServers": {
"structured-metadata-mcp": {
"command": "npx",
"args": [
"-y",
"@cloudinary/structured-metadata-mcp"
],
"env": {
"CLOUDINARY_API_SECRET": "<YOUR_CLOUDINARY_API_SECRET>",
"CLOUDINARY_API_KEY": "<CLOUDINARY_API_KEY>",
"CLOUDINARY_CLOUD_NAME": "<CLOUDINARY_CLOUD_NAME>"
}
}
}
}Cloudinary Structured Metadata MCP in VS Code installieren
.vscode/mcp.json
{
"servers": {
"structured-metadata-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cloudinary/structured-metadata-mcp"
],
"env": {
"CLOUDINARY_API_SECRET": "<YOUR_CLOUDINARY_API_SECRET>",
"CLOUDINARY_API_KEY": "<CLOUDINARY_API_KEY>",
"CLOUDINARY_CLOUD_NAME": "<CLOUDINARY_CLOUD_NAME>"
}
}
}
}Cloudinary Structured Metadata MCP in VS Code CLI installieren
$ code --add-mcp '{"name":"structured-metadata-mcp","type":"stdio","command":"npx","args":["-y","@cloudinary/structured-metadata-mcp"],"env":{"CLOUDINARY_API_SECRET":"<YOUR_CLOUDINARY_API_SECRET>","CLOUDINARY_API_KEY":"<CLOUDINARY_API_KEY>","CLOUDINARY_CLOUD_NAME":"<CLOUDINARY_CLOUD_NAME>"}}'Cloudinary Structured Metadata MCP in Claude Desktop installieren
claude_desktop_config.json
{
"mcpServers": {
"structured-metadata-mcp": {
"command": "npx",
"args": [
"-y",
"@cloudinary/structured-metadata-mcp"
],
"env": {
"CLOUDINARY_API_SECRET": "<YOUR_CLOUDINARY_API_SECRET>",
"CLOUDINARY_API_KEY": "<CLOUDINARY_API_KEY>",
"CLOUDINARY_CLOUD_NAME": "<CLOUDINARY_CLOUD_NAME>"
}
}
}
}Cloudinary Structured Metadata MCP in Codex installieren
$ codex mcp add structured-metadata-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/structured-metadata-mcpCloudinary Structured Metadata MCP in Codex config.toml installieren
~/.codex/config.toml
[mcp_servers.structured-metadata-mcp] command = "npx" args = ["-y", "@cloudinary/structured-metadata-mcp"] [mcp_servers.structured-metadata-mcp.env] CLOUDINARY_API_SECRET = "<YOUR_CLOUDINARY_API_SECRET>" CLOUDINARY_API_KEY = "<CLOUDINARY_API_KEY>" CLOUDINARY_CLOUD_NAME = "<CLOUDINARY_CLOUD_NAME>"
Cloudinary Structured Metadata MCP in Gemini CLI installieren
$ 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>' structured-metadata-mcp npx -- -y @cloudinary/structured-metadata-mcpCloudinary Structured Metadata MCP in Gemini settings.json installieren
~/.gemini/settings.json
{
"mcpServers": {
"structured-metadata-mcp": {
"command": "npx",
"args": [
"-y",
"@cloudinary/structured-metadata-mcp"
],
"env": {
"CLOUDINARY_API_SECRET": "<YOUR_CLOUDINARY_API_SECRET>",
"CLOUDINARY_API_KEY": "<CLOUDINARY_API_KEY>",
"CLOUDINARY_CLOUD_NAME": "<CLOUDINARY_CLOUD_NAME>"
}
}
}
}Konfiguration
CLOUDINARY_API_SECRETErforderlichSecretYour Cloudinary API secret. Found in Dashboard > Settings > Access Keys.
CLOUDINARY_API_SECRETErforderlichSecretYour Cloudinary API secret. Found in Dashboard > Settings > Access Keys.
CLOUDINARY_API_KEYErforderlichYour Cloudinary API key. Found in Dashboard > Settings > Access Keys.
CLOUDINARY_API_KEYErforderlichYour Cloudinary API key. Found in Dashboard > Settings > Access Keys.
CLOUDINARY_CLOUD_NAMEErforderlichYour Cloudinary cloud name. Find it in your Cloudinary Dashboard.
CLOUDINARY_CLOUD_NAMEErforderlichYour Cloudinary cloud name. Find it in your Cloudinary Dashboard.
CLOUDINARY_URL
| Name | Beschreibung | Typ |
|---|---|---|
| CLOUDINARY_API_SECRET | Your Cloudinary API secret. Found in Dashboard > Settings > Access Keys. | ErforderlichSecret |
| CLOUDINARY_API_SECRET | Your Cloudinary API secret. Found in Dashboard > Settings > Access Keys. | ErforderlichSecret |
| CLOUDINARY_API_KEY | Your Cloudinary API key. Found in Dashboard > Settings > Access Keys. | Erforderlich |
| CLOUDINARY_API_KEY | Your Cloudinary API key. Found in Dashboard > Settings > Access Keys. | Erforderlich |
| CLOUDINARY_CLOUD_NAME | Your Cloudinary cloud name. Find it in your Cloudinary Dashboard. | Erforderlich |
| CLOUDINARY_CLOUD_NAME | Your Cloudinary cloud name. Find it in your Cloudinary Dashboard. | Erforderlich |
| CLOUDINARY_URL | — |
Automatisierte Checks
Geluften am 13. Nov. 2026Vollständiger Bericht →Unsere automatisierten Checks bestanden. Das ist kein Security-Audit: Lies den Code und gib dem Server nur den minimal notwendigen Zugriff. Wie die Checks funktionieren
- Source Repository verknüpft und erreichbarBestanden
- Open Source Lizenz (OSI)Bestanden
- Commit oder Release im letzten JahrBestanden
- Package-Name ähnelt keinem populären PackageBestanden
- Remote Endpoint nutzt HTTPSBestanden
- Destruktive Tools sind markiertNicht geprüft
- Keine versteckten Anweisungen an das ModellBestanden
- Keine kritischen Advisories im Paket oder seinen AbhängigkeitenBestanden
README
Auf GitHub ansehenCloudinary Structured Metadata MCP Server
Summary
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/structured-metadata-mcp",
"start",
"--api-key",
"",
"--api-secret",
"",
"--cloud-name",
""
]
}
claude mcp add CloudinarySMD -- npx -y @cloudinary/structured-metadata-mcp start --api-key --api-secret --cloud-name
gemini mcp add CloudinarySMD -- npx -y @cloudinary/structured-metadata-mcp start --api-key --api-secret --cloud-name
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/structured-metadata-mcp",
"start",
"--api-key",
"",
"--api-secret",
"",
"--cloud-name",
""
]
}
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/structured-metadata-mcp",
"start",
"--api-key",
"",
"--api-secret",
"",
"--cloud-name",
""
]
}
npx @cloudinary/structured-metadata-mcp start --api-key --api-secret --cloud-name
For a full list of server arguments, run:
npx @cloudinary/structured-metadata-mcp --help
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"
}
}
Available Tools
The MCP server exposes Cloudinary's Structured Metadata API as tools. Use your AI application to discover and invoke the available tools for managing metadata fields and rules.
Usage Examples
Example 1: Manage Metadata Fields
1. List fields: "Show me all metadata fields in my account"
2. Create field: "Create a metadata field named 'category' of type 'enum' with values 'product,service,other'"
3. Get field: "Get details for the metadata field 'category'"
4. Update field: "Update the 'category' field to add a new value 'subscription'"
5. Delete field: "Delete the metadata field 'old_field'"
Example 2: Manage Field Datasources
1. Search datasource: "Search for values in the 'category' field datasource"
2. Update datasource: "Add a new value 'enterprise' to the 'category' field datasource"
3. Delete datasource entry: "Remove the value 'old_value' from the 'category' field"
4. Restore datasource: "Restore a deleted datasource entry for field 'category'"
Example 3: Manage Metadata Rules
1. List rules: "Show all metadata rules configured in my account"
2. Create rule: "Create a metadata rule to auto-tag assets in folder 'products' with category 'product'"
3. Update rule: "Update metadata rule [rule-id] to change the target folder"
4. Delete rule: "Delete metadata rule [rule-id]"
Example 4: Reorder Metadata Fields
1. Reorder single field: "Move the 'priority' metadata field to position 2"
2. Reorder multiple fields: "Reorder metadata fields: set 'category' to position 1, 'priority' to position 2"
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/structured-metadata-mcp.git
cd structured-metadata-mcp
# Install dependencies
npm install
# Build the project
npm run build
# Run locally
npm start
Project Structure
structured-metadata-mcp/
├── src/
│ ├── hooks/ # Custom authentication hooks
│ ├── mcp-server/ # MCP server implementation
│ │ ├── server.ts # Main server (auto-generated)
│ │ └── tools/ # Generated tool wrappers
│ ├── funcs/ # API function implementations
│ └── models/ # Type definitions
├── .github/
│ └── workflows/ # CI/CD workflows
└── .speakeasy/ # Speakeasy configuration
Contributions
While we value contributions to this MCP Server, the code is generated programmatically. Any manual changes to generated files will be overwritten on the next generation.
What you can contribute:
- ✅ Custom hooks in
src/hooks/ - ✅ Documentation improvements
- ✅ Bug reports and feature requests
Generated files (do not edit):
- ❌
src/mcp-server/server.ts - ❌
src/mcp-server/tools/*.ts - ❌
src/funcs/*.ts - ❌
src/models/*.ts
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
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": {
"CloudinarySMD": {
"command": "npx",
"args": ["@cloudinary/structured-metadata-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.list_scopes: Lists the scopes available on the server.
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.
You can combine dynamic mode with scope and tool filters:
{
"mcpServers": {
"CloudinarySMD": {
"command": "npx",
"args": ["@cloudinary/structured-metadata-mcp", "start", "--mode", "dynamic", "--scope", "admin"],
// ... other server arguments
}
}
}
Cloudinary Structured Metadata MCP Fragen
Wie füge ich Cloudinary Structured Metadata MCP zu Claude Code hinzu?
Führe 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>' structured-metadata-mcp -- npx -y @cloudinary/structured-metadata-mcp in deinem Terminal aus. Füge --scope user hinzu, damit der Server in jedem Projekt verfügbar ist.
Wie füge ich Cloudinary Structured Metadata MCP zu Cursor hinzu?
Öffne ~/.cursor/mcp.json und füge den Server unter mcpServers hinzu, mit der Cursor-Config aus dem Installationsabschnitt oben.
Welche Authentifizierungsmethoden werden unterstützt?
Der Server nutzt deinen Cloudinary API key, API secret und cloud name zur Authentifizierung. Diese können über Umgebungsvariablen oder eine einzelne CLOUDINARY_URL bereitgestellt werden.
Kann ich den dynamischen Modus nutzen, um Token zu sparen?
Ja, du kannst den dynamischen Modus aktivieren, indem du das Flag --mode dynamic übergibst. Dadurch werden Meta-Tools für eine progressive Discovery bereitgestellt, anstatt alle Tools auf einmal zu laden.