MCP server for differential analysis of the public Compose Material 3 API across three platforms: mobile (androidx.compose.material3:material3), Android TV (androidx.tv:tv-material) and Wear OS (androidx.wear.compose:compose-material3)
Five tools with complete input schemas and descriptions. All tools follow verb_noun naming (compare_, inspect_, check_, suggest_, list_). Descriptions are substantive (100-200 chars), explaining WHAT the tool does and WHEN to use it. Parameters are typed and described. However, output schemas are not documented in the visible code, handlers return text/markdown via textResult() with no structured schema declaration. Error handling is present but generic (errResult() returns plain text). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being READ_ONLY. Missing pagination guidance for potentially large results (e.g., compare_material3_versions with many breaking changes).
Checks a list of symbols (function/method/field names) for deprecation in the given version on the selected platform (mobile/tv/wear).
Compares two versions of Compose Material 3 on the selected platform (mobile: androidx.compose.material3:material3 / tv: androidx.tv:tv-material / wear: androidx.wear.compose:compose-material3) and returns a differential report on the public API, classified by severity (BREAKING / NON_BREAKING / WARNING). platform defaults to 'mobile' — backward compatible with calls that omit this parameter.
Returns the full signature of the given component (class, *Kt file, object) for a specific version on the selected platform (mobile/tv/wear): methods, fields, annotations, deprecation status.
Returns the list of platforms this server serves (mobile/tv/wear), along with their Maven coordinates — call this before the other tools if you're unsure of the exact platform value or artifact.
Takes a Kotlin code snippet and, based on the diff between current_version and target_version on the selected platform (mobile/tv/wear), suggests the concrete edits needed for the code to compile against the target version.
Output schemas not documented. Handlers return text/markdown via textResult() with no structured schema declaration. LLMs cannot plan downstream operations or extract typed fields.
Tool annotations missing. All tools are READ_ONLY but lack readOnlyHint annotation. Agents cannot distinguish safe tools from destructive ones without explicit hints.
Error responses are plain text without recovery guidance. errResult() returns unstructured messages like 'failed to compare versions' with no actionable next steps for the LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
No pagination or result limits documented. compare_material3_versions and inspect_component_api could return large diffs/signatures without guidance on limiting output or handling overflow.
Parameter 'platform' uses omitempty with default 'mobile' but no enum constraint. LLMs may hallucinate invalid platform values (e.g., 'android', 'desktop') instead of picking from {mobile, tv, wear}.