Exact copy only
A campaign is immutable once created. Nothing is generated, rewritten or truncated on the agent's behalf.
root@poststeward:~$ man poststeward
One operation catalogue, reachable over remote MCP or plain HTTP, with the same execution rules and durable receipts on both. Browser WebMCP registers the same scoped operations on a connected workspace.
https://app.poststeward.com with your scoped agent token. The live operation reference includes local-runtime inspection and scheduling.The owner signs in, connects a publishing account, binds a project and issues a scoped token. Store that token in the agent's secret manager. Remote MCP uses a Bearer header; OAuth discovery is not required for this flow.
{
"mcpServers": {
"poststeward": {
"url": "https://app.poststeward.com/mcp",
"headers": { "Authorization": "Bearer <agent token>" }
}
}
}POST https://app.poststeward.com/api/operations/<operation>
Authorization: Bearer <agent token>
Content-Type: application/json
{ ...operation input }// Real connected workspace in a supported browser
const tools = await document.modelContext.getTools({ fromOrigins: [] });
const status = tools.find(tool => tool.name === "workspace_status");
// Execute only within the scopes granted to the signed-in actor.A token carries only the scopes you grant, plus an expiry. Recommended for publishing: read, campaign:write, publish, schedule. Grant billing, connections or automation only when those actions are intended.
readcampaign:writepublishscheduleconnectionsautomationbillingResolve destinations explicitly, store the exact approved text, validate, then publish or schedule. Every mutation uses an idempotency key. A publication call returns receipt IDs; the receipt is the authority on the result.
# 1 — resolve explicit destinations
POST https://app.poststeward.com/api/operations/projects_list
{}
# 2 — store exact approved text
POST https://app.poststeward.com/api/operations/campaign_create
{ "project":"product",
"text":{"product_x":"The exact approved update."},
"idempotencyKey":"campaign-2026-001" }
# 3 — dry-run routing and provider text rules
POST https://app.poststeward.com/api/operations/campaign_validate
{ "campaign":"<campaign id>" }
# 4 — publish once
POST https://app.poststeward.com/api/operations/publish_now
{ "campaign":"<campaign id>",
"idempotencyKey":"publish-2026-001" }POST https://app.poststeward.com/api/operations/schedule_create
{ "campaign":"<campaign id>",
"at":"2026-10-01T12:00:00Z",
"timezone":"UTC",
"idempotencyKey":"schedule-2026-001" }POST https://app.poststeward.com/api/operations/receipts_list
{ "limit":50 }
POST https://app.poststeward.com/api/operations/receipt_get
{ "delivery":"<delivery id>" }The catalogue is fixed. Each operation declares its required scope and consequence before it runs.
Safe to repeat unless otherwise noted.
workspace_statusInspect workspace, entitlement, limits and publication pause.
accounts_listRead verified account identities and binding versions. Credentials are never returned.
projects_listList project routing.
campaign_getInspect exact content and its immutable digest.
campaign_validateDry-run routing and provider text validation without publication.
receipt_getInspect provider evidence, status and reason for one delivery.
receipts_listRead delivery history. Unverified and ambiguous outcomes stay distinct from verified publication.
workspace_exportExport project, campaign and receipt records without credentials or payment tokens.
automation_inspectInspect profiles, source snapshots, decisions and pending automated deliveries.
billing_statusInspect confirmed paid-through access and payment method availability.
Mutations require an idempotencyKey. Reuse the same key and exact inputs when retrying transport.
project_putCreate or replace explicit project-to-account routing.
campaign_createStore immutable exact text per account alias. No copy is generated or truncated.
publish_nowReserve each delivery once and dispatch. Returns receipt IDs immediately; inspect receipts for the outcome.
schedule_createReserve exact immutable campaign content at an explicit time with UTC offset.
schedule_cancelCancel one unclaimed delivery. Reports already executing if dispatch won the race.
schedule_replaceAtomically replace an unclaimed reservation with a reviewed campaign.
metrics_captureCapture available provider metrics on demand. Unsupported metrics are reported as unavailable, never fabricated zeros.
publishing_pausePause or resume new workspace publication claims. In-flight effects may still finish.
account_disconnectRevoke a connection and block future unclaimed deliveries.
Configuration starts paused. Payment alone never starts posting.
automation_configureStore an explicitly reviewed source profile and exact approved templates.
automation_previewShow the next permitted allocation without storing inventory or schedules.
automation_enableStart bounded continuing authority for a reviewed profile.
automation_pausePause a profile and cancel unclaimed automated deliveries. Remains available after expiry.
Owner-approved source, context, accounts and limits are checked before recurrent work. Manual agent deliveries remain reviewed; standing authority does not grant agent model-spend consent.
autonomy_requestAsk the standing producer to fill an actual stock deficit using owner-selected sources and context. Reuses an existing durable request. Agent model spending still requires owner consent.
autonomy_listInspect standing project authority, stock request and editorial holds.
autonomy_configureOwner setup consent for recurring evidence-grounded preparation and paced publishing. Clean checks proceed without per-copy approval; existing manual deliveries remain unchanged.
autonomy_pauseOwner revocation of standing publishing and generation authority. Captured deliveries stop before further provider writes.
A checkout URL never grants access. Only verified server payment state does.
billing_quoteCreate an exact configured GBP workspace purchase quote.
billing_checkoutCreate or retrieve Stripe-hosted subscription checkout for an unexpired quote.
billing_portalOpen the hosted billing portal.
A campaign is immutable once created. Nothing is generated, rewritten or truncated on the agent's behalf.
Retry failed transport with the same key and same inputs. Never mint a fresh key to force a second attempt.
Publication and scheduling return receipt IDs, not outcomes. An ambiguous effect blocks blind repetition.
Cancellation clears an unclaimed reservation. It cannot withdraw an effect already in flight.
Under continuing operation, approved templates are the claim boundary. Monitored content supplies substitutions, never authority.
Admission rejection is not execution failure. Honour Retry-After; workspace and edge windows apply across MCP and HTTP.
A receipt is the authority on what happened. There is no promise of exactly-once execution at an external provider; PostSteward prevents blind repetition after uncertainty.
scheduledwaiting_containerexecutingpublished_verifiedpublished_unverifiedambiguous_effectdrift_blockedfailedcancelledTo recover safely, inspect the receipt and the provider account before acting. Never delete the ledger to enable a second attempt.
Connect your workspace’s own OpenAI or Cloudflare model account, select release evidence and approved audience/context, then inspect strategy and original channel drafts. Your selected customer account funds inference; PostSteward never supplies or delegates a shared company key.
Model checks assist review. Only the owner approves exact saved copy, and publication is a separate action. Local executors use reviewed copy export/import before local scheduling. Open release preparation or read the full preparation contract.
Manual agent deliveries require owner review of exact copy, account and time. Separately, the signed-in owner may configure bounded standing project authority; clean recurring work can then proceed without per-copy review while source, account, scope, spend and editorial checks hold. The owner may inspect and pause that authority. Payment alone never grants publishing permission.
Using a local executor? Read the installation and remote agent guide. Use the current 50-operation catalogue for hosted and local-executor operations.
Owner settings support Cloudflare Workers AI and OpenAI through prepaid Cloudflare AI Gateway Unified Billing, plus existing direct OpenAI. Choose a reviewed model, job/day budgets and optional fallback. Saving validates metadata without generating content or changing billing. Credits and provider charges belong to your account; PostSteward supplies no hidden company-funded fallback.
Live customer billing and human quality acceptance are pending. Check private model status and attempt evidence before relying on a route. Approval still creates exact reviewed copy for a separate delivery action.