AI image enhancement for LLMs using Topaz Labs API. Upscales, sharpens, and improves image quality with various AI models.
Single tool 'image-enhance' has a well-structured schema with proper Zod validation and reasonable descriptions. Naming is clear (verb_noun pattern with 'enhance'). Input schema includes type constraints and ranges. However, output schema is not documented in the source, and the tool description, while adequate, could be more concise and LLM-optimized. Error handling is present but generic. No parameter enums despite having a constrained set of valid model names. The server demonstrates competent implementation but lacks some refinements expected of production-grade tools.
Enhance an image using Topaz Labs AI. Upscales, sharpens, and improves quality. Accepts a local file path or URL. If the user shares an image in the conversation without providing a path, ask them for the file path or a URL to the original image.
Output schema not documented. Tool returns success/error responses but LLMs cannot see what fields to expect or extract. No structured return type guidance.
Model parameter accepts free-form string despite having a finite set of valid options. Should be declared as an enum ('Standard V2', 'Low Resolution V2', 'CGI', 'High Fidelity V2', 'Redefine', 'Recover 3', 'Standard MAX', 'Wonder 2') to prevent LLM hallucination of invalid model names.
Size parameter is optional with no defaults documented. When omitted, behavior ('auto-upscales to 2K') is stated in description but not enforced as a schema default. LLMs may not understand the auto-scaling fallback.
Tool description mentions 'Ask the user for the path if not provided' in the image parameter description. This is a UI/agent orchestration concern, not a parameter description. Description should focus on what the parameter is, not what the agent should do if missing.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 69 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 46 | - | v1 |
Error handling is generic (returns toolError with message string). No actionable recovery guidance. LLM cannot distinguish between retryable errors (network timeout) vs user-fixable errors (invalid model name) vs fatal errors (auth failure).