root@poststeward:~$ agent init

Four steps to give an agent publishing access

You keep account access and approval. The agent gets a scoped token, a fixed operation catalogue and a receipt for every attempt.

[SHOWCASE] These are the real setup steps and request shapes. The public showcase does not accept provider credentials or mint a live token.
  1. [01]

    Connect a publishing account

    Sign in to the workspace and connect X, Threads or LinkedIn with authorised credentials. Identity is verified at connection time, so the agent never guesses which account it is posting to. X requires your own funded developer application.

  2. [02]

    Bind a project

    A project groups the accounts an agent is allowed to use and gives each one a stable alias. The agent references the alias, not raw credentials.

  3. [03]

    Issue a scoped agent token

    Create a token limited to the operations the agent needs, with an expiry. The token is shown once. Give it to the agent as a Bearer credential over remote MCP or plain HTTP.

    ┌─ MCP client configuration
    {
      "mcpServers": {
        "poststeward": {
          "url": "<POSTSTEWARD_SERVICE_ORIGIN>/mcp",
          "headers": { "Authorization": "Bearer <agent token>" }
        }
      }
    }
  4. [04]

    Publish, then read the receipt

    The agent submits exact copy as an immutable campaign, validates it, then publishes now or on an explicit schedule. Every attempt returns a durable receipt the agent must read instead of retrying blindly.

    ┌─ Create and publish
    curl -X POST <POSTSTEWARD_SERVICE_ORIGIN>/api/operations/campaign_create \
      -H "Authorization: Bearer <agent token>" \
      -H "Content-Type: application/json" \
      -d '{
        "project":"<project id>",
        "text":{"<account alias>":"The exact text to publish."},
        "idempotencyKey":"campaign-001"
      }'
    
    curl -X POST <POSTSTEWARD_SERVICE_ORIGIN>/api/operations/publish_now \
      -H "Authorization: Bearer <agent token>" \
      -H "Content-Type: application/json" \
      -d '{"campaign":"<campaign id>","idempotencyKey":"publish-001"}'

Check the result

Receipts record the delivery status, the verified account and the published link when the provider confirms one. An uncertain result stays uncertain until it is resolved; the agent must not repeat the call.

┌─ List receipts
POST <POSTSTEWARD_SERVICE_ORIGIN>/api/operations/receipts_list
{ "limit": 50 }

POST <POSTSTEWARD_SERVICE_ORIGIN>/api/operations/receipt_get
{ "delivery": "<delivery id>" }