Official open-source MCP server for Cheap.dev AI media APIs, providing tools for image, video, audio, avatar, and media editing generation tasks
Strong foundation with clear naming, comprehensive schemas, and good parameter constraints. All 8 tools have descriptions (avg 95 chars) and input schemas with type definitions. Tool annotations present (readOnlyHint, destructiveHint, idempotentHint). Key gaps: parameter descriptions are minimal (many lack context beyond type), output schemas undocumented, and error handling lacks recovery guidance. search_models and get_model_schema descriptions are generic; submit_generation lacks dry-run/confirmation pattern for destructive operation.
Get the credit balance for the current Cheap.dev API token.
Check one or more asynchronous generation tasks and retrieve result URLs.
Get the exact input schema and task operations for one Cheap.dev model.
Estimate the credit and USD cost of a generation request before submitting it.
Create a pre-signed Cheap.dev upload request for a local media file.
Search Cheap.dev MCP, API, model, pricing, and authentication documentation.
Output schemas undocumented. Tools return structured JSON but LLMs cannot infer field types, nesting, or pagination structure. result() helper wraps responses but no schema definition visible to clients.
Parameter descriptions lack actionable constraints. 'The model identifier' (model_id) does not explain format, length rules, or how to obtain valid IDs. 'The generation request parameters' (input) is vague, no guidance on required vs optional fields or structure.
submit_generation (destructive operation) lacks confirmation or dry-run pattern. No mechanism to preview cost or request user approval before charging credits. Agents can accidentally submit expensive jobs.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2025-06-18+ | v2 |
Search Cheap.dev image, video, audio, avatar, and editing models.
Submit an asynchronous generation task with a required maximum USD cost guard.
Error handling returns raw error messages without recovery guidance. errorResult() includes message and code but does not tell LLM what to do next (retry, lookup, ask user). 'Model not found' should suggest search_models().
search_models and search_docs lack pagination guidance. No documented limit on result count or next_cursor pattern. Large result sets could exhaust context window.