Convert 2D map images (base64) to zipped 3D OBJ files using FastAPI and MCP.
Single tool with critical definition gaps. Tool name 'convert_map_tool_walls_only' is verbose and unclear (contains 'tool' redundantly). Input schema present but minimal: only base64_image with generic description lacking format/size constraints. Output is a plain string URL with no schema documentation. No parameter validation guidance, no error recovery hints, no mention of side effects (file writes to static/). Tool description (67 chars) is borderline adequate but lacks WHEN to use it, prerequisites, or output structure. No pagination, no structured response, no idempotent guarantees documented. Follows none of the 54 Agentic Tool Patterns for composition, error handling, or output shaping.
Convert 2D Map Image to 3D Wall-Only OBJ File URLs
Tool name is verbose and redundant ('convert_map_tool_walls_only' contains 'tool'). Should be 'convert_2d_map_to_3d' or 'generate_3d_walls_from_map'. Current name obscures intent.
Input parameter 'base64_image' lacks format constraints. Description does not specify: max size, expected image formats (PNG/JPG/etc), resolution requirements, or color space. LLM cannot validate input before calling.
Output is undocumented plain string (URL). No schema, no field descriptions. LLM does not know: is this a direct download URL? Does it expire? What format are the files? Should it be structured JSON with {url, expiry, file_count}?
Tool description (67 chars) lacks critical context: WHEN to use (vs other 3D conversion tools?), WHAT it returns (ZIP structure?), PREREQUISITES (image must be a floor plan?), and SIDE EFFECTS (files written to /static, cached by hash).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Error handling returns plain string errors like '[ERROR] Import error: ...' with no recovery guidance. LLM cannot determine: is this retryable? Should user provide different input? What's the next step?