Asset vault search and management system for game development. Hybrid semantic search across Unity, Fab, Quixel Megascans, Gumroad, and Cosmos marketplaces. Provides MCP server interface for Claude Desktop, Cursor, and other LLM clients.
Quartermaster has well-structured tool definitions with solid naming conventions and descriptions. Most tools follow the verb_noun pattern (search_owned_assets, get_asset_details, list_asset_categories, etc.). Descriptions are comprehensive and explain the 3-way hybrid search (FTS5 + BGE + CLIP) architecture clearly. However, several critical gaps reduce the score: (1) Parameter descriptions in the JSON schema are present but some are verbose without clear constraints; (2) Output schemas are not formally documented, tools return JSON strings without explicit field-level schema documentation; (3) Error handling guidance is minimal, no recovery suggestions or error categorization visible; (4) Some parameters like 'engine' and 'source' use free-form strings rather than enums, inviting invalid values; (5) The 'import_asset_to_project' tool is destructive (WRITE risk) but lacks confirmation/dry-run safety patterns. Naming is strong across all 9 tools. Descriptions average ~180 chars (within baseline range) but could be more prescriptive about constraints. Most tools have input schemas with types, but the output structure is inferred from code rather than formally specified in the tool registration.
Audit a game project directory to identify which owned assets are already imported and validate their integrity.
Full details for one owned asset: summary, usage notes, gallery/video links, store URL.
Given a game/feature description (e.g. 'third-person fantasy open world with magic combat and a village'), sweep the vault using 3-way hybrid search (FTS + BGE + CLIP) and recommend which owned packages fit which aspect of the problem.
Return aggregate statistics about the vault: total asset count, breakdown by source (Unity/Fab/Quixel/etc.), categories, local vs. cloud, total storage size.
Unpack and import a .unitypackage asset directly into a project directory, with optional demo file stripping.
List all categories and how many owned assets fall into each.
Free-form string parameters where enums are required. 'engine', 'source', 'pipeline', 'category' in search_owned_assets accept arbitrary strings instead of constrained enums (all|unity|unreal|godot, all|unity|fab|quixel|gumroad|cosmos, etc.). This invites hallucinated invalid values and forces LLMs to guess valid options.
No formal output schemas documented. All tools return json.dumps() without explicit field-level schema documentation in the tool registration. LLMs cannot reliably extract specific fields or plan downstream tool calls when output structure is inferred from code comments rather than formal schema.
Destructive operation (import_asset_to_project) lacks confirmation/dry-run safety. This WRITE-risk tool unpacks and imports assets directly without a confirmation step, confirmation_before_execute pattern, or dry-run mode. Agents can accidentally overwrite project files.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2026-07-28+ | v2 |
Return curated stack recipes from data/recipes.json: pre-validated collections of owned assets organized by game type/pipeline.
Search the user's asset vault across Unity, Fab, Quixel Megascans, Gumroad, and Cosmos. Hybrid: keyword (FTS5) fused with BGE text embeddings and CLIP visual vectors via 3-way RRF. Results include 'match' attribution ('keyword+semantic+vision') and 'ownership' ('vault_owned' vs 'catalog_grant').
Validate a proposed game development stack by checking asset compatibility, pipeline alignment, and identifying gaps.
No error handling guidance or recovery paths. Error responses visible only in code (e.g., get_asset_by_id returns {error: ...}) lack actionable recovery instructions. LLMs cannot determine if an error is retryable, user-fixable, or fatal, and receive no guidance on next steps.
Parameter validation constraints not documented. Numeric parameters (limit, limit_per_category) and path parameters (project_dir) lack min/max bounds or format constraints. LLMs may pass unbounded values (limit=999999) or invalid paths.
No pagination/offset support documented for list tools. list_asset_categories and list_stack_recipes return all results without pagination hints, risking context window overflow if vault is large. No cursor, offset, or next_page guidance.