Memobird printer server with Model Context Protocol (MCP) support
Server implements 3 tools with basic parameter schemas but significant quality gaps. All tools have descriptions in Chinese, but they are extremely brief (10-15 characters each), below the 20-character minimum. Parameter descriptions exist but are minimal. Output schemas are not documented, tools return free-form strings without structured response definitions. No pagination support despite potential for large results. Error handling is present in code but responses are unstructured strings. Tool naming follows verb_noun convention (print_*), which is good, but parameter names lack type suffixes (e.g., 'url' should clarify it's a URL string, not an ID). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all three tools being destructive write operations. No evidence of input validation or actionable error messages in return values.
将图像打印到Memobird打印机
将文本打印到Memobird打印机
打印给定URL的内容
Tool descriptions are critically short (10-15 chars, e.g., '将文本打印到Memobird打印机'). Rubric baseline is 34-392 chars; descriptions under 20 chars cannot exceed 40 points. These descriptions provide no context for when/why LLMs should select each tool or how they differ from siblings.
No output schema documented for any tool. All three tools return a plain string (e.g., 'Text sent to printer successfully. Content ID: {content_id}'). LLMs cannot parse the content_id without structured schema. Baseline: 100% of A+ tools have documented return types.
All three tools perform irreversible write operations (printing) but lack confirmation/dry-run support or any destructiveHint annotation. Agents cannot safely preview what will be printed before committing.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 35 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 32 | - | v1 |
Error responses are unstructured strings (e.g., 'Error printing text: {e}'). No recovery guidance, error classification (retryable vs fatal), or actionable next steps. Baseline: errors must tell LLM what to do next.
Parameter 'image_path' accepts Base64, data URIs, and file paths but the description '图像路径或Base64字符串' (3 chars in English) does not specify format constraints. No regex pattern, length limits, or encoding rules documented.
Parameter descriptions are minimal (5-10 chars). '要打印的文本' translates to 'text to print', no guidance on length limits, character restrictions, formatting support (newlines, Unicode), or encoding.
Credentials (AK, device_id) are resolved at runtime from environment variables. While this is secure (not exposed as params), there is no documentation of what those env var names are or how to set them. Memobird API key exposure is a risk if error messages echo them.
No pagination, rate limiting, or result caps. If print_url fetches a very large web page, there's no documented limit on response size or memory usage.