← viral.appCONTENT HISTORY

Update to viral.app

Snapshot Sep 30, 2026 · 23:09 UTC · version 1.0.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "description": "Work with viral.app through its MCP server. Use when the user asks about viral.app data or workflows, social media analytics for tracked accounts and videos, UGC or creator campaign performance, tag workflows, or live TikTok/Instagram/YouTube/Facebook lookups. Covers connecting the server, OAuth vs API-key auth, the credit quote-then-confirm flow, and picking the right tool group.",
  "included_files": [],
  "name": "viral-app-mcp",
  "skill_md_contents": "---\nname: viral-app-mcp\ndescription: Work with viral.app through its MCP server. Use when the user asks about viral.app data or workflows, social media analytics for tracked accounts and videos, UGC or creator campaign performance, tag workflows, or live TikTok/Instagram/YouTube/Facebook lookups. Covers connecting the server, OAuth vs API-key auth, the credit quote-then-confirm flow, and picking the right tool group.\n---\n\n# viral.app MCP\n\nviral.app tracks and analyzes UGC performance across TikTok, Instagram, YouTube, and Facebook. Its MCP server exposes 50+ tools built on the same API procedures as the public REST API, so organization scoping, permissions, rate limits, and plan checks match normal API behavior.\n\n- MCP endpoint: `https://viral.app/api/mcp` (streamable HTTP)\n- Setup hub: https://viral.app/app/org/api/agents\n- Full API reference: https://viral.app/api/v1/docs\n- Authorized-client review/revocation: https://viral.app/app/user/settings/security\n\n## Connecting and auth\n\nIf this plugin's MCP server (`viral_app`) is not yet authenticated, the user completes a browser OAuth flow (in Claude Code: `/mcp`, select `viral_app`, authenticate). During consent they pick ONE organization; the grant is permanently scoped to it.\n\nRules:\n\n- Default to OAuth. Do NOT ask the user for an API key or add an `x-api-key` header unless they explicitly need one agent to switch between multiple viral.app organizations. API keys are created per organization at Settings -> API Keys and carry that organization's scope.\n- If a call fails with an authorization error, the grant may have been revoked or the user removed from the organization; re-authenticate rather than retrying.\n\n## Tool groups: pick the right one\n\n- **Tracking** (`list_tracked_accounts`, `add_tracked_accounts`, `list_tracked_videos`, `get_tracking_status`, `refresh_*`): manage what viral.app follows over time. Adding an account or video starts background sync; cadence depends on the organization's plan.\n- **Analytics** (`list_accounts`, `get_account_history`, `list_videos`, `get_video_history`, `get_analytics_kpis`, `get_top_*`): read the tracked historical dataset. This is the core workflow: track first, then query history.\n- **Tags and workflows** (`list_tags`, `create_tag_workflow`, `add_video_tags`, `preview_tag_workflow`, ...): organization tags, account-level tag rules, tag workflows, and video tag assignments.\n- **Live lookups** (`live_get_account`, `live_get_video`, `live_search_*`): fetch fresh platform data right now. Live results do NOT add anything to tracking and build no history. Use for just-in-time checks like \"how many views does this video have right now?\".\n- **Creator Hub** (`list_creators`, `list_campaigns`, `list_projects`): campaign and creator management reads.\n\n## Credits: quote then confirm\n\nLive lookups and refresh tools spend viral.app credits and use a two-step protocol:\n\n1. Call the tool WITHOUT `confirm` first. It spends nothing and returns `confirm_required`, `estimated_credits`, and `credits_remaining`.\n2. Show the user the quote and get their explicit approval.\n3. Call the same tool again with `confirm: true` to execute. The result includes a credit receipt.\n\nNever pass `confirm: true` on the first call. Credit spends are rate limited per organization; if the limit trips, stop and tell the user instead of retrying.\n\n## Data model notes\n\n- Organization account IDs are prefixed `orgacc_`; they are NOT platform account IDs. Project IDs are prefixed `orgproj_`.\n- Platform values are lowercase: `tiktok`, `instagram`, `youtube`, `facebook`.\n- Date ranges use ISO `YYYY-MM-DD`.\n- Use MCP tool discovery for exact input schemas; the server also exposes an `mcp://viral.app/docs` resource with the same guidance.\n"
}

SHA-256 of public snapshot: 29fef36951ffaf0f2f1dc7712697779c2d40689c8becf63d32027c85f1d17919