A command-line tool acting as an MCP (ModelContextProtocol) server, using Playwright to crawl web content for AI models.
The server defines only 1 tool (get-xhs-post) with a basic but incomplete definition. The tool name uses a valid action verb (get_) and is reasonably specific. The description (72 chars) is present but lacks context about prerequisites, return structure, and error recovery. The input schema is visible and has proper typing (shareLink: string), but the parameter description is minimal and does not explain format/constraints. The tool's implementation shows error handling for invalid URLs and missing directories, but these recovery paths are not documented in the tool description, forcing the LLM to guess at failure modes. No output schema is documented in the tool definition, despite the code defining XhsPostSchema internally. The tool is READ_ONLY (correct annotation in metadata), but this is not declared in the MCP tool definition itself. The server lacks pagination, batch operations, and structured output documentation visible to the LLM. Overall, this is a minimal, domain-specific tool that works but would not pass a production code review due to incomplete documentation and lack of error guidance.
Get post content, images, and download videos from Xiaohongshu (Xiaohongshu/小红书) by shark link
No output schema documented in tool definition. The code defines XhsPostSchema (with success, url, title, description, images, downloadedVideoPaths, error, debugInfo fields) but this structure is never exposed to the LLM via the tool definition. LLMs cannot predict what fields to expect or how to chain this tool to others.
Parameter description for 'shareLink' is 50 chars but lacks format/constraint details. Does it accept shortened URLs, full URLs, or only app-share links? What happens if the link is expired or invalid? No guidance for recovery.
Tool description (72 chars) does not explain error cases, prerequisites, or recovery paths. The code handles 'Invalid Xiaohongshu share link' and directory creation errors, but these are not documented in the tool description. LLMs cannot self-correct on failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 44 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
No documentation of the --download-folder command-line requirement. The tool description does not mention that a download directory must be configured at server startup, or that videos will be saved locally. This is implicit in the implementation but invisible to the LLM.
Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are not declared in the MCP tool definition. The Risk metadata shows READ_ONLY, but this is not exposed via tool capabilities.