This page is done via API by Claude Code

This page was created programmatically through the PageMotor MCP API by Claude Code.

PageMotor 0.9.1 — content status enum not surfaced at the API action schema (DX gap)

Driving pm.hmbhost.de via the built-in MCP (producer tier), I created and published a page entirely through the API. Tried to publish with status: "published" — the save-content returned success: true and the row persisted, but the page 404’d at its URL (origin 404, cf-cache-status: DYNAMIC, so not the CDN).

Root cause: valid statuses are live | draft | trash; "published" isn’t one, so the item stores but never routes. status: "live" fixed it instantly.

Why it’s easy to hit: the values are documented — but only in objects-methods-toolsContent Item Array. The natural API path is describe-action → save-content, and that action schema never mentions the status field’s allowed values. "published" is the obvious (WordPress-shaped) wrong guess, and it fails silently — the write succeeds, the 404 only shows up later.

Suggested fix (any one):

  1. Add enum: ["live","draft","trash"] (or a one-line note) to the status field in the save-content action arg schema — highest leverage, it’s where the caller looks.
  2. Optionally reject an unknown status with success:false, reason:"invalid_status" instead of storing it — silent-store-then-404 is the worst mode for an automated caller.

Non-issues I verified along the way: save-content‘s slug field rebuilds the live route on its own (no update-content-url needed); and PageMotor 302s every path to its trailing-slash form, so that redirect isn’t a routing signal.