Write and schedule
Drafts posts, gives each platform its own text, and schedules them for any date and time.
OpenAI Agents SDK + PostNinja
Building a marketing agent? Point the OpenAI Agents SDK at PostNinja's MCP server and your agent can list accounts, schedule posts and check results across 7 platforms, without you writing a single platform integration.
Setup
In PostNinja, go to Settings → API and create a key. It starts with pn_ and is shown once, so copy it somewhere safe.
Install openai-agents, set POSTNINJA_API_KEY, and connect over Streamable HTTP:
import os
from agents import Agent, Runner
from agents.mcp import MCPServerStreamableHttp
async with MCPServerStreamableHttp(
name="PostNinja",
params={
"url": "https://postninja.app/api/mcp",
"headers": {"Authorization": f"Bearer {os.environ['POSTNINJA_API_KEY']}"},
},
cache_tools_list=True,
) as postninja:
agent = Agent(name="Social", instructions="You schedule social posts.", mcp_servers=[postninja])
result = await Runner.run(agent, "Schedule a post about our launch for tomorrow 9am on X.")OpenAI Agents SDK finds the PostNinja tools on its own. Try:
Tools
Drafts posts, gives each platform its own text, and schedules them for any date and time.
Builds multi-post X threads and posts photos or videos as Instagram Stories.
Lists upcoming posts, drafts and what went out, with links to the live posts.
Moves, edits or deletes drafts and scheduled posts when plans change.
Uploads images to attach to posts. Larger files and video go through the REST API.
Reads each account's status and error, so it can tell you what didn't go out and why.
Connect your accounts in PostNinja once. From then on OpenAI Agents SDK can post to any of them, and PostNinja publishes at the time you set.
FAQ
No. PostNinja handles the platform APIs, logins, media uploads and rate limits. Your agent only talks to one MCP server.
That depends on OpenAI Agents SDK's own settings; most ask before each tool call. If you'd rather review everything, ask it to save posts as drafts, then schedule them from the PostNinja calendar.
PostNinja only stores a hash of each key and shows its first characters so you can tell keys apart. A key works for one workspace, and you can revoke it any time under Settings → API.
Every account you've connected: X, Instagram, Threads, Facebook Pages, TikTok, YouTube Shorts and Pinterest.
No. They're ordinary posts on your plan. As always, X posts use credits (10 each, 80 with a link) because X charges for every post; other platforms are unlimited.
Connect OpenAI Agents SDK to PostNinja in a couple of minutes. Plans from $15 a month.