Can Claude publish HTML without approval?
Writes wait for workspace-role permission and a stable requestId. publishHtml is sanitized; scripts are rejected.
WordPress MCP · safety architecture
Updates use expectedVersion. Writes wait for workspace-role permission and a stable requestId. restoreChange reverses a supported mutation when getChange says the resource is unchanged.
Last verified · September 17, 2026 · NotFair product team
The NotFair WordPress write contract
NotFair advertises 86 WordPress tools on the installed plugin. HTML is sanitized and does not execute scripts.
listSites returns explicit siteIds. Every website operation requires one.
getResource or readFile first. Updates pass expectedVersion.
publishHtml, media, posts, pages, and settings wait for a workspace role that can write.
publishHtml rejects executable scripts. Documents are standalone, not theme-wrapped.
getChange reports restore eligibility.
restoreChange reverses a supported mutation only if the resource has not changed since. Hooks are not rolled back.
Evidence table
| Control | What it protects against | What the operator sees |
|---|---|---|
| siteId routing | Editing the wrong website | Explicit siteId on every call |
| expectedVersion | Lost updates from stale reads | A version conflict instead of a silent overwrite |
| HTML sanitization | Script injection via publishHtml | Rejected executable scripts |
| restoreChange window | Claiming unlimited undo | Eligible only while the resource is unchanged |
Limits and honest boundaries
Writes wait for workspace-role permission and a stable requestId. publishHtml is sanitized; scripts are rejected.
When getChange says the resource is unchanged since the original mutation. External hook side effects are not undone.
No. MCP and SEO connections can be removed independently. Tokens are not rotated from the UI.
No. restoreChange is a WordPress plugin recovery tool, not Google Ads impact review.