v2.0.3 — Mandatory rules baked into the MCP server itself
What changed
When operators connect to the librecrawl-mcp server without the local Claude Code skill installed (e.g. through a fresh Cursor/Codex/Windsurf install or directly via Claude Desktop's MCP config), their LLM previously had no visibility into the "always save zip locally + auto_cleanup=True + never report zip_path" rules. That mandate lived only in .claude/skills/librecrawl-audit/SKILL.md.
v2.0.3 fixes this by passing a 2,786-character instructions payload to FastMCP at server-init time. Every MCP-compatible client receives it during the initialize handshake and passes it to the LLM's system context.
Instructions payload covers
- 3-step audit workflow (start_chunked_audit → poll status → audit_zip)
- 3 mandatory rules for handling the zip response:
- Save locally: base64-decode
content_base64to a local file using thefilenamefield - Never report
zip_path: it's the REMOTE path, useless to the operator - auto_cleanup=True is mandatory
- Save locally: base64-decode
- 8-file zip contents reference
- Final response shape to mirror back to the user
Plus
librecrawl_audit_zip docstring rewritten to lead with the same 3 rules — visible to any LLM that reads the tool schema even if the server-level instructions are ignored.
Verified
Initialize handshake against brain.posimyth.com/librecrawl/mcp returns the instructions payload (length: 2,786 chars). The local skill at .claude/skills/librecrawl-audit/ remains as a developer-experience fallback but is no longer required for correctness.