SECURITY

Designed to fail safely.

Content automation should make routine work faster without turning one malformed request into a damaged page.

01

Schema and API first

General entry previews require a recorded inspection of the exact collection/single type, nested schemas and REST contract. Unknown schemas and storage types are rejected.

02

Persisted previews

Generic writes bind the exact schema, target, revisions and payload to a persisted preview and idempotency key. Existing-entry updates require a separate opt-in.

03

Separate page protection

Legacy protected page edits still allow only patch/insert and retain their destructive-edit guards. Generic entry previews can explicitly replace schema-approved fields, components or references.

04

Results are fetched again

Writers verify intended fields, unchanged data, retained component identities and published versions. Unknown creation/upload outcomes are never blindly retried.

05

Linked locales and real assets

Translations use the same documentId and shared slugs by default. References are checked through actual API reads; media uploads use reviewed multipart requests and file hashes.

06

Visibility is explicit

Draft & Publish writes stay draft. Types without draft state and uploaded assets are immediately visible and require that visibility to be approved. No publish/delete tool is provided.

Credentials and local state

The local stdio process reads your Strapi API token from a private environment file. Credentials never belong in chat or MCP client configuration. No hosted MCP key is required. In-place previews store page snapshots in the private audit database; protect it like a content export.

Concurrency boundary

Revision checks and post-write verification do not make REST updates atomic. An external editor can save between the final GET and PUT; a Strapi-side conditional-write endpoint is required to prevent that race. Official MCP writes bypass this service’s preservation checks.

General entry/media tools are included in npm 0.3.0. API/WAF failures must be resolved through the legitimate API access path; never bypass challenges or silently fall back to browser/admin UI or shell writes.