MCP Server for Onskeskyen/GoWish API that exposes wishlist management tools for LLM interaction via Claude Code integration
The server defines 6 tools with basic structure, but significant gaps in schema completeness, parameter documentation, and error handling guidance. Tool names follow verb_noun convention (get_*, add_*) which is good. However, most parameter descriptions are minimal (10-30 chars), and output schemas are not explicitly documented. The codebase shows authentication is handled server-side (good security practice), but tools lack details on when they fail, what errors to expect, and how to recover. This is a community-grade server with working tools but production-gap deficiencies.
Add a new item to a wishlist
Get product metadata from URL
Get the current user's profile information
Get details of a specific wishlist
Get items from a specific wishlist
Get all user wishlists with pagination
Output schemas not documented for any tool. Tools return structured data (dicts/lists of objects) but the response schema is not declared in the tool definition or docstring. LLMs cannot plan downstream operations without knowing what fields to expect.
Parameter descriptions are minimal (10 - 30 chars) and lack context. Examples: 'The ID of the wishlist' appears verbatim for wishlist_id in three tools, with no hint about where the ID comes from or how to obtain it. 'Optional title' in add_wishlist_item does not explain validation (length, special characters, uniqueness).
No error recovery guidance. None of the 6 tools document what errors can occur (e.g., authentication failure, wishlist not found, invalid URL for metadata fetch) or what the LLM should do next (retry, ask user, call a lookup tool).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 53 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 56 | - | v1 |
add_wishlist_item (WRITE tool) lacks state-change safety language. No disclaimer that the tool creates new items, no mention of duplicate handling, no dry-run option, no confirmation step. Agents cannot reason about idempotency or rollback.
Pagination is present (limit/cursor on get_wishlists and get_wishlist_items) but incompletely specified. No total_count or has_more flag is documented, so agents cannot know when pagination is exhausted or plan loop termination.
Tool composition unclear. get_wishlist_details and get_wishlists may return overlapping data (both describe a wishlist), but the distinction is not documented. Agents cannot reason about when to call each.
country_code parameter in get_product_metadata lacks format specification. Is it ISO-3166-1 alpha-2 (DK) or alpha-3 (DNK) or numeric? Description does not clarify, leaving agents to guess.