Xiaohongshu content research
This Skill composes the generic drissionpage-mcp tools for content research.
The MCP host executes the tool calls; the Markdown Skill itself does not access
the browser or network. It does not log in, bypass a captcha, defeat a safety
page, or submit likes, comments, follows, messages, or purchases. Use it only
for content that the operator is authorized to inspect.
Stop conditions
Stop before navigation when the target is not authorized or its robots policy does not permit the requested access. Stop when the site requests login, verification, captcha interaction, or an anti-bot challenge that is not an explicitly authorized test fixture. Do not retry a safety page or rotate identities, proxies, headers, or user agents to evade a restriction.
The public Xiaohongshu site may return a safety restriction page or error code
300012. Treat that as a product boundary, not as a selector or timeout bug.
Use the local social-notes playground case for deterministic integration
tests without contacting Xiaohongshu.
Bounded read-only sequence
- Confirm the URL, authorization, robots policy, and a small request budget.
- Call
page_navigateonce, thenpage_observeorpage_snapshot. - If a search form is visibly available, use
element_findandelement_type; verify the input value withelement_get_propertybefore one explicit submit click. Do not submit more than the operator requested. - Use
element_find_allfor note cards and extract only bounded visible fields such as title, author label, link, and visible text excerpt. - Open at most the requested number of detail links with
page_navigateornew_tab=true. Re-observe each page before reading it. - Verify each result with
element_get_text,element_get_attribute, orpage_snapshot. Record missing, gated, or truncated fields as unknown. - Close additional tabs and return a source URL, collection count, and the exact stop reason for any skipped item.
Local playground validation
Run the deterministic fixture from the repository root:
DP_HEADLESS=1 python playground/run_mcp_lab.py --case social-notes --json
The fixture validates a mobile feed, three note cards, a search control, and a
detail route without public-site traffic. For MCP client testing, start the
server from a built release package and pass its interpreter with --command.
Evidence and privacy
Keep collection bounded and avoid passwords, cookies, storage values, private messages, phone numbers, or other personal data. Do not place raw private content in logs or generated reports. Prefer title/author/link/excerpt fields, state the timestamp and URL, and preserve uncertainty when content is hidden or changed between observations.