ViralNote

Schedule, publish, and analyze social posts on TikTok, Instagram Reels, YouTube Shorts, X, Threads, and LinkedIn — 15 MCP tools for posts, media import, webhooks, and analytics.

Documentation

@viralnote/mcp-server

ViralNote MCP server

A Model Context Protocol server for the ViralNote social media API.

Plug it into Claude Desktop, Claude Code, Cursor, or any other MCP-aware host and your agent can schedule posts, manage media, and read analytics across X, Instagram, Facebook, TikTok, LinkedIn, YouTube, Pinterest, Bluesky, Threads, and Reddit — as native MCP tool calls. No glue code.

Install

Claude Desktop / Claude Code / Cursor

Add to your MCP config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, similar on other platforms):

{
  "mcpServers": {
    "viralnote": {
      "command": "npx",
      "args": ["-y", "@viralnote/mcp-server"],
      "env": {
        "VIRALNOTE_API_KEY": "vnd_..."
      }
    }
  }
}

Restart your MCP host. The ViralNote tools will be available immediately.

Local install

npm install -g @viralnote/mcp-server

Then reference viralnote-mcp directly in your MCP config:

{
  "mcpServers": {
    "viralnote": {
      "command": "viralnote-mcp",
      "env": { "VIRALNOTE_API_KEY": "vnd_..." }
    }
  }
}

Configuration

Env varRequiredDefaultNotes
VIRALNOTE_API_KEYyesGenerate at viralnote.app/developers/auth. Grant posts:read, posts:write, plus webhooks:* if your agent should manage webhooks.
VIRALNOTE_API_BASEnohttps://viralnote.app/api/v1Override for staging/self-hosted instances.

Tools exposed

ToolPurpose
list_postsList posts (filter by status/platform, paginated)
get_postRead one post including per-platform publish results
create_postCreate a draft (is_draft: true) or scheduled post
update_postUpdate a draft or scheduled post
delete_postDelete (cancels if scheduled)
publish_postPublish a draft now
list_mediaList media library items
import_mediaImport by URL (200MB) or base64 data (3MB)
delete_mediaDelete a media item
list_social_accountsList connected social accounts
list_analyticsPublished posts with per-platform metrics
list_post_resultsPer-platform delivery results (success/error)
list_webhooksList webhook subscriptions
create_webhookSubscribe to events
delete_webhookUnsubscribe

For most users, the HTTP MCP server at https://viralnote.app/api/mcp/mcp is simpler than installing this stdio package — see https://viralnote.app/developers/mcp for the HTTP config snippet. Use this stdio package when your MCP client doesn't support HTTP transport.

The underlying REST endpoints and request/response shapes are documented at viralnote.app/developers/docs.

Example agent prompts

"Show me my last 5 scheduled posts." Tool: list_posts with { status: "scheduled", limit: 5 }.

"Schedule this caption to Instagram for tomorrow at 9am, attaching the photo I uploaded yesterday." Tools: list_media → find item → create_post with { platforms: ["instagram"], caption, libraryItemId, scheduledFor, status: "scheduled" }.

"Pull this Dropbox link into my library, then publish it to X immediately." Tools: import_mediacreate_post (draft) → publish_post.

Development

git clone https://github.com/viralnote/mcp-server
cd mcp-server
npm install
npm run build
VIRALNOTE_API_KEY=vnd_... npm start

For local iteration without rebuilding:

VIRALNOTE_API_KEY=vnd_... npm run dev

License

MIT — see LICENSE. Pull requests welcome.