Server has 7 tools with basic schemas and descriptions, but significant gaps limit production readiness. Image tools (create_thumbnail, detect_faces, blur) have detailed docstrings (150-250 chars) and complete parameter schemas with types and descriptions. Math tools (add, subtract, multiply, divide) have minimal descriptions (10-30 chars, below 20-char baseline) and lack parameter context. No tool declares output schemas, error handling is generic string returns without recovery guidance, and no tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles. Parameter descriptions are present but lack constraints (e.g., blur coordinates should specify 0.0-1.0 range explicitly in schema, not just docstring). STDIO transport caps protocol score at 50.
Adds two numbers together.
Blurs a specified rectangular region within an image and saves the result. Args: image_path: Path to the original image to apply blur to. xmin: Normalized minimum x-coordinate (0.0-1.0) of the blur region. ymin: Normalized minimum y-coordinate (0.0-1.0) of the blur region. xmax: Normalized maximum x-coordinate (0.0-1.0) of the blur region. ymax: Normalized maximum y-coordinate (0.0-1.0) of the blur region. save_path: Path to save the blurred image. If not specified, '_blur' will be appended to the original filename (saved as PNG). Returns: A message indicating the path where the blurred image was saved, or an error message.
Creates and saves a thumbnail from the specified image path. Args: image_path: Path to the original image to create a thumbnail from. save_path: Path to save the thumbnail. If not specified, '_thumbnail' will be appended to the original filename. Returns: A message indicating the path where the thumbnail was saved, or an error message.
Detects faces in the specified image and returns their bounding boxes. Args: image_path: Path to the image to detect faces in. Returns: A message with the detected face bounding boxes or an error message.
Math tool descriptions are critically short (10-30 chars, below 20-char minimum). 'Adds two numbers together' provides no context for when to use this tool vs alternatives, no return type hint, and no error guidance (e.g., divide by zero).
No output schemas documented for any tool. LLMs cannot infer return types (e.g., blur returns string, divide returns float). Agents cannot plan downstream calls or extract structured data.
Error handling returns generic string messages without recovery guidance. E.g., 'Error creating thumbnail: [exception]' tells LLM nothing actionable. Should specify: is this retryable? Should user check file path? What's the next step?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
Divides the first number by the second.
Multiplies two numbers together.
Subtracts the second number from the first.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk profiles. create_thumbnail and blur are WRITE operations; detect_faces and math tools are READ_ONLY. Agents cannot reason about side effects or retry safety.
Parameter constraints not formalized in schema. blur's xmin/ymin/xmax/ymax should declare minimum: 0.0, maximum: 1.0 in JSON Schema, not just docstring. LLMs cannot parse docstring constraints reliably.