.env; until then the lane is live-but-unauthenticated and waits for you to connect it (set PENDPOST_MODE=mock to exercise it through the mock driver).
You own your Ghost site and are responsible for its terms of service. pendpost drafts and schedules, but a human approves before anything goes live.
Setup ceremony
The engine talks to the Admin API at<site>/ghost/api/admin. Authentication is a custom integration’s Admin API key, so there is no review.
- Record the site URL. Record the publication’s root URL, for example
https://blog.example.com. - Create a custom integration. In Ghost admin open Settings > Integrations > Add custom integration, name it (for example
pendpost), and save. Copy the Admin API key, the longid:secretpair. The Content API key is read-only and not enough.
Newsletter opt-in (optional). A post with “also send as newsletter” enabled emails your members on publish, via the first active newsletter. Ghost only sends that email on the draft-to-published transition, so the flag cannot be re-fired later.
Environment variables
A lane publishes only once its credential is present. If the Ghost variables are blank, the Ghost lane is live-but-unauthenticated and waits for you to connect it. Set
PENDPOST_MODE=mock to exercise it through the mock driver.Validate the lane
A present credential is not the same as a working one. After setup, validate the Ghost lane in the Setup tab, or run a live probe with thehealth_recheck tool, to confirm the credential is live and not just configured. The lane is ready when it reports live.
Over MCP. Setup and rotation are an interactive human ceremony; secrets are never written through MCP. An agent can still check status (
account_status), run a live liveness probe (health_recheck), and read non-secret config (config_get) over MCP without touching credentials.