Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Unix-style shell, scriptable CLI and MCP server for Cloudinary asset management.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"cldsh-cloudinary-shell": {
"command": "npx",
"args": [
"-y",
"cloudinary-shell"
]
}
}
}ターミナルでこれを実行します
claude mcp add cldsh-cloudinary-shell -- npx -y cloudinary-shellプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"cldsh-cloudinary-shell": {
"command": "npx",
"args": [
"-y",
"cloudinary-shell"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"cldsh-cloudinary-shell": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"cloudinary-shell"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント Sheldon1999 で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(2.0.1)がレジストリに届いたのは9 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, LickityClick
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Create, edit and track LickityClick short links, campaigns and click stats from your AI assistant.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
cldsh)cldsh lets you work with a Cloudinary account like a file system:
It works with both Cloudinary folder modes: dynamic folders (every account created since June 2024) and the older fixed folders. The mode is detected automatically.
Working on a project that uses Cloudinary? Give
INTEGRATION.mdto your AI agent or team: integration patterns (Next.js, React, Node.js, Python), transformation recipes andcldshworkflows.
cldsh comparesCloudinary also publishes an official CLI (cloudinary-cli, Python) and official MCP packages (@cloudinary/*). cldsh is a separate, independent project built for a different workflow: one Node binary that is a shell, a scriptable CLI and an MCP server together, authenticated with your existing API key — no Python runtime, no OAuth browser flow, no hosted service required.
cldsh | cloudinary-cli (official) | @cloudinary/* MCP (official) | community MCP servers | |
|---|---|---|---|---|
| Runtime | Node, npx | Python, pipx/Docker | Node, npx per package | Node, npx |
| Auth | API key / .env | OAuth login | OAuth (hosted) or API key | API key |
Interactive shell (cd, ls, tab completion) | ✅ | ❌ one-shot flags | ❌ not a CLI | ❌ not a CLI |
| MCP server | ✅ same binary | ❌ | ✅ (5 separate packages) | ✅ |
| Confirm before delete/move/overwrite | ✅ two-step token, --dry-run | ❌ | — | ❌ |
| Fixed/dynamic folder mode | ✅ auto-detected | not documented | not documented | not documented |
Pick cldsh for one local tool, API-key auth and a safety net on AI-driven changes. Pick the official packages for Cloudinary-maintained, domain-split MCP servers with OAuth and enterprise support.
Requires Node.js 20 or newer and a Cloudinary account (cloud name, API key and API secret, or a CLOUDINARY_URL).
# AI agents: add the MCP server to Claude Code
claude mcp add cloudinary npx -y cloudinary-shell --mcp
npx cloudinary-shell
npx cloudinary-shell ls products --json
Install globally to get the shorter cldsh command: npm install -g cloudinary-shell.
cldsh --mcp runs an MCP server over stdio (JSON-RPC 2.0). It supports protocol versions 2025-06-18, 2025-03-26 and 2024-11-05.
Claude Desktop (claude_desktop_config.json):
{
"mcpServers": { "cloudinary": { "command": "npx", "args": ["-y", "cloudinary-shell", "--mcp"] } } }
Claude Code: claude mcp add cloudinary npx -y cloudinary-shell --mcp
Cursor: Settings → MCP → Add new MCP server, type command, command npx -y cloudinary-shell --mcp.
Check the setup with cldsh mcp: it runs the handshake, lists the tools and makes a live call on your account.
| Tool | What it does | Main arguments |
|---|---|---|
cloudinary_list | List folders and assets (wildcards allowed) | path, resource_type, delivery_type, max |
cloudinary_tree | Folder tree | folder, depth, resource_type, max_files |
cloudinary_info | Full metadata of one asset | public_id, resource_type, delivery_type |
cloudinary_get_url | Delivery URL, optionally transformed or signed | public_id, transformation, signed, resource_type |
cloudinary_upload | Upload a local file or directory | local_path, name, folder, recursive, overwrite, resource_type, dry_run |
cloudinary_download | Download assets to the local disk | public_id, destination, overwrite, dry_run |
cloudinary_move | Move or rename an asset or folder | source, target, overwrite, change_public_id, dry_run |
cloudinary_delete | Delete assets, or folders with recursive | target, recursive, resource_type, dry_run |
cloudinary_mkdir | Create a folder | folder |
cloudinary_rename_folder | Rename or move a folder (dynamic folder mode) | from, to |
cloudinary_account | Cloud name, folder mode, credential source, remaining API budget | — |
Every tool carries MCP annotations (read-only, destructive, idempotent), so clients can decide when to ask you.
cloudinary_delete, cloudinary_move, cloudinary_rename_folder, and uploads that would replace existing assets first return a preview with a confirm_token. Nothing changes until the agent calls again with the same arguments and that token. Tokens are single-use, expire after 5 minutes and stop working if the account changes. dry_run: true only previews.--allow-path. The cldsh credentials folder, ~/.ssh and hidden files (unless named explicitly) are always refused. Downloads never overwrite a local file unless overwrite: true.--read-only: only the read-only tools (list, tree, info, get_url, account).--allow-path : allow another local folder (repeatable).--no-confirm: run changes in one call, as in cldsh 1.x. Use only for trusted automation."args": ["-y", "cloudinary-shell", "--mcp", "--read-only"]
Run any command directly: cldsh [arguments] [options].
--json prints machine-readable JSON on stdout (errors are printed as JSON on stderr).0 success, 1 error, 2 wrong usage, 3 partly failed (for example 2 of 50 uploads failed), 4 needs confirmation (add --yes) or was cancelled.--profile uses a saved profile for one command.# Upload a build folder with subfolders
cldsh upload ./dist/assets -r --to site/assets
cldsh ls portfolio --json | jq -r '.files[].secure_url'
cldsh ls portfolio --json | jq -r '.files[] | select(.bytes > 100000) | .public_id'
cldsh rm 'old-*' --dry-run cldsh rm -r archive/2023 --yes
Quote wildcards. Your shell expands an unquoted
cld*into local file names beforecldshsees it. Writecldsh rm 'cld*'. If every name given tormexists in the local directory,cldshrefuses and reminds you.
Run cldsh with no arguments.
Connected to Cloudinary account: my-cloud (global credentials profile (default))
[my-cloud]$~ cd products [my-cloud]$~/products ls -l
SIZE(KB) DIMENSIONS(px) NAME FORMAT TYPE ──────── ────────────── ──────── ────── ───── 245 1200x630 hero png image 15 512x512 logo svg image 1830 1920x1080 promo mp4 video
cd apps/ ) and asset names.~/.cldsh_history (private file; lines with credentials are never saved)./ or ~ is the root, .. goes up, cd - goes back.help lists all commands; help lists all options of one command.| Command | What it does | ||
|---|---|---|---|
login [profile] [URL] [--stdin] | Connect an account and save it as a profile (checked with Cloudinary first) | ||
| `config [ls \ | use \ | rm ]` | Show the active account and which sources it overrides; list, switch or remove profiles |
| `ls [path\ | pattern] [-l]` | List folders and assets | |
cd, pwd | Change and show the current Cloudinary folder (shell only) | ||
lcd, lpwd | Change and show the local directory | ||
mkdir ... | Create folders (parents included) | ||
upload [name] [--to folder] [-r] | Upload a file or a directory | ||
download ... [destination] [-f] | Download assets | ||
mv [-o] [--public-id] | Move or rename an asset or folder | ||
info | Asset metadata (-v for the full API response) | ||
url ... [--t=...] [--signed] | Delivery URLs | ||
view (alias preview) | Show an image or video thumbnail in the terminal | ||
open | Open an asset in the browser | ||
rm [-r] ... [-y] | Delete assets, or folders with -r | ||
tree [folder] [-d N] | Folder tree | ||
quota | Remaining Admin API requests this hour and the folder mode | ||
mcp | Check the MCP server |
Options shared by many commands:
| Option | Meaning | |||
|---|---|---|---|---|
| `--rt=image\ | video\ | raw\ | all` | Resource type. Listings show all types by default. |
| `--type=upload\ | private\ | authenticated` | Delivery type | |
--dry-run | Show what would happen without changing anything | |||
-y, --yes | Don't ask for confirmation | |||
--json | JSON output |
Assets can be named by their name in the current folder, by path (products/hero), by public ID, or as asset_id: . If a name matches several assets (for example an image and a video called intro), cldsh lists them; add --rt or use the public ID.
[my-cloud]$~/products upload ~/Pictures/hero.png
Uploaded (created): https://res.cloudinary.com/my-cloud/image/upload/v1730000000/products/hero.png
[my-cloud]$~ upload ./media -r --to campaigns/fall [1/3] created https://res.cloudinary.com/my-cloud/image/upload/.../campaigns/fall/banner.png [2/3] created https://res.cloudinary.com/my-cloud/video/upload/.../campaigns/fall/teaser.mp4 [3/3] created https://res.cloudinary.com/my-cloud/raw/upload/.../campaigns/fall/notes.txt
--rt overrides it.notes.txt).-r includes subdirectories as subfolders. Dotfiles are skipped.overwritten; --no-overwrite keeps them (skipped).photo.jpg, photo.png), both get their extension as suffix (photo_jpg, photo_png).--dry-run shows the planned public IDs and works without credentials.[my-cloud]$~/products rm hero
deleted products/hero Deleted 1 · not found 0 · failed 0
[my-cloud]$~ rm -r campaigns/fall Delete 3 assets (1 image, 1 video, 1 raw, 2.1 MB) and 1 folder in cloud my-cloud: ... Proceed? [y/N]
rm -r deletes everything in the folder and its subfolders (all resource and delivery types), then the folder.冒頭だけを表示しています。続きはリポジトリで読めます