A tool for downloading videos from Xiaohongshu (RedNote) and automatically uploading them to Instagram as reels
This server has significant definition quality issues. While most tools have descriptions and input schemas are visible, the descriptions are often too brief (10-30 chars), many parameters lack descriptions entirely, output schemas are undocumented, and there is no error recovery guidance. The server appears to expose authentication credentials and sensitive operations without safety mechanisms. Tool naming is mostly acceptable but some are overly generic ('extract_video_data', 'find_video_urls_in_*'). Parameter descriptions frequently missing or trivial. No pagination, no output schema documentation, no error categorization. This falls well below production baseline.
Convert video to Instagram-compatible format using ffmpeg
Create an authenticated Instagram client with retry logic and session management
Download a video from a URL (typically from Xiaohongshu) and save it to a local directory
Extract video URLs and caption from a Xiaohongshu page
Search through JSON structure for video URLs
Extract video URLs using regex patterns from text
Get random hashtags from tags.txt file
Process URLs from a file, downloading and uploading each video to Instagram
Output schemas completely undocumented. No tool documents what fields are returned, types, or structure. LLMs cannot plan downstream calls or extract results reliably. Baseline: 100% of A+ tools have documented return types.
Parameter descriptions missing or trivial (under 20 chars). Examples: 'debug' has description 'Enable debug mode' (20 chars, minimal); 'max_retries' described as 'Maximum number of retry attempts, default is 3' (44 chars, but no guidance on range/limits). Baseline: Average param annotation 72 chars for A+ tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 8 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 40 | - | v1 |
Resolve a short URL to get the final destination URL
Sanitize filename by removing special characters and hashtags
Upload a video as a reel to Instagram
Validate that a video file exists and is a valid video
No error recovery guidance. Tools provide no actionable errors. If upload_reel fails, LLM has no direction on what to try next. No categorization of retryable vs user-fixable vs fatal errors.
create_client tool exposes authentication as a tool. Credential management is leaking into the tool interface. This violates secret-injection pattern, credentials should be injected server-side, not exposed as parameters. Tool returns 'client' object which is likely an auth token or session, this should never be returned to the LLM context.
No permission gates on destructive operations. upload_reel and remove_url_from_file are high-impact (data loss risk) but no authorization or confirmation pattern is documented. No dry-run or preview capability.
Overly generic or ambiguous tool names. 'extract_video_data', 'extract_video_caption', 'find_video_urls_in_text', 'find_video_urls_in_json' are vague and don't clearly signal what they return or what action they take. 'extract' is passive, does it download, parse, or just identify? LLM reasoning suffers.
Duplicate or overlapping tool functionality. 'download_video_from_url' and 'download_video' appear to do the same thing with slightly different signatures. 'extract_video_data', 'find_video_urls_in_text', 'find_video_urls_in_json' all extract URLs, unclear which to use when. LLM wastes reasoning cycles.
No pagination support. No tools document limit/offset or pagination. If a URL file has 1000 entries, process_url_file only processes the first one (evident from code: 'Process the first URL in the file'), but this is not documented in the tool description.
Tool descriptions under 50 chars (too brief for LLM context). Examples: 'create_client' description is ~30 chars ('Create an authenticated Instagram client with retry logic'), 'validate_video' is ~40 chars ('Validate that the video file exists and is a valid video'). Baseline: avg 194 chars for A+ tools.
No idempotency guarantees. Tools like upload_reel and process_url_file can cause side effects but provide no mechanism for safe retries. If called twice with same input, will double-upload or double-process. No idempotent-operation pattern implemented.
No parameter validation constraints. 'num_tags' in get_random_hashtags has no min/max. 'max_retries' has no bounds. 'debug' flags on multiple tools could benefit from enum constraints. Baseline: A+ tools specify ranges for numeric params (e.g. page_size 1-100, days 1-365).