MCP Server for virtual try-on using Couchbase/Local and Replicate APIs. Provides tools for semantic search, image-based virtual try-on inference, and result management.
This server defines 2 tools with partial schema documentation and inconsistent description quality. Both tools have input schemas visible in the code, but descriptions vary significantly in clarity and completeness. The HTTP transport and custom C++ framework show intentional design, but critical issues around parameter validation, error handling guidance, and output schema documentation prevent a higher score. Schema compliance is moderate (both tools have typed parameters), but descriptions lack actionable detail for LLM tool selection. No tool annotations (readOnlyHint/destructiveHint) present despite one tool performing write operations.
Search for clothing items using semantic query. Converts query to embedding and searches against Couchbase vector index or local CSV dataset.
Perform virtual try-on using Replicate IDM-VTON model. Takes human image and garment image/description to generate a try-on result.
try_on tool name lacks clear action verb distinction. 'try_on' is colloquial; production tools use 'generate_try_on' or 'simulate_virtual_try_on' for clarity when multiple image manipulation tools exist.
No output schemas documented for either tool. LLMs cannot plan downstream actions or extract results without knowing the response structure. search_by_query likely returns an array of items with fields like id/name/url/price; try_on likely returns a result image URL and metadata.
try_on description uses vague 'generates a try-on result' without specifying output format. Does it return an image URL? A file path? Base64-encoded PNG? Metadata? LLMs cannot determine what to do with the response.
No error handling or recovery guidance documented. If search_by_query returns no results, or try_on fails due to invalid image, what should the LLM do? Current descriptions provide no actionable recovery path.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 50 | <=2025-11-25 | v2 |
try_on accepts both URL and file path for garm_img and human_img, but this constraint is not formalized in the schema. Parameter descriptions mention 'URL or file path' informally; should use pattern/enum constraints or explicit union type documentation.
search_by_query 'k' parameter (number of results) lacks min/max bounds and default. No indication of valid range (e.g., 1-50). LLMs may pass arbitrary large values, wasting tokens or hitting API limits.
try_on is marked as WRITE-risk but has no destructiveHint annotation in the schema. No idempotentHint declared. Current MCP spec (2026-07-28) encourages tool annotations for safe retry and composition decisions.
search_by_query description mentions 'Couchbase vector index or local CSV dataset' as implementation detail. This is internal architecture; the description should focus on what the LLM can do with it ('Returns clothing items matching your description') rather than how it works.