MCP servercom.viral-cat/viral-cat
Schedule and publish social posts across platforms, with drafts, media uploads and analytics.
Overview
Score?
UNRATED 0.201
of what a free look can see, on 7 looks
Looks
16
last 3 hr ago
Tools
21
More info
URL
viral-cat.com/api/mcp/mcp
streamable-http
Says it is
viral-cat 1.6.0
protocol 2025-06-18
In the record since
17 days ago
Among servers18,413 with a card
0median 0.606 · this server 0.201 · highest on record 0.8561
Toolsfrom sha256:98d49de014…2404dc
| Tool | Schema |
|---|---|
| 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 |
input · no output |
| 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 th |
input · no output |
| 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 sche |
input · no output |
| 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 o |
input · no output |
| 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 schedu |
input · no output |
| 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 i |
input · no output |
| 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 c |
input · no output |
| 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 |
input · no output |
| 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 |
input · no output |
| 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. Exclu |
input · no output |
| 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 w |
input · no output |
| 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 plat |
input · no output |
| 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 perm |
input · no output |
| 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 |
input · no output |
| 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 refres |
input · no output |
| 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 o |
input · no output |
| 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 -> sche |
input · no output |
| 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 TRU |
input · no output |
| 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 |
input · no output |
| 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 bran |
input · no output |
| 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 Dr |
input · no output |
Verify it yourself
npx teppi-check https://viral-cat.com/api/mcp/mcpcurl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M2PZ51TNFM1SK6D6111F0PS0