ModelDesk MCP server (stdio) — list_models / run_* over the shared run core
ModelDesk MCP exposes 7 tools with complete JSON schemas and descriptions. Naming follows verb_noun convention (list_*, run_*, cancel_*). However, descriptions lack LLM-optimization guidance (e.g., 'run_text' doesn't explain when to use it vs alternatives), parameter descriptions are minimal, and output schemas are undocumented. Error handling and recovery guidance are absent. No tool annotations (readOnlyHint/destructiveHint). The server is functional but falls short of production-grade quality.
Cancel an in-flight run started by this MCP process (same process only).
List in-flight runs started by this MCP process (for cancel_run).
List ModelDesk-registered models for agent tools (text/image/video/audio). Same local DB as the Web UI when Desk is running (follows :3300 dataDir).
Run an audio model. modelId: registry UUID or unique config name. Optional params mirror UI.
Run an image model. modelId: registry UUID or unique config name. Optional params mirror UI.
Run a text (chat) model. modelId: registry UUID or unique config name from list_models.
Output schemas undocumented. LLMs cannot predict what fields run_text, run_image, run_video, run_audio return, forcing them to guess downstream field names and risking failed chaining.
No error recovery guidance. Descriptions do not explain what to do if a model run fails, times out, or returns invalid output. LLMs have no fallback strategy.
run_image, run_video, run_audio accept 'params' as additionalProperties:true with no schema. LLMs cannot discover valid keys (size, ratio, quality, reference_images) and will hallucinate invalid parameter names.
No tool annotations. Tools lack readOnlyHint/destructiveHint/idempotentHint, preventing LLMs from reasoning about safety and retry semantics. cancel_run is reversible but unmarked.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Run a video model. modelId: registry UUID or unique config name. Optional params mirror UI.
list_active_runs description (18 chars) is too brief. Does not explain what 'in-flight' means, when to call it, or what fields the response contains.