AI image generation from the terminal — CLI, TUI, and MCP server for text-to-image with Flux, Imagen, Recraft, and more
Three tools with clear action verbs and basic parameter descriptions. All tools have documented input schemas via Zod with enums for constrained inputs (models, aspect ratios, styles). However, parameter descriptions are minimal (under 50 chars each), output schemas are undocumented in code (only inferred from JSON.stringify calls), and error handling is absent. Tool descriptions are adequate (120-180 chars) but lack WHEN to use hints or prerequisites. No documentation of return field structure for downstream tool composition. generate_image modifies state but description does not explicitly say so.
Check Pixelmuse account credit balance and plan info.
Generate an AI image using Pixelmuse. Returns the saved file path and generation metadata.
List all available Pixelmuse image generation models with their costs and capabilities.
Output schemas are not documented. Tools return JSON.stringify'd objects with no schema definition visible in code. LLMs cannot reliably parse or extract specific fields from responses.
Parameter descriptions are extremely sparse (10-30 chars). 'Image description / prompt', 'Model to use', 'Image aspect ratio' lack format/constraint guidance. LLMs cannot infer edge cases or constraints beyond enum names.
generate_image description does not state it MODIFIES STATE (creates file, charges credits). Agents need to know this tool has irreversible consequences for retry and planning.
No error handling or recovery guidance. If API key is missing, generation fails, or balance is insufficient, the server throws raw errors with no actionable guidance for the agent.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 58 | 1.27.1+ | v1 |
API key exposed via getApiKey() environment variable lookup at tool execution time. If an agent logs or traces the error on missing key, secrets handling is implicit rather than explicitly documented.
Output fields not designed for tool chaining. generate_image returns nested JSON but does not document which fields a downstream tool (e.g., hypothetical delete_image) would need from the response.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Protocol supports these but they are not used, leaving clients unable to categorize tool safety.