# ViralCat Muse connector

From musedirectory.ai, the independent directory of Meta Muse connectors. Not affiliated with Meta.

## ViralCat

Schedule and publish social posts across platforms with drafts, media uploads and analytics

- Record: https://musedirectory.ai/connector/viralcat
- Category: Marketing & Ads
- Developer: viral-cat.com (https://viral-cat.com)
- Muse status: Extra setup. Not in Muse's Connectors list yet. Muse can still use it: its page gives you a request to paste into Muse.
- Health: Working, 432ms, checked 2026-09-28T08:31:14Z
- Endpoint: https://viral-cat.com/api/mcp/mcp
- Auth: Sign in with your account; Pricing: unknown
- Screening: Screened, no issues found (2026-09-24T21:26:08Z)
- Source: Found in the official MCP Registry (com.viral-cat/viral-cat) https://registry.modelcontextprotocol.io/v0/servers?search=com.viral-cat%2Fviral-cat

Connects to social media platforms to let you schedule posts, upload media, manage drafts, and track analytics across multiple channels from one place.

Example request: "Schedule a post with an image to go out on Instagram and Facebook tomorrow at 2pm"

How to connect: ViralCat is not in Muse's Connectors list yet, and it needs you to sign in with your ViralCat account. Apps that need this kind of sign-in usually cannot be used from a Muse chat yet. Follow it here and we will tell you when it reaches Muse.

Tools:
- list_brands: List brands (content profiles), newest first, with per-brand post counts (posted/scheduled) and the next scheduled date. Use to see which brands exist and how active each is. Excludes archived brands. Returns `total` (all active brands) next to `count` (rows returned): when `trun
- get_brand_details: Full content profile for one brand: description, taglines, hashtags, CTA/website URL, niche (category/subcategory), content type, target platforms, and active discount. Use this to write on-brand captions BEFORE calling create_draft or schedule_post. Read-only; returns no secrets
- list_posts: List posts across all platforms, newest scheduled first. Each row is one publication on one platform. Filter by status (draft|scheduled|posting|posted|failed|cancelled) and/or platform (youtube|tiktok|instagram|...). Returns caption, brand name, permalink, error message when pres
- get_pipeline_summary: High-level snapshot of the posting pipeline: active brand count, a status breakdown (how many scheduled/posted/failed/etc.), a per-platform breakdown, how many posts are due in the next 7 days, and the next scheduled date. Use for 'how's the pipeline?' style questions.
- list_connections: List connected platform accounts (channels) and their health: platform, account username, connected flag, posting-enabled flag, and token expiry. Use to check which platforms are wired up and whether any connection has expired. Never returns access or refresh tokens.
- post_performance: Publish-outcome metrics over a rolling window (default 30 days): posted/failed/cancelled totals, success rate, per-platform breakdown, and the most recent published posts with permalinks plus their latest stored engagement snapshot (views/likes/comments/shares; available for yout
- content_queue: The forward content pipeline: drafts awaiting approval first, then scheduled posts in publish order. Use to review what is queued before it goes out, and to find draft ids for schedule_post.
- campaign_summary: Per-brand campaign rollup (brands are ViralCat's campaign unit): posted/scheduled/failed/draft counts, platforms used, next scheduled date, last posted date, and auto-post settings. Optionally scope to one brand_id.
- diagnose_failures: Group failed posts by platform + normalized failure reason: counts, date range, affected brands, a sample raw error, a recoverable flag (retry_failed_posts can re-queue it) and a concrete suggested fix per group. Answers "what is broken and why" in one call. Read-only.
- preflight_check: READ-ONLY: validate a post BEFORE it is scheduled or published, so a problem is caught up front instead of discovered as a failure afterwards. Checks the exact things that produced the failed-post backlog: incompatible media for the platform (e.g. video to Pinterest), a disconnec
- create_draft: WRITE (safe): create a DRAFT post for a brand. Drafts are never picked up by the publisher, so nothing goes live; a human approves in the dashboard or promotes it later with schedule_post. scheduled_date is a proposed slot (default: 7 days out).
- schedule_post: WRITE (gated): queue a post for FUTURE publishing, at least 15 minutes out (immediate posting is not available over MCP). Either pass post_id to promote an existing draft, or brand_id + platform to create a new scheduled post. The publishing cron sends it at the scheduled time.
- cancel_post: WRITE (safe): cancel a queued post, or move it to a new slot. Omit scheduled_date to CANCEL (status -> cancelled; the publisher ignores it). Pass scheduled_date to RESCHEDULE to that time instead (ISO 8601, at least 15 minutes out; a draft keeps its draft status). Works on draft 
- retry_failed_posts: WRITE (gated): bulk re-queue recoverable failed posts (default reason classes: token_expired, missed_window, platform_transient_error, drive_media_missing). dry_run DEFAULTS TO TRUE and only returns the plan; pass dry_run=false to actually reschedule. Retries are staggered per pl
- reschedule_post: WRITE (gated): move ONE post to a new future slot (ISO 8601, at least 15 minutes out). Unlike cancel_post this also accepts FAILED posts: a failed post is re-queued (status -> scheduled, error cleared). Draft and scheduled posts keep their status. Refuses posts that would structu
- refresh_post_metrics: WRITE (gated): fetch current engagement (views/likes/comments/shares) for already-published posts and store today's snapshot, then read it back with post_performance. This is the only way to update the numbers without opening the dashboard Stats tab. Supported platforms: youtube,
- reconnect_platform: WRITE (safe): attempt a server-side token refresh for a platform whose access token has lapsed, updating the stored connection's token/expiry. Works without a browser when a refresh token is on file (twitter/youtube/google_drive self-heal this way); returns needsManualReauth + a 
- upload_media: WRITE (gated): fetch a public media URL and store it in the connected Google Drive, returning the Drive fileId to pass to create_draft or schedule_post. This uploads to YOUR OWN Drive; it publishes nothing and reaches no audience. Accepts video, image or audio up to 100MB. With b
- create_media_upload: WRITE (gated): open a Google Drive upload session for media you hold locally, so a clip rendered on your own machine never has to be published publicly just so ViralCat can fetch it back. Returns an uploadUrl - PUT the bytes to it yourself (no auth header) and Drive stores the fi
- create_brand: WRITE (gated): create a brand (content profile) so create_draft and schedule_post have something to target. Every other write here needs a brand_id, so an agent had no way to set one up. Returns the brand_id and the Drive folder the publisher will read its media from (Viral-Cat/_
- update_brand: WRITE (gated): correct a brand's content profile: description, taglines, hashtags, CTA and website links, content type, and the auto-post switch. This is the repair path for a brand carrying wrong copy, which otherwise makes every caption for it wrong, and the off switch for a br

Screening checks:
- MCP handshake: pass (Requires sign-in (publishes OAuth metadata))
- Domain against threat feeds (Cloudflare security DNS): pass (viral-cat.com not flagged)
- Published packages against the OSV malicious-package database: n/a (No npm or PyPI package published)
- Hidden instructions or invisible characters in tool text: n/a (Tools are behind sign-in)
- Inputs asking for passwords, card numbers or seed phrases: n/a (Tools are behind sign-in)
- Domain and redirects: pass (Domain registered 443 days ago)
- AI review of purpose and tool behavior: pass (No concerns)
