Reject request bodies above 16 MiB with 413 before allocating, stopping an unauthenticated Content-Length OOM (vec![0u8; len]). Add an optional, default-off OBSCURA_MCP_ALLOWED_ORIGINS allowlist; unset keeps the permissive default so issue #175 hosted dashboards are unaffected.