MCP server providing access to the Upbound Marketplace APIs for searching packages, retrieving metadata, assets, repositories, and package version resources
The Upbound Marketplace MCP server defines 8 read-only tools with consistent naming (verb_noun pattern: search_, get_) and complete input schemas. All tools have descriptions and parameters are typed. However, descriptions are generic and lack LLM-optimization; output schemas are undocumented; error handling guidance is absent; and parameter descriptions fail to distinguish between similar tools or provide actionable constraints. The server follows basic patterns but lacks production-grade refinement expected of A/B-tier tools.
Get assets (documentation, icons, release notes, etc.) for a specific package version
Get detailed metadata for a specific package
Get package version composition resources for a supplied group, kind and version and composition.
Get package version examples for a supplied group, kind and version.
Get package version resources for a supplied group, kind and version.
Get package version resources for a supplied repository name.
Output schemas completely undocumented. Users and LLMs cannot infer what each tool returns or plan downstream calls.
Descriptions lack LLM-optimization. Average length ~55 chars, well below the 10-1024 range baseline. Generic phrasing ('Get...') does not explain when to call vs related tools or what the LLM should expect.
Similar tools (get_package_version_resources, get_package_version_composition_resources, get_package_version_groupkind_resources) are not differentiated by description. LLM cannot reason about when to select one vs another.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | D | 58 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 56 | - | v1 |
Get repositories for an account
Search for packages in the Upbound Marketplace. All provided filters are combined with AND.
Parameter descriptions are boilerplate ('For example upbound', 'For example provider-aws-s3'). No guidance on constraints (length, format, case sensitivity), valid ranges, or dependencies between params.
Pagination (size, page) and filtering (family, tier, account_name) documented in search_packages but no guidance on result limits, total counts, or next_cursor availability. LLMs may assume unbounded results.
No error handling guidance. Tools do not document recovery paths (e.g., 'If version not found, call search_packages()'), retryability, or expected error codes.
Undocumented API versioning. Tools accept use_v1 boolean parameter but do not explain differences, deprecation timeline, or migration guidance. LLMs cannot reason about when to use v1 vs v2.