MCP server: One MCP server.

viral.app

@fmd-labsMCP server · External

UGC analytics and Creator Hub for TikTok, Instagram and YouTube: tracking, campaigns, jobs, events.

Freeno charge per call

One address for any MCP client. You sign in once, after adding it.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Tools

None listed · checked 26 Sep 2026

Odel could not list its tools without signing in.

Try it in the Inspector
README10 min read

viral-app-agents

Official viral.app plugins and install shortcuts for coding agents and chat apps. One install connects your agent to the viral.app MCP server: 100+ tools for UGC analytics, account and video tracking, tags and tag workflows, the Creator Hub (campaigns, briefs, job postings, applications, creator chat, payouts), the viral video library, and live TikTok/Instagram/YouTube/Facebook lookups. Plugins also bring five skills that teach the agent the workflows.

The MCP server lives at https://viral.app/api/mcp (streamable HTTP, OAuth). You need a viral.app account with API access. Manage everything at viral.app/app/org/api/agents.

Install

Every client signs in with OAuth in your browser. viral.app supports dynamic client registration, so you never paste a client ID, secret, or API key. During consent you pick one organization.

Chat apps: Claude.ai and Claude Desktop · ChatGPT · Grok · Other chat apps

Plugins (MCP server + skills): Claude Code · Codex CLI · GitHub Copilot CLI · VS Code · Cursor · Gemini CLI · Qwen Code · Kiro · Devin · Factory Droid · Grok Build

MCP server only: Augment · JetBrains Junie · OpenCode · Amp · Goose · Zed · Warp · Mistral Vibe · Any other MCP client

Chat apps

Claude.ai and Claude Desktop

Add a custom connector with this URL, and leave client ID and secret empty:

text
https://viral.app/api/mcp

Open the connector settings or go to Settings, Connectors, Add custom connector.

Results such as top videos, creators, campaigns and KPI charts render as interactive cards in Claude on the web, Desktop and mobile.

ChatGPT

Install the viral.app plugin for ChatGPT.

  • Cards: results render as interactive cards in the chat; ChatGPT desktop also offers viral.app as a sidebar app with a conversation panel.
  • Events: in Work chats (ChatGPT web, or the desktop app with Cloud selected) and in dots, ask ChatGPT to watch viral.app for something and say what to do, for example "Whenever a creator applies to my Habit Tracker job, summarize the application and draft a reply for me to approve." ChatGPT subscribes through viral.app's MCP Events and viral.app delivers each matching event to that chat. Chat, application and payout events arrive within about a minute; new-video and view-milestone events follow each account's sync cadence (hours). Ask ChatGPT to stop monitoring to end a subscription.

Grok

On grok.com, open Connectors, choose New Connector, then Custom, and paste https://viral.app/api/mcp.

For Grok Bot, install viral.app from its Marketplace once it is listed there.

Other chat apps

These accept a custom remote MCP URL with OAuth. Use https://viral.app/api/mcp:

  • Perplexity: Settings, Connectors, Custom connector, Remote. Pick OAuth and Streamable HTTP.
  • Mistral Vibe (formerly Le Chat), Work mode: Connectors, Add Connector, Custom MCP Connector. Only admins can add connectors; use a name without special characters, such as viralapp.
  • Notion custom agents (Business and Enterprise): an admin enables custom MCP servers under Settings, Connections. Then open the agent's Tools & Access, Add connection, Custom MCP server.

Plugins

Claude Code

bash
claude plugin marketplace add https://github.com/fmd-labs/viral-app-agents
claude plugin install viral-app@viral-app

Or interactively: /plugin marketplace add https://github.com/fmd-labs/viral-app-agents, then /plugin install viral-app. Afterwards run /mcp, pick viral_app, and authenticate in the browser. The fmd-labs/viral-app-agents shorthand also works if you have GitHub SSH access.

Codex CLI

bash
codex plugin marketplace add https://github.com/fmd-labs/viral-app-agents
codex plugin add viral-app@viral-app

Or interactively: /plugins in the Codex TUI. Start a new session afterwards, then authenticate with codex mcp login viral_app.

Requires Codex CLI 0.147 or newer. Older versions fail the OAuth login with an "Authorization server response missing required issuer" error (a Codex bug fixed in 0.147.0); update with npm install -g @openai/codex@latest and retry.

If you only want the MCP server without the plugin:

bash
codex mcp add viral_app --url https://viral.app/api/mcp
codex mcp login viral_app

GitHub Copilot CLI

bash
copilot plugin marketplace add fmd-labs/viral-app-agents
copilot plugin install viral-app@viral-app

VS Code

Install the plugin (MCP server and skills) through agent plugins. Add the marketplace to your user settings:

json
"chat.plugins.enabled": true,
"chat.plugins.marketplaces": ["fmd-labs/viral-app-agents"]

Then search @agentPlugins in the Extensions view and install viral-app.

For the MCP server alone:

Install in VS Code

Or add to .vscode/mcp.json:

json
{ "servers": { "viral_app": { "type": "http", "url": "https://viral.app/api/mcp" } } }

Cursor

Install MCP Server

Or add to .cursor/mcp.json:

json
{ "mcpServers": { "viral_app": { "type": "http", "url": "https://viral.app/api/mcp" } } }

This repo also ships a Cursor plugin manifest (.cursor-plugin/) that bundles the MCP server and skills for the Cursor Marketplace.

Gemini CLI

bash
gemini extensions install https://github.com/fmd-labs/viral-app-agents

Restart Gemini CLI, then run /mcp auth viral_app to sign in.

Qwen Code

bash
qwen extensions install fmd-labs/viral-app-agents:viral-app

You get the MCP server and the skills; check the connection with /mcp.

Kiro

In the Powers panel choose Add Custom Power, then Import power from GitHub, and enter:

text
https://github.com/fmd-labs/viral-app-agents

Devin

bash
devin plugins install fmd-labs/viral-app-agents#plugins/viral-app

Sign in to Devin first (devin auth login) if you have not, then run devin mcp login viral_app to connect viral.app.

Factory Droid

bash
droid plugin marketplace add https://github.com/fmd-labs/viral-app-agents
droid plugin install viral-app@viral-app-agents --scope user

Droid names the marketplace after the repository, hence @viral-app-agents. Run /mcp to finish the browser sign-in.

Grok Build

bash
grok plugin marketplace add fmd-labs/viral-app-agents
grok plugin install viral-app --trust

The CLI refuses to install a plugin until you pass --trust.

MCP server only

These clients get the MCP server without the bundled skills.

Augment and Auggie

bash
auggie mcp add viral_app --transport http --url https://viral.app/api/mcp

In the IDE extension: Settings, MCP, Add remote MCP, connection type HTTP.

JetBrains Junie

Add to .junie/mcp/mcp.json in your project (or ~/.junie/mcp/mcp.json), or use Settings, Tools, Junie, MCP Settings:

json
{ "mcpServers": { "viral_app": { "url": "https://viral.app/api/mcp" } } }

In the Junie CLI, run /mcp, select viral_app, and choose Authorize.

OpenCode

Add to opencode.json:

json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": { "viral_app": { "type": "remote", "url": "https://viral.app/api/mcp" } }
}

Then run opencode mcp auth viral_app.

Amp

bash
amp mcp add viral_app https://viral.app/api/mcp

Amp opens the browser sign-in on its next start.

Goose

Open this link to add the extension to Goose Desktop (GitHub does not render goose:// links, so copy it into your browser):

text
goose://extension?type=streamable_http&url=https%3A%2F%2Fviral.app%2Fapi%2Fmcp&id=viral_app&name=viral.app&description=UGC%20analytics%20and%20tracking%20from%20viral.app

In the CLI: goose configure, Add Extension, Remote Extension (Streamable HTTP), URL https://viral.app/api/mcp.

To add the skills as well, run goose plugin install https://github.com/fmd-labs/viral-app-agents.git. Goose loads them as viral-app:viral-app-mcp, viral-app:ugc-reporting, and so on.

Zed

Add to your Zed settings, or use Settings, AI, MCP Servers, Add Server, Add Remote Server:

json
{ "context_servers": { "viral_app": { "url": "https://viral.app/api/mcp" } } }

Zed prompts you to sign in.

Warp

Settings, Agents, MCP servers, Add, then paste:

json
{ "mcpServers": { "viral_app": { "url": "https://viral.app/api/mcp" } } }

Mistral Vibe

bash
vibe mcp add viral_app --url https://viral.app/api/mcp

Any other MCP client

Point the client at https://viral.app/api/mcp with streamable HTTP and OAuth. The server publishes standard OAuth discovery metadata and supports dynamic client registration, so no pre-shared credentials are needed. Its official MCP Registry name is io.github.fmd-labs/viral-app.

Skills

Plugins bundle five skills. Agents load them on demand, and each keeps longer material in a references/ folder next to it.

SkillUse it for
viral-app-mcpThe core guide: connecting and auth, the credit quote-then-confirm flow, rules for writes that reach creators, ids and units, what MCP cannot do, and which skill to load next
ugc-reportingWeekly or monthly UGC reports, KPI and leaderboard recipes with period-over-period change, cards in Claude and ChatGPT, Slack summaries, recurring reports through scheduled tasks or a ChatGPT page
creator-campaignsCreator Hub end to end: briefs in markdown, campaigns with the preview step, creator assignment, job drafts and publishing, applications, creator chat, and payout reads
viral-researchThe viral video library, similar videos, hook and scene breakdowns, AI analysis of tracked videos, live lookups, and turning findings into hooks and a brief
ugc-automations"Watch for X and do Y": MCP Events in ChatGPT, polling fallbacks for other clients, latency per event, and handling untrusted creator text

What's inside

PathPurpose
.claude-plugin/marketplace.jsonClaude-format marketplace catalog (Claude Code, Copilot CLI, VS Code, Factory, Grok Build). Lists viral-app
.agents/plugins/marketplace.jsonCodex marketplace catalog
.cursor-plugin/marketplace.jsonCursor marketplace catalog (Cursor, Grok Bot)
gemini-extension.jsonGemini CLI extension manifest (Gemini CLI, Qwen Code)
plugin.jsonAgent Plugins 1.0 manifest for the repository root (Kiro, Mistral Vibe, and Copilot CLI or Devin when the repository root is installed directly; Goose imports only the skills)
mcp.jsonAgent Plugins 1.0 MCP config for the repository root (read with plugin.json)
skills/Copy of the plugin skills for the root-level packages (Gemini CLI, Agent Plugins). Generated from plugins/viral-app/skills/ with scripts/sync-skills.sh
server.jsonOfficial MCP Registry entry io.github.fmd-labs/viral-app
.github/workflows/publish-mcp-registry.ymlValidates server.json on pull requests and publishes it to the MCP Registry from main via GitHub OIDC
plugins/viral-app/.claude-plugin/plugin.jsonClaude-format plugin manifest with the MCP server inline (Claude Code, Copilot CLI, VS Code, Devin, Grok Build)
plugins/viral-app/.codex-plugin/plugin.jsonCodex plugin manifest
plugins/viral-app/.cursor-plugin/plugin.jsonCursor plugin manifest
plugins/viral-app/.mcp.jsonClaude-format MCP config (Codex, Factory, Grok Build; Claude Code merges it with the inline entry)
plugins/viral-app/skills/The five skills (canonical copy)
scripts/sync-skills.shCopies plugins/viral-app/skills/ to skills/; --check fails when they differ
scripts/build-chatgpt-package.shBuilds dist/viral-app-chatgpt.zip for OpenAI's plugin dashboard (Upload new version): the Codex manifest, .mcp.json, skills and assets of plugins/viral-app, checked against OpenAI's package rules, without the Claude and Cursor manifests
plugins/viral-app/assets/Plugin logo (logo.svg, logo.png at 400x400)

When releasing:

  • Bump the viral-app version together in plugin.json, gemini-extension.json, plugins/viral-app/.claude-plugin/plugin.json, plugins/viral-app/.codex-plugin/plugin.json, plugins/viral-app/.cursor-plugin/plugin.json, and its entries in .claude-plugin/marketplace.json and .agents/plugins/marketplace.json (grep -rn '"version"' --include=*.json . lists them).
  • Edit skills only in plugins/viral-app/skills/, then run scripts/sync-skills.sh (--check verifies the copies match).
  • For ChatGPT, run scripts/build-chatgpt-package.sh and upload dist/viral-app-chatgpt.zip as a new version in the OpenAI plugin dashboard. The script writes the published plugin's package name (app-6a8713d41dc48191b33e75c49a764db3) into the ZIP's manifest, because the dashboard refuses any other name. Changes to the hosted MCP server need no upload; manifest and skill changes do.
  • server.json has its own version; the MCP Registry rejects a version it has already published, so bump it with every change to that file.

Auth and security

  • OAuth is the default. During consent you pick one organization; the grant is scoped to it permanently. Review or revoke authorized clients at viral.app/app/user/settings/security.
  • API keys are only for advanced setups where one agent must switch between multiple organizations. Create them per organization in the viral.app dashboard.
  • This repository contains no secrets and never will. It only ships public configuration pointing at the viral.app endpoint; all credentials are issued at runtime through OAuth in your own browser.
  • Tools that spend viral.app credits (live lookups, refreshes, video analysis) quote their cost first and only execute when called again with explicit confirmation.

Support and privacy

License

MIT

Similar modules

Browse Social media analytics