Official integration · Model Context Protocol
The social media scheduler built for AI agents
Best-time-to-post data and scheduler health checks, exposed as agent tools. Powered by an official MCP server, agents can schedule and publish to X, Bluesky, Mastodon, Pixelfed, Telegram, Tumblr, WordPress, Ghost, DEV, Whop, Buttondown, TikTok, LinkedIn, and Threads. Instagram is coming soon. read engagement analytics, run the SEO and GEO tools, and verify scheduler health: all without API keys, on a browser sign-in. Tell your agent “queue this week’s posts at my best times” and it can actually do it.
› Queue this week’s launch posts on X at my best times
● Calling get_optimal_times…
↳ Your audience peaks Tue 18:40 and Thu 12:10
● Calling schedule_post ×2…
✓ Scheduled “Launch day: it’s live” → X · Tue 18:40
✓ Scheduled “48h in: what we learned” → X · Thu 12:10
Done, both posts are queued at your engagement peaks.
What can you ask your agent?
Once connected, these are real requests your agent can fulfill end-to-end: every action authenticated and scoped to your account.
“Schedule these 5 captions on X at my optimal times this week.”
“Write 5 posts for next week (you draft the copy) and schedule them at my peak hours.”
“Verify my posts published overnight and alert me if any failed.”
“What was my engagement last month? Which post performed best?”
“Cancel everything scheduled for Friday. We are pushing the launch.”
“Draft a caption for this post and publish it to X right now.”
“Are all my social accounts still connected, or do any tokens need a refresh?”
“Is the scheduler healthy? Did anything fail to publish overnight?”
Planning a week with an agent
The recommended workflow when an agent plans a batch of posts: read the best-time data first, then schedule around it. Never queue a week at arbitrary times.
- 1
Call
get_optimal_timesto read the account’s own top slots: computed from its real engagement history, not industry averages. Use these as the schedule skeleton. - 2
Assign each planned post to one of the recommended slots (spread across days, avoid clustering), then create them with
schedule_postusing future ISO timestamps. - 3
The next morning, call
scheduler_statusandlist_poststo confirm everything published, and surface anything that failed.
Connect in 30 seconds
One URL, a browser sign-in, done: no API keys, nothing to install.
Why this matters
Most tools require API keys plus server configuration before an agent can do anything. TimeToPost MCP opens a browser, you authorize once, and your agent can start scheduling immediately: the simplest MCP integration available for social media.
Hosted server with browser login
Claude Code (CLI)
claude mcp add --transport http timetopost https://api.timetopost.co/mcpClaude Desktop / Claude.ai
Settings → Connectors → Add custom connector → paste https://api.timetopost.co/mcp
Cursor & other MCP clients
{
"mcpServers": {
"timetopost": { "url": "https://api.timetopost.co/mcp" }
}
}First use opens your browser: enter your TimeToPost email, type the 6-digit code we send you, click Approve access. Connected. Revoke anytime from Dashboard → Settings → API.
Step-by-step guides by client
- Claude Code: One CLI command, or the installable skill.
- ChatGPT: Add the endpoint as a custom MCP server.
- Cursor: A mcp.json entry, hosted or via npx.
- Gemini CLI: settings.json with httpUrl, or gemini mcp add.
- Codex: A config.toml block and codex mcp login.
Ask your agent to schedule a post
Once connected, try: “Schedule this caption for X at my best time tomorrow.” Your agent will call get_optimal_times and schedule_post for you.
The server is a thin adapter over the public TimeToPost REST API. Every tool call is authenticated, org-scoped and validated by the backend, identically to the web app.
Tool reference
All 73 tools, exactly as your agent sees them. Full parameter docs live in the MCP documentation, and the REST equivalents are documented in OpenAPI at api.timetopost.co/docs.
| Tool | What it does |
|---|---|
| whoami | Return the authenticated user and active organization. |
| get_capabilities | Return the authoritative product, lifecycle, platform, approval, and connection capability map. |
| list_integrations | List connected social and publishing accounts with their connection health. |
| list_posts | List posts for the active organization, optionally filtered by status. |
| get_post | Fetch one post, including status, schedule, media, platform data, and publish results. |
| schedule_post | Create a draft or schedule a post. Omit scheduledAt to keep it as a draft. |
| publish_post | Publish an existing post immediately. |
| cancel_post | Cancel or delete a scheduled post before it fires. |
| get_engagement_summary | Read aggregate engagement across published posts. |
| get_optimal_times | Read best posting times computed from the account’s own engagement history. |
| build_campaign_urls | Build campaign tracking URLs for shared links. |
| calculate_engagement | Calculate engagement rate from post metrics. |
| scheduler_status | Check background scheduler health, last tick, and recent failures. |
| create_digest_drafts | Create idempotent engine drafts for an artifact. Kept for existing integrations. |
| create_drafts | Create generic multi-platform drafts that always wait for human approval. |
| list_drafts | List engine-submitted drafts by status and brand tag. |
| approve_draft | Approve and schedule a pending draft after human review. |
| reject_draft | Reject a pending draft with an optional reason. |
| list_approvals | Read the unified approvals rail across posts, trends, build-in-public, and DMs. |
| publish_thread | Publish or schedule an X thread from ordered segments. |
| get_post_metrics | Read per-post metrics such as impressions, likes, comments, clicks, and engagement rate. |
| list_brands | List brand or niche tags used for per-play attribution. |
| get_engagement_by_tag | Read engagement rollups for a brand or niche tag. |
| build_in_public_connect_link | Generate a short-lived GitHub authorization link for Build-in-Public. |
| build_in_public_status | Read Build-in-Public GitHub connection and latest draft status. |
| autoseo_connect_site | Connect a site to AutoSEO with hosted, webhook, WordPress, or git-based publishing. |
| autoseo_integration_kit | Return the code and install instructions an AI agent uses to add an AutoSEO endpoint. |
| autoseo_verify_site | Re-run the capability probe for a connected AutoSEO site. |
| autoseo_list_sites | List connected AutoSEO sites and their health. |
| autoseo_configure | Configure topics, cadence, backlinks, image style, approvals, and social repurposing. |
| autoseo_auto_configure | Auto-propose topics, save safe defaults, and optionally queue the first article draft. |
| autoseo_propose_topics | Propose question-shaped topics for a connected site. |
| autoseo_mine_questions | Mine and rank the real questions people ask (search boxes, forums, Search Console) for a connected site. |
| autoseo_generate_post | Generate one approval-gated AutoSEO article draft. |
| autoseo_import_article | Import one finished, pre-reviewed article and schedule it at a chosen time; no AI generation, review, or cadence cap, deduped by slug. |
| autoseo_import_batch | Import up to 50 finished articles for one site in one call, with a per-article result. |
| read_article_draft | Read the original and current AutoSEO draft, sources, factual review, and lifecycle state. |
| edit_article_draft | Edit an AutoSEO draft before publication; editing invalidates its previous factual review. |
| review_article_draft | Run the mandatory source-backed factual review and hold unsupported or contradicted claims for user review. |
| list_articles | List AutoSEO articles and drafts for the active organization with lifecycle and review status. |
| get_article | Read one AutoSEO article, including content, sources, factual review, and publication state. |
| update_article | Update a published AutoSEO article through hosted, webhook, or WordPress REST publishing; git PR updates are not supported. |
| list_use_cases | Discover static use-case guides and the actual MCP tools each guide references. |
| list_free_tools | List free-tool offers, stable web URLs, tier summaries, and available public API paths. |
| seo_audit | Run the authenticated MCP proxy for the free or gated SEO and GEO readiness audit. |
| keyword_snapshot | Return directional free keyword opportunities or request available live-data results. |
| geo_visibility_check | Run a source-labeled point-in-time AI brand visibility check. |
| best_time_teaser | Return the free source-labeled public best-time curve for a supported platform. |
| prompt_suggest | Return the ranked prompt-library default for a generation task. |
| prompt_library_list | List the organization prompt library, including system templates and learned winners. |
| get_tiktok_creator_info | Read TikTok creator posting limits and privacy options before drafting a TikTok post. |
| add_to_collection | Add a Pinterest-style post target to a collection or board. |
| connect_account_link | Generate a short-lived link to connect a social account. |
| list_lemmy_communities | List Lemmy communities available to post to. |
| list_slack_channels | List Slack channels available to post to. |
| list_boardsComing soon | List Pinterest boards available to post to. Pinterest is coming soon. |
| upload_media | Upload a media file from a URL or base64 for use in a post. |
| prepare_media_upload | Prepare a direct media upload and return the upload target. |
| finalize_media_upload | Finalize a prepared media upload so it can be attached to a post. |
| shorts_generate | Generate a short vertical video from a script. |
| generate_short_video | Generate a short video draft from a topic or source. |
| persona_create | Create a creator persona used to generate consistent short video. |
| persona_list | List creator personas for the active organization. |
| persona_status | Read the build status of a creator persona. |
| shorts_status | Read the generation status of a short video. |
| keyword_research | Run live keyword research for a topic. |
| keyword_add_to_plan | Add a researched keyword to the AutoSEO topic plan. |
| create_posts_from_source | Create approval-gated post drafts from a connected content source. |
| get_source_status | Read the sync status of a connected content source. |
| list_sources | List connected content sources such as Git or RSS. |
| create_dm_funnel | Create a keyword-triggered DM funnel. |
| list_dm_funnels | List DM funnels and their settings. |
| list_funnel_hits | List recent DM funnel trigger hits. |
Frequently asked questions
What is the TimeToPost MCP server?
It is an official server implementing the Model Context Protocol (MCP), the open standard for connecting AI assistants to external tools. It exposes TimeToPost as 73 tools that any MCP client (Claude Code, Claude Desktop, Cursor, and others) can call. Your agent can draft, schedule, publish, cancel, read analytics, manage approval-gated drafts, and run AutoSEO workflows under your account permissions.
Which AI assistants can use it?
Any MCP-compatible client: Claude Code, Claude Desktop, Claude.ai connectors, Cursor, Windsurf, and the growing ecosystem of MCP-enabled agents. The hosted server speaks MCP over Streamable HTTP at https://api.timetopost.co/mcp with browser OAuth: no API keys to paste.
Can ChatGPT or other agents schedule social media posts with TimeToPost?
Yes. Any agent framework that supports MCP can use the TimeToPost server to schedule and publish social media posts programmatically. TimeToPost exposes best-time-to-post data and scheduler health checks as MCP tools, so agents can operate social media end-to-end.
Is it safe? What can an agent actually do?
The MCP server is a thin adapter over the same REST API the web app uses. Every call carries your token, so authentication, organization scoping, plan limits and validation are enforced by the backend exactly as if you clicked the button yourself. An agent can never do more than your own account can.
How do I authenticate?
Through your browser: no API keys. Add https://api.timetopost.co/mcp to your MCP client and on first use a browser window opens: sign in with your TimeToPost email, type the 6-digit code we send you, click Approve access, done. The connection is revocable anytime from Dashboard → Settings → API.
How much does it cost?
The MCP server is free and included with every TimeToPost plan. Posting actions respect your plan: Starter ($12/mo) includes up to 30 scheduled posts per month and best-time-to-post, Pro ($49.99/mo) is unlimited and adds AI content generation and backlink outreach, and Growth ($99/mo) adds AutoSEO Blog Autopilot. MCP tools cover scheduling, publishing, approvals, analytics, health checks, Build-in-Public status, and AutoSEO setup where your plan allows it.
Your plan
Pro
$49.99/mo
Pro adds the AI writer and unlimited posts, so your assistant is never held back by a monthly cap.
14-day free trial · card required
- MCP server, included on every plan
- AI content generation and the in-app AI assistant
- Best time to post, from your own audience data
- Unlimited posts
- Backlink outreach
Give your agent a social media scheduler
Start a 14-day trial and connect your first agent in minutes.
Start free trial