Dojo Marketplace MCP server — browse, install, and publish marketplace items
Dojo Marketplace MCP shows moderate quality with complete tool registration and explicit Zod schemas for 7 out of 13 tools. Naming is consistently verb_noun and descriptive. However, critical gaps emerge: 6 tools (account tools, list operations) have NO visible input schemas despite being registered via server.tool(); parameter descriptions across all tools are minimal (5-30 chars), well below the 72-char baseline; output schemas are entirely undocumented; error handling is generic without recovery guidance; and tool composition suffers from redundancy (marketplace_detail vs marketplace_get_details). The server provides basic functionality but lacks LLM-optimized descriptions and structured output documentation needed for robust multi-step agent orchestration.
Deprecate a marketplace item so it is no longer available for installation
Get full details for a marketplace item by its slug, including description, installation instructions, config snippet, and version history
Get detailed information about a specific marketplace item
Get the authenticated user's marketplace profile
List all marketplace items purchased by the authenticated user
Get reviews for a specific marketplace item
6 tools lack visible input schemas (marketplace_get_profile, marketplace_get_purchases, marketplace_list_categories, marketplace_list_installed, plus 2 others). These are registered via server.tool() with async handlers but no Zod validation. Without schemas, LLMs cannot validate parameters or understand what inputs are required.
Parameter descriptions are uniformly short (5-30 characters) and lack context. E.g., 'Search term' for query, 'Filter by category' for category. Against the baseline of 72 chars per param and LLM-optimized guidance like 'Search term, use specific keywords (e.g., 'web scraper', 'data transform'). Leave empty to search all items.' Current descriptions do not explain when to use the parameter or what format/range is expected.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 50 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 57 | - | v1 |
Install a marketplace item by slug. Downloads the item ZIP, verifies integrity via SHA256, and extracts to the appropriate local directory (~/.claude/skills|plugins|tools/{slug}/). Returns config snippet and setup instructions.
List all available marketplace categories
List all currently installed marketplace items
Publish a new item to the Dojo marketplace
Search the Dojo marketplace for skills, plugins, and tools
Uninstall a previously installed marketplace item. Idempotent — re-uninstalling returns success.
Update an existing marketplace listing
No output schemas documented. Tools return JSON-serialized responses without stating the fields, types, or structure the LLM should expect. E.g., marketplace_search returns items but does not document item schema (id, name, category, version, downloads, etc.). This forces LLMs to infer structure and inhibits downstream tool chaining.
Tool naming redundancy and ambiguity. marketplace_detail and marketplace_get_details both exist, LLMs will waste reasoning cycles deciding which to call. marketplace_get_details expects itemId; marketplace_detail expects slug. This creates confusion. Also, marketplace_get_profile, marketplace_get_purchases, marketplace_list_installed are asymmetric in naming (get vs list).
Error handling is generic and non-actionable. Errors like 'Error searching marketplace: <message>' or 'Item not found: <id>' do not guide the LLM on recovery. No classification (retryable, user-fixable, fatal). No suggestions for alternative actions (e.g., 'Item not found. Try marketplace_search() to find available items').
Destructive and write operations (marketplace_publish, marketplace_deprecate, marketplace_install, marketplace_update_listing) lack confirmation or dry-run support. An agent could accidentally publish an item or deprecate it without explicit confirmation, risking data loss or service disruption. No undo mechanisms or rollback guidance.
Pagination and result limits not visible. marketplace_search accepts a limit parameter (1-100, default 10) but other tools (marketplace_list_categories, marketplace_list_installed) have no pagination. If category or installed lists grow large, responses will explode and exhaust context windows. No guidance on result capping or pagination patterns in tool descriptions.
Tool descriptions do not explain prerequisite state or dependencies. E.g., marketplace_install can install 'my-cool-skill', but no description explains what a 'slug' is, where to find it (marketplace_search), or how it differs from itemId. marketplace_deprecate states it 'deprecates' an item but does not explain whether the item is removed from search, uninstallable by new users, or both.