PostAtom docs

Agents

PostAtom is building an MCP server and an installable skill, so an agent can post on someone's behalf without you writing the integration — and without it being able to do more than you intended. Neither is available yet. This page describes what they will do; until then, an agent can call the API directly with a key of its own.

The tools

Eight, not one per endpoint. A mechanical mapping of a REST surface gives a model thirty near-identical choices and it picks the wrong one; a small set with the constraints written into the descriptions gives it one obvious choice each time.

list_accounts
What the workspace can post to, with each account’s live limits.
publish_post
Publish or schedule to one or more accounts.
get_post
What happened, per destination.
list_scheduled
What is queued and has not gone out.
cancel_post
Cancel a scheduled post, per destination.
get_analytics
Normalized engagement, with how many platforms reported it.
list_conversations
Comment threads on the workspace’s posts.
reply
Answer publicly in a thread.

There is no direct-message tool. No platform offers a third-party messaging API a product could be built on, and a tool that works nowhere is worse than an absent one.

Two things that keep this safe

Start in the sandbox

Give an agent a test key, pn_test_…, first. An agent rehearsing a campaign should not reach a real timeline on its first attempt, and a sandbox key exercises the entire pipeline without one being possible.

Approval mode

A key scoped approval:required turns publishing into drafting: the post is held for a person to release, and nothing is queued until they do. The hold is in the API, not in a prompt, so it cannot be argued out of — and the key that drafted a post cannot approve it, which is what stops the arrangement being decoration.

What the skill tells an agent

The installed skill is instructions, not tooling: discover the accounts and their limits before composing, never report success from the publish response alone, never render an unreported metric as a zero, and say out loud that a reply is public before posting one. Those are the four ways an agent integration usually embarrasses its owner.

Using it as a library instead

The server takes a key and speaks to the ordinary API, so everything the API enforces is enforced for an agent too: scopes, rate limits, validation, and the approval hold. If you would rather call PostAtom directly, the TypeScript SDK is the same surface.

Every page here is generated from the code that runs. If a number on this site disagrees with the API, the build fails before it ships.