Server has 5 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-50 chars, mostly short), and input schemas are defined via Zod with types and enums. However, descriptions lack depth, they state WHAT but not WHEN or WHY. Parameter descriptions are minimal (e.g., 'The public ID of the asset' without format guidance). Output schemas are not documented; responses are JSON-stringified without field-level guidance. Error handling exists but lacks recovery hints. No tool annotations (readOnlyHint, destructiveHint). Tool naming is clear (verb_noun pattern), but composition could be tighter, delete-asset accepts two mutually exclusive params (publicId, assetId) without explicit guidance on precedence.
Delete a file (asset) from Cloudinary
Search for existing files (assets) in Cloudinary with a query expression
Get the details of a specific file (asset)
Get a report on the status of your product environment usage, including storage, credits, bandwidth, requests, number of resources, and add-on usage
Upload a file (asset) to Cloudinary
Output schemas not documented. Tools return JSON.stringify(result) without field-level guidance. LLMs cannot plan downstream calls or extract specific fields reliably.
Descriptions are too brief (10-50 chars). They state WHAT but lack WHEN/WHY context. E.g., 'Upload a file (asset) to Cloudinary' omits prerequisites, return value hints, or when to use vs. alternatives.
delete-asset accepts both publicId and assetId as optional, with no explicit guidance on precedence or mutual exclusivity. Code checks 'if (!publicId && !assetId)' but description does not warn LLM about this constraint.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). delete-asset is destructive but unmarked; get-asset and find-assets are read-only but unmarked. LLMs cannot infer safety/retry semantics.
Error messages lack recovery guidance. E.g., 'Failed to delete asset with publicId: X - not_found' does not suggest next steps (e.g., 'Try find-assets to locate the asset').