Or give your agent one line and let it do all of this, ending with your first post: set up https://postwire.io/SKILL.md (read the skill).
| Scope | Path |
|---|---|
| Config it writes | ~/.codex/config.toml ([mcp_servers.postwire]) |
Run the command in your terminal. Codex notices that PostWire supports sign-in and opens the browser by itself.
Nothing to install — PostWire runs the server for you. The hosted server accepts an API key (an Authorization: Bearer header) or an OAuth 2.1 sign-in.
codex mcp add postwire --url https://postwire.io/api/mcp # only if the sign-in did not start by itself: codex mcp login postwire
Create a key in the dashboard (API & MCP), put it in POSTWIRE_API_KEY where the agent runs, and point the entry at the variable:
codex mcp add postwire --url https://postwire.io/api/mcp --bearer-token-env-var POSTWIRE_API_KEY
The same entry by hand, in ~/.codex/config.toml: [mcp_servers.postwire] with url = "https://postwire.io/api/mcp" (and bearer_token_env_var = "POSTWIRE_API_KEY" for the key).
Without a browser (CI, a remote box) the sign-in cannot finish. Use the API key instead, and pass the name of the environment variable with --bearer-token-env-var — not the key — so the key never lands in config.toml.
Run codex mcp list, or type /mcp inside Codex, and check that postwire is listed with its tools.
| Tool | What it does |
|---|---|
generate_posts | One prompt in, a native draft per network out — respecting each one's character limit, hashtag rules and link conventions. |
post_to_social | Publish to one or many networks in a single call. |
get_post_status | Check what happened to a post after it was accepted. |
list_platforms | Which networks are available and which need approval. |
my_account | Plan, usage and which brands are connected. |
schedule_post | Queue a post for a future time, up to 365 days ahead. Hosted server only. |
list_scheduled_posts | List queued, published, failed or canceled scheduled posts. Hosted server only. |
cancel_scheduled_post | Cancel a queued post before it goes out. Hosted server only. |
create_connect_link | A one-hour link the user opens to connect a social account. Hosted server only. |
A prompt like "write a launch post for our new feature and publish it to TikTok, LinkedIn and Bluesky" becomes two tool calls: one to draft a native version per network, one to publish.
Networks differ more than people expect — X caps at 280 characters against YouTube's 5,000, Reddit has no hashtags, and TikTok, YouTube and Instagram all refuse text-only posts. See what breaks between any two networks.
Nothing to try: one brand and 20 posts a month are free, no card — every network connects free, 2 per post. An agent posting daily passes that in a month — Starter is $9/month for 300 posts and three brands, Pro $29 for ten.
Get your key — free →Source for the OpenAI Codex config format: OpenAI Codex MCP docs. Using a different client? See all of them.