ViralCat

com.viral-cat由 viral-cat.com 發布官方發布者v1.0.0更新於 Oct 24, 2026

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

已驗證Streamable HTTP可網頁執行溝通與協作資料與分析媒體與設計

概覽

AI 產生的概覽

讓助理管理社群媒體發布:品牌、草稿、排程貼文、媒體上傳、帳號連線狀態與成效數據。

可以做什麼
提供讀取工具,用來查看品牌、貼文、發布流程概況、已連線平台帳號、活動彙總、內容佇列、失敗診斷與貼文成效。寫入工具可建立與更新品牌、建立草稿、安排、改期或取消貼文、重試失敗貼文、重新整理互動數據、重新連線平台,以及把媒體上傳到 Google Drive。另有唯讀的發布前檢查,可在排程前驗證貼文。
適用情境
適合讓助理協助規劃、撰寫並排入跨平台社群內容,檢視待發布內容,診斷失敗貼文,或在不開啟後台的情況下取得互動數據。
執行需求
遠端 streamable HTTP 端點 viral-cat.com;未宣告套件、環境變數或請求標頭。它使用使用者既有的 ViralCat 帳號、品牌與已連線平台帳號,媒體需要已連線的 Google Drive。
安裝前請注意
多個工具會寫入:安排、改期、取消、重試失敗貼文、建立或更新品牌、重新整理數據、重新連線平台。排程貼文會由排程工作於指定時間發布,佇列內容可能真的上線。upload_media 會把公開網址的內容抓取到使用者自己的 Drive;create_media_upload 回傳的上傳網址不需驗證標頭即可寫入位元組。涉及平台連線與權杖;讀取工具不會回傳權杖。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 ViralCat,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/com.viral-cat%2Fviral-cat/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "viralcat": {
      "type": "http",
      "url": "https://viral-cat.com/api/mcp/mcp"
    }
  }
}

工具

21

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 `truncated` is true the roster was cut off by `limit`, so raise it (max 50) before concluding a brand does not exist.

輸入參數limitinclude_samples

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.

輸入參數brand_id必填include_samples

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 present, and publishWarning for posts that succeeded with an anomaly (e.g. published without media).

輸入參數limitstatusplatforminclude_samples

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.

輸入參數include_samples

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.

輸入參數include_samples

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 youtube/tiktok/twitter/threads). Snapshots are stored, not live: call refresh_post_metrics first if the numbers must be current. Optionally scope by brand_id and/or platform.

輸入參數daysbrand_idplatforminclude_samples

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.

輸入參數limitinclude_samples

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.

輸入參數brand_idinclude_samples

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.

輸入參數daysplatforminclude_samples

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 disconnected or unrefreshable platform token (LinkedIn has no refresh token on this API tier and needs a manual browser reconnect roughly every 60 days — that's an expected state, not a bug), Facebook posting to an account with no Page (impossible via the Graph API), content referencing an already-passed date/season/promo code, and X/Twitter free-tier monthly write-cap headroom. Pass post_id to check one existing post; omit it to scan the forward queue (draft + scheduled, soonest first) and return only posts that have at least one issue.

輸入參數limitpost_idinclude_samples

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).

輸入參數captionbrand_id必填platform必填reply_textskip_hashtagsscheduled_date

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.

輸入參數captionpost_idbrand_idplatformreply_textskip_hashtagsscheduled_date必填

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 or scheduled posts (cancel or reschedule); also works on FAILED posts but cancel-only (omit scheduled_date) — this is the way to clear a dead failed-post backlog, since failed has no other exit. Posts already posting/posted/cancelled are immutable. Get post ids from content_queue, list_posts or diagnose_failures.

輸入參數post_id必填scheduled_date

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 platform (spacing_minutes apart) and capped at limit, so a bulk retry cannot dogpile a platform API. Posts that would structurally fail again (archived brand, incompatible media, Facebook with no Page) are skipped with the reason. Use diagnose_failures first to see what is recoverable.

輸入參數limitdry_runreasonsplatformstart_atspacing_minutes

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 structurally fail again (archived brand, incompatible media, Facebook with no Page).

輸入參數post_id必填scheduled_date必填

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, tiktok, twitter, threads; LinkedIn and the rest expose no engagement API. A 60-minute cooldown applies per account and protects X's free-tier read quota, so a call inside it returns skipped:true and changes nothing. Publishes nothing and reaches no audience.

輸入參數include_samples

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 dashboard link when the platform genuinely requires a manual browser reconnect (e.g. threads). Cannot publish or touch content, only refreshes credentials; safe to retry. Never exposes tokens.

輸入參數platform必填

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 brand, files land in the folder the generator actually reads for that media type: Viral-Cat/_Res/{brand}/Imgs for an image, Vids for a video, Music for audio. Without brand it defaults to the Viral-Cat folder, and folder_id overrides both.

輸入參數kindbrandfile_namefolder_idsource_url必填

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 file; the response Location/id is the fileId for create_draft or schedule_post. When brand is given the file lands in the folder the generator actually reads for that media type: Viral-Cat/_Res/{brand}/Imgs for an image, Vids for a video, Music for audio. Without brand it defaults to the Viral-Cat folder. Video, image or audio up to 100MB. Publishes nothing and reaches no audience.

輸入參數kindbrandfile_name必填folder_idmime_type必填size_bytes必填

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/_Res/{name}/Vids). Publishes nothing and reaches no audience.

輸入參數name必填cta_urlhashtagsdescriptionwebsite_urlcontent_type

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 brand whose generator is posting against your content rules. Only the fields you pass change; the rest keep their stored values. Cannot rename a brand (the name also names its Drive media folder) and cannot touch posting frequency/day or discount settings. Queues nothing and publishes nothing itself.

輸入參數cta_urlbrand_id必填hashtagstaglinesdescriptionwebsite_urlcontent_typeauto_post_enabled

版本歷史

1
  1. v1.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 83%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分

    請宣告包含 README 的 GitHub 儲存庫,或在 OAuth 受保護資源後設資料中提供 resource_documentation。

  • 授權條款不適用

    託管服務按其提供方的條款使用,因此這裡不要求授權條款。此檢查項不計入百分比。