Postdom runs as a Codex MCP server over stdio, using the published @postdom/mcp@0.3.0 package and a workspace key you create. Once connected, Codex reads workspace state and can submit a plan to publish supplied finished video to TikTok, Instagram Reels, YouTube Shorts, LinkedIn, Facebook Reels, X, Snapchat Spotlight, Threads and Bluesky. The command below was run against the released Codex CLI and is reproduced as it answered; the one step not exercised is substituting a real workspace key.
Codex registers MCP servers through its own command rather than a file you create. This is the invocation as it was run against the released CLI, which answered Added global MCP server 'postdom'.
A human creates the workspace and the key. Postdom shows the exact configuration once, at the moment the key is created. The key belongs in your Codex configuration, never in a chat message and never committed to a repository.
2
Register the server with codex mcp add
Run the command below. Codex answers "Added global MCP server 'postdom'." and writes the table into ~/.codex/config.toml. The package is @postdom/mcp@0.3.0 and it needs Node.js 22 or newer.
3
Put the operating brief in AGENTS.md
Add the operating brief to the project AGENTS.md file so the instructions load with the project rather than depending on someone remembering to paste them. The brief is an operating brief, not a setup prompt: copying it connects nothing on its own.
4
Verify with one call
Run codex mcp list to confirm postdom is registered, then ask Codex to call get_workspace_status. The listing shows the server and masks the environment values; the call is what confirms the key actually works.
5
Keep approval and reconciliation with a human
The human owns the account, the audience, consent, disclosures and the approval itself. Codex can prepare a bounded request and read the result. It cannot approve its own plan, widen policy, or turn its own confidence into permission to publish.
The connection exposes 13 tools. This list is checked against the tool registrations in the MCP server's own source, so the two cannot drift apart without failing a build. Each tool links to its own reference.
Postdom publishes supplied finished video to these destinations. It does not generate video, add networks it has not shipped, or make every feature inside a destination available.
Three failures account for most of them, and each has a different cause worth separating before you start changing the configuration.
The server is not listed after adding it
Run codex mcp list. A server that registered but cannot start still appears here, which separates a configuration problem from a connection problem. If nothing is listed, the add did not write to the configuration Codex is reading.
The tools are missing from the session
Check the Node.js version first: the package requires Node.js 22 or newer, and an older runtime fails before any tool is registered. Codex lists the server as enabled even when the underlying command cannot run, so a listing is not proof the process started.
Every call returns an authorization error
The server is reachable and the key is being rejected. Confirm the workspace key was copied whole. Postdom shows it once, so regenerate it rather than guessing at a truncated copy.
Run codex mcp list before you depend on the connection. It masks the environment values, so the listing confirms registration without printing your key.
What a successful call does not prove
This is the part most integrations leave out, and it is the part that decides whether you can trust your own logs.
A response is not a publication
An accepted or requires_approval response is not provider publication. A scheduled state is not publication either. Keep the returned post ID and read that same post through to a terminal per-destination outcome before you call it published.
A failure is not proof of nothing happening
A failed or partial state does not prove a destination never published, so it is not a licence to retry automatically. Reconcile each destination first; retrying a request where one destination already succeeded is how duplicates get made.
A missing metric is not a zero
When a platform does not report a value, Postdom keeps it unavailable with its reason attached and leaves it out of aggregates. null is not zero, and treating it as zero silently understates everything it touches.
An agent cannot approve itself
Codex can prepare a bounded request and interpret the result. The human owns credentials, connected accounts, policy, consent, audience and disclosures. Approval is enforced on the exact version and request that will be sent.
Questions before you connect Codex
Is Postdom a Codex MCP server?
Yes. Postdom publishes an MCP server exposing 13 tools. Codex connects to it over stdio using the published @postdom/mcp@0.3.0 package and a workspace key you create.
Where does Codex store the configuration?
In ~/.codex/config.toml, as an [mcp_servers.postdom] table. That file is Codex's general configuration and also carries your model, sandbox and feature settings, so let codex mcp add write it rather than pasting over the file.
What can Codex actually do once connected?
It can read workspace status, accounts, the brief and the digest; submit and read a plan; publish supplied finished video; and read publish outcomes and performance. Postdom does not generate video. You supply the finished file, and a human approves what goes out.
Does a successful publish call mean the video is live?
No. accepted, requires_approval and scheduled are workflow states, not provider publication. Keep the returned Postdom post ID and read that same post through to a terminal per-destination outcome before treating any destination as published, and before retrying anything.
What happens to metrics a platform does not report?
They stay unavailable, with the reason attached. Postdom does not substitute a zero for a missing observation: null is not zero, and an unavailable metric is excluded from aggregates rather than quietly dragging them down.