OfflineCreator Studio MCP server for remote OAuth and local stdio clients
Server has 9 tools with explicit schemas and descriptions. Naming follows verb_noun convention (list_models, get_credits, generate, etc.). Descriptions are present and actionable (avg ~120 chars), explaining WHAT and WHEN. Input schemas use Zod with proper types and enums. Tool annotations (readOnlyHint, destructiveHint) are declared. However, several parameters lack descriptions (e.g., 'limit' in list_generations has a description but others are sparse), and output schemas are not documented, LLMs cannot predict response structure. Error handling returns structured objects but lacks recovery guidance. Security: API keys injected server-side (good), but no explicit permission gates or audit trail declarations.
Cancel a reserved generation before provider submit and refund credits.
Return a short-lived signed download URL for a completed generation (does not stream bytes into the model context).
Start a Studio generation. Text-to-image and text-to-video queue immediately. For image-to-video, call upload_input after reserve. Set wait:true to poll until completed/failed.
Return the current Studio credit balance for this API key.
Fetch status. When completed, outputUrl is a short-lived signed download link.
List generations (inferred from client method)
Output schemas not documented. LLMs cannot predict response structure for any tool. Responses are returned as text via textResult() helper, but no schema is declared for what fields/types to expect.
list_generations description is vague ('inferred from client method'). Does not explain what fields are returned, pagination behavior, or when to call it vs get_generation.
Error handling returns structured error objects but lacks recovery guidance. E.g., 'User not found. Try search_users()' pattern is absent. Errors tell LLM what failed, not what to do next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
List OfflineCreator Studio launch models with credit costs and workflows.
Upload a source image for a reserved image-to-video generation, then start processing. Local filePath must stay inside the upload root.
Poll until completed/failed or timeout. Completed responses include a signed outputUrl.
No pagination documented for list_generations. If results can exceed context window, tool should accept limit/offset and return total_count or next_cursor.
upload_input accepts both filePath and imageBase64 but does not document mutual exclusivity or precedence. LLMs may pass both, causing ambiguous behavior.