Local desktop shell for 看看收藏 (Xiaohongshu collection management)
This server has 36 tools with highly inconsistent quality. Most tools lack proper input schemas, many have empty objects {} or minimal property definitions. Descriptions are present but often generic (10-50 chars). No tool has documented output schemas. Parameter descriptions are sparse or missing entirely. The server mixes utility functions (formatNumber, formatDate) with stateful operations (deleteStoredNote, saveDeskWorkspace) without clear separation. No error handling guidance, no recovery patterns, and no security annotations. This is a typical community server with functional tools but poor LLM-readiness.
Check if drag event types are acceptable for note import
Apply category updates to notes
Get the category name for a desk group
Connect to a local agent (codex or claude)
Create a new custom desk group
Delete a stored note by ID
Check if desk workspace has any content or assignments
Ensure desk workspace state is valid and complete
36 tools with empty or minimal input schemas. Tools like getNotes, getNotesRevision, getLocalServiceHealth have {} as input, providing zero guidance to LLMs about what parameters are accepted or required.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., what does getNotes() return? Is it an array? Does each note have id, title, content?). This forces agents to guess structure.
Descriptions are generic and under 60 characters for most tools (e.g., 'Fetch all stored notes from the local API' is 44 chars). Rubric baseline is 194 chars average. No guidance on WHEN to use each tool, prerequisites, or what happens on error.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Format a date for display relative to now (e.g., '今天', '3天前')
Format a time value in seconds to HH:MM:SS or MM:SS format
Format a number for display (e.g., 10000 -> '1.0w')
Calculate the number of columns for desk group layout based on viewport width
Retrieve the desk workspace configuration including groups and note assignments
Calculate auto-scroll velocity based on pointer position during drag
Calculate the center X position for expanded grid layout
Check the health status of the local API service
Retrieve local setup information including extension availability and agent configuration
Fetch all stored notes from the local API
Get all notes assigned to a specific group
Get the revision identifier for the current notes collection
Import a shared note from a URL or payload
Infer the category of a note based on its content using pattern matching rules
Move a single note to a different group
Move multiple notes to a different group
Open the browser extension setup dialog
Paginate plain text by character limit
Paginate video transcript segments by time duration
Parse dragged card input to extract note ID and metadata
Rename an existing desk group
Reorder desk groups by moving one before another
Resolve the category for a stored note, using stored value or inferring if needed
Save the desk workspace configuration
Select the appropriate note input from drag event data
Determine if lightweight canvas rendering should be used based on note count
Remove duplicate tag suffixes from note content
Update the categories for multiple notes
Destructive tool deleteStoredNote lacks confirmation or dry-run pattern. No error recovery guidance. LLMs may delete notes without understanding consequences or how to undo.
No error handling or recovery patterns documented. Tools return no guidance on retryability, user-fixable errors, or next steps on failure. LLMs cannot self-correct or escalate intelligently.