MCP server for Rokid glasses and phone devices, providing tools to display text, capture photos, and get device status
Three tools with basic schemas and minimal descriptions. All tools have input schemas with typed parameters, but descriptions are generic (10-30 chars) and lack context for LLM selection. No output schemas documented. Missing parameter descriptions for most fields. No error handling guidance. No tool annotations (readOnlyHint/destructiveHint). Naming is verb-based but descriptions do not explain WHEN to use each tool or what distinguishes them. Schemas present but sparse, no enums, ranges, or constraints. This is typical of early-stage MCP servers.
Capture a photo from a Rokid device camera
Display text on a Rokid device screen
Get the current status of a Rokid device
Descriptions are too short (10-30 chars) and lack context. 'Get the current status of a Rokid device' does not explain what status fields are returned, when to call this vs other tools, or what the LLM should do with the result.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields without knowing what get_device_status returns (e.g., battery, connectivity, temperature).
Parameter 'quality' in capture_photo lacks enum constraint. Description says 'e.g., high, medium, low' but does not enforce these as the only valid options. LLMs may hallucinate values like 'ultra' or 'best'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Missing tool annotations. display_text is destructive (modifies device state) and capture_photo is read-only, but no destructiveHint or readOnlyHint provided. Agents cannot reason about side effects.
No error handling guidance. If deviceId is invalid or device is offline, what error does the tool return? How should the LLM recover? No recovery hints provided.