MCP server for accessing and downloading 3D assets from the Objaverse dataset
Three tools with basic schemas and descriptions, but significant gaps in parameter documentation, output schema clarity, and error handling guidance. Tool names follow verb_noun convention (sample_, get_, download_), but descriptions lack context on when to use each tool and what downstream operations require. Parameters have types but lack constraints, ranges, and format specifications. Output schemas are not formally documented. No error recovery guidance. Inferred tool definitions from test file rather than explicit MCP registration.
Download GLB files for specified Objaverse object UIDs to a target directory
Load annotations for specified Objaverse object UIDs
Sample UIDs from the Objaverse dataset with optional limit and seed for reproducibility
Output schemas not documented. Tools return complex dicts (cached_files, files, LICENSE_NOTICE) but LLMs cannot infer structure. Downstream tools cannot reliably extract returned IDs or references.
Parameter descriptions lack constraints and format specs. 'limit' has no min/max bounds (could accept 0 or 1M). 'seed' type is 'integer|null' but description does not explain null behavior. 'download_processes' lacks range guidance.
No error recovery guidance. Exception handlers return generic 'Failed to...' messages without actionable next steps. LLM cannot determine if error is retryable, user-fixable, or fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Tool definitions inferred from test file (tests/smoke_test.py) rather than explicit MCP server registration. No visible MCP server code, tool registration, or transport configuration. Cannot verify actual tool exposure.
Tool descriptions too generic and lack context. 'Sample UIDs from the Objaverse dataset' does not explain when to call this vs get_objaverse_annotations, or that it must precede annotation/download calls. Missing dependency hints.