OxiDex MCP has 9 tools with reasonable naming (verb_noun pattern) and basic schemas, but critical gaps undermine quality. Tool descriptions are present but generic (avg ~80 chars, below 194-char baseline). Parameter descriptions are sparse or missing entirely, most params lack actionable guidance on format, constraints, or valid values. Output schemas are completely undocumented; LLMs cannot predict response structure. Error handling is absent, no recovery guidance, no categorization, no actionable messages. The server is STDIO-only, capping protocol readiness at 50. Overall, this is a D-grade server with functional definitions but insufficient LLM-optimization and missing production patterns.
Generate statistical summary of metadata
Copy metadata from source to destination file(s)
Detect file format and show supported metadata operations
Extract metadata from files (supports glob patterns like *.jpg)
Get detailed information about a specific metadata tag including description, data type, and examples
List all metadata tag groups (EXIF, XMP, IPTC, etc.) with tag counts and format support
List all available metadata tags, optionally filtered by group, format, or search term
Output schemas completely undocumented. LLMs cannot predict response structure, forcing them to guess at field names and types. This breaks tool chaining and wastes tokens on clarification.
Parameter descriptions missing or generic. 'filters' in search_metadata lacks format guidance (are these SQL-like? regex? key=value?). 'tags' in write_metadata has no type info. LLMs cannot construct valid calls without explicit constraints.
No error handling or recovery guidance. Tools fail silently or with generic errors. No distinction between retryable (network timeout) vs user-fixable (invalid path) vs fatal errors. Agents cannot self-correct.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
Search for files by metadata criteria
Write or update metadata tags (with dry-run support)
Tool descriptions are generic and under-optimized for LLM selection. 'Extract metadata from files' (50 chars) does not explain WHEN to use this vs analyze_metadata, or what format the output takes. Baseline is 194 chars.
Destructive operations (write_metadata, copy_metadata) lack dry-run confirmation or explicit state-change warnings in descriptions. Agents may accidentally overwrite metadata without understanding consequences.