Publish and schedule from Claude, ChatGPT, or any AI agent

Connect ViralFarm once and your assistant can:

  • publish and schedule content you already made
  • upload your own photos and videos
  • generate new posts on viral templates

All from one chat.

7-day free trial, card required · connect your agent in ~2 minutes

1. Pick your app

2. Set up Claude

Step 1/3

Which Claude app are you using?

  1. Add ViralFarm1/3

    Run this in any terminal:
    claude mcp add --transport http viralfarm https://www.myviral.farm/api/mcp

    - or -

    Running Claude Code from cron, launchd, or CI? The sign-in below needs a browser, so add the server with a key instead. Create one in Settings → API Keys, then skip straight to step 3:
    claude mcp add --transport http viralfarm https://www.myviral.farm/api/mcp \
      --header "Authorization: Bearer vf_your_key_here"

    Treat that key like a password. Prefer plain HTTP? The same actions are available over the REST API. And if the job only needs to post on a schedule, you may not need a cron job at all — ask Claude once to schedule a week ahead and ViralFarm publishes at the right times on its own.

3. What your agent can do

Schedule or publish

Anything in your library — to TikTok, Instagram, Pinterest, LinkedIn, Threads, Facebook, YouTube, and X.

Upload your own media

Claude Code, Codex, and Cursor send files straight from your computer.

Browse your posts

Everything made in the app or from chat, each with a View & edit link.

See your connected accounts

And tell you which platform is missing.

Generate new posts

Slideshows and pins from any link or topic — built on ViralFarm’s viral templates.

Technical referencefor developers and connector reviewers

For developers and connector reviewers. Everything below is also exercised by the REST API, whose OpenAPI spec documents the underlying endpoints.

Transport. Streamable HTTP at https://www.myviral.farm/api/mcp: JSON-RPC over POST with JSON responses, stateless (no server-side session, no standalone GET stream). Protocol versions 2025-11-25, 2025-06-18, 2025-03-26, and 2024-11-05. The server advertises tools.listChanged; after a deploy that changes the tools, the next response to a client that accepts text/event-stream carries a notifications/tools/list_changed notification ahead of the result. Tool results carry structuredContent alongside readable text, and each tool links a UI resource (ui://viralfarm/…, MCP Apps) that hosts supporting io.modelcontextprotocol/ui render as an interactive card; other hosts simply use the text.

Authentication. OAuth 2.1 with PKCE (S256) and dynamic client registration, discoverable at /.well-known/oauth-authorization-server; public clients, no client secret. The token issued is a long-lived ViralFarm API key scoped to the approving user — it does not expire on its own and is invalidated by revoking it in Settings → API Keys. Keys created in Settings work the same way, sent as Authorization: Bearer vf_… or x-api-key; a ?key= query parameter is accepted only as a fallback for clients that support neither. Every tool acts strictly within the account that authorized the key.

Tools

ToolEffectWhat it does
get_meReadAccount id, email, remaining credits, and the products set up for CTAs.
list_accountsReadConnected social accounts (platform, username, id) to target.
list_templatesReadAvailable post templates with their look and platform.
list_media_collectionsReadPhoto packs and the user’s own media collections.
list_generated_postsReadThe generated-post library with view/edit links.
list_postsReadScheduled, published, and failed posts with their status.
get_generationReadStatus and results of a generation job.
create_media_collectionWriteCreates a media collection in the user’s library.
add_media_to_collectionWriteAdds hosted media to a collection.
create_upload_urlWriteReturns a signed URL for streaming a local file; storage limits apply.
create_upload_sessionWriteOpens a file picker and provides an expiring browser-upload link for larger files.
get_upload_statusReadReturns verified completed files from an upload session.
upload_mediaWriteInline base64 upload for clients without outbound HTTP (≤ 3 MiB decoded).
generate_postsWrite · uses creditsStarts an async generation from a URL, topic, or text; returns a job id.
schedule_postWrite · publishesSchedules a post, or publishes immediately with publishNow, to named accounts. Not gated by a server-side confirmation.
retry_postWrite · publishesRe-attempts a failed post.
cancel_postWriteCancels a scheduled post that has not published.

Confirmation model. ViralFarm enforces no approval step between a tool call and its effect: schedule_post takes effect when called. The tool descriptions instruct the assistant to confirm consequential choices with the user first (TikTok live vs drafts, Pinterest board, YouTube visibility), and the assistant client's own tool-approval prompts apply. Every write returns the resulting record so the assistant can report the outcome, and list_posts / cancel_post let the user inspect and undo anything not yet published.

Sample workflow. list_accounts → returns the connected TikTok account. create_upload_url → returns a signed URL; the agent PUTs a video and gets back a mediaUrl. schedule_post with that media, the account id, a caption, and platformOverrides.tiktok.post_mode: "inbox" → returns the scheduled post with status scheduled (or, with publishNow, the publish outcome: published, retrying, or failed with the platform's error). list_posts → shows it in the queue. Generation adds two calls before scheduling: generate_posts → job id, then get_generation polled until completed, which returns the generated post ids and their view/edit links.

Large files in chat. Ask your assistant to open the upload picker, choose your photos or videos, and upload them there. If your chat client cannot show the picker, use the upload link it provides and return to the chat when finished. Interrupted uploads can resume. Uploading a file does not schedule or publish it.

Access requirements. A ViralFarm account on the 7-day trial or a paid plan; generation consumes credits (slideshow 4, reel 2, pin 1); publishing and scheduling require an active subscription and at least one social account connected in the web app. No regional restrictions or fixed per-request rate limit; usage is bounded by credits and plan limits.

Troubleshooting

Authentication failed or the tools never appear

Re-run the sign-in for the server in your client (Claude Code: /mcp → viralfarm → Authenticate; Codex: codex mcp login viralfarm). If you used a key, check it is not revoked under Settings → API Keys and that it is sent as an Authorization: Bearer header. A 401 from the server means the key or token is missing, revoked, or malformed; create a fresh key and try again.

“No social accounts connected” or the account you want is missing

Accounts are connected in the ViralFarm web app, not from chat: open Home → connect an account, finish the platform’s own sign-in, then ask your assistant to list accounts again. An account that shows as disconnected in the app was revoked on the platform side — reconnect it there.

Insufficient credits

Each generation deducts credits when it starts (slideshow 4, reel 2, pin 1) and refunds slots that fail on our side. Credits reset to your plan’s allowance on each paid invoice and do not roll over. Check the balance with get_me or under Settings, and upgrade or wait for the next cycle. Uploading and scheduling existing content does not use credits.

A post failed to publish

Ask for the failed post (list_posts) — the record carries the platform’s error. Common causes: a token the platform expired (reconnect the account), media the platform rejects (format, size, or aspect ratio), missing required options such as a Pinterest board or YouTube visibility, or a paused subscription. Fix the cause and use retry_post, or retry from the queue in the app. Publishing is paused while a subscription is inactive and posts are marked failed until you resubscribe and retry them.

FAQ

What is the ViralFarm MCP server?

The ViralFarm MCP server is a hosted Model Context Protocol endpoint (https://www.myviral.farm/api/mcp) that lets AI assistants such as Claude, ChatGPT, Cursor, and Codex generate social media posts and schedule them to your connected accounts. Connect it once and your assistant can create slideshows and Pinterest pins, upload your own media, and publish or schedule to TikTok, Instagram, Pinterest, LinkedIn, Threads, Facebook, YouTube, and X — all from chat.

Can Claude or ChatGPT post to TikTok and Instagram?

Yes. With ViralFarm connected, Claude, ChatGPT, or any MCP-capable agent can publish or schedule posts to TikTok, Instagram, Pinterest, LinkedIn, Threads, Facebook, YouTube, and X. Ask in plain language — “post this to my TikTok drafts now” or “schedule it to Instagram tomorrow at 6pm” — and the assistant is instructed to confirm the choices that matter, such as live vs drafts on TikTok, before it calls the publish tool. Whether it pauses for your approval depends on your assistant's settings: ViralFarm does not enforce a confirmation step on its side, so treat an instruction to publish as final.

How do I connect ViralFarm to Claude, ChatGPT, or Cursor?

Pick your app on this page and follow the two-step setup. Claude and ChatGPT connect by signing in with OAuth as a custom connector; Cursor, Windsurf, Cline, Claude Code, Codex, and other MCP clients use the same server URL, with an API key for clients that do not support OAuth. Setup takes about two minutes. You need a ViralFarm account on the 7-day free trial or a paid plan: the trial requires a card and converts to the paid plan unless you cancel; generating posts uses your credits, and publishing or scheduling requires an active subscription plus at least one social account connected in the ViralFarm app.

Which AI agents and apps work with ViralFarm?

Any MCP-capable agent: Claude (web, desktop, and Claude Code), ChatGPT (web, mobile, and Codex), Cursor, Windsurf, Cline, and custom agents built on the Claude or OpenAI SDKs. Developers can also call the ViralFarm REST API directly, documented at https://www.myviral.farm/api/v1/openapi.

Can my AI agent generate slideshows and Pinterest pins?

Yes. Ask for a slideshow or Pinterest pin from any link, topic, or text and ViralFarm builds it on templates modeled on real viral posts. Describe the look in plain words — “dark and moody”, “use my product photos”, “make it 8 slides” — and the assistant picks the matching template, photo pack, or setting. Every post comes back with a View & edit link so you can tweak it in the editor before it goes out.

Does generating posts from an AI agent cost extra?

No. Generating from chat uses the same credits as the ViralFarm app: 4 credits per slideshow, 2 per reel, and 1 per pin. There is no separate charge for connecting an agent. Credits come with the paid plan (400 per month on Pro) and start with the 7-day free trial, which requires a card and converts to the paid plan unless you cancel before it ends.

Can my agent upload my own photos and videos?

Yes. Ask your assistant to open the upload picker, then choose photos or videos there. If your chat client cannot show it, your assistant gives you a browser-upload link instead. Large files upload directly from your browser and interrupted uploads can resume; return to chat when finished. The picker accepts up to 1 GiB per file, subject to storage limits. Agents with access to files on your computer, such as Cursor, can also upload them directly. The 3 MiB limit applies only to the small-file inline upload fallback. Each social platform still has its own file, format and duration limits.

Will the agent post without asking me?

ViralFarm does not enforce a confirmation step on its side: when your assistant calls the schedule tool, the post is scheduled or published right away, so treat an instruction to publish as final. What keeps a surprise post from happening is, first, the tool instructions, which tell the assistant to confirm the choices that matter, such as live vs drafts on TikTok, the Pinterest board, or the YouTube visibility, before it calls the tool; second, your assistant's own tool-approval prompts, since Claude and ChatGPT ask before running a tool that changes something unless you have allowed it; and third, safe defaults, such as sending TikTok posts to your drafts. Live TikTok posts default to visible to everyone with comments and music on. You can always ask what is queued and cancel anything that has not published yet, in chat or in the ViralFarm app.

How do I disconnect an AI agent from ViralFarm?

Revoke its key under Settings → API Keys in the ViralFarm app. Sign-in (OAuth) connections appear there too, named after the app, and can be removed the same way.

Can I run ViralFarm on a schedule, from a cron job or CI?

Yes, and which credentials you need depends on what runs the job. Scheduled tasks that run inside the assistant itself, such as ChatGPT scheduled tasks or Claude's scheduled routines, use the ViralFarm connector you already authorized: the OAuth sign-in happens once, interactively, and later runs reuse that connection without anyone present. A job you launch separately, such as a cron job, launchd timer, or CI run, has no access to that connection, so it needs credentials in its own environment: create a key under Settings → API Keys in the ViralFarm app and either call the ViralFarm REST API with it or add the MCP server with the key as a header or environment variable (Claude Code: claude mcp add --transport http viralfarm https://www.myviral.farm/api/mcp --header "Authorization: Bearer vf_your_key_here"; Codex: bearer_token_env_var in config.toml). And if the job only publishes on a timetable, you may not need one at all: ask your assistant once to schedule a week of posts and ViralFarm publishes them at the right times by itself.

Is there a REST API instead of MCP?

Yes. Everything the MCP server does is also available over the ViralFarm REST API — generations, posts, accounts, and media — with an OpenAPI spec at https://www.myviral.farm/api/v1/openapi. Use it from your own code, any agent framework, or any unattended job such as a cron or CI run. Authenticate with an API key from Settings → API Keys; GET /api/v1/me returns your account plus a short list of the endpoints to start from.

Ready to let your agent publish and schedule?

Start your 7-day free trial, connect your socials, and your assistant can publish or schedule its first post today.