# MCP Server for Social Media: Schedule Posts from Claude, Cursor, and Any MCP Client

**TL;DR:** ViralNote ships a [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server with **15 tools** for scheduling posts, managing media, reading analytics, and webhooks. Connect via HTTP at `https://dashboard.viralnote.app/api/mcp/mcp` or install `@viralnote/mcp-server` from npm. Listed on [Smithery](https://smithery.ai/servers/viralnote/viralnote), [Cursor Directory](https://cursor.directory/plugins/viralnote), and the [official MCP Registry](https://registry.modelcontextprotocol.io/).

If you already use Claude Desktop, Claude Code, or Cursor, MCP is the fastest way to give your assistant **native tools** for social scheduling — no custom glue code, no brittle browser automation.

## Why MCP for social media (not another Zapier recipe)

MCP gives AI clients a **typed tool surface**. Instead of the model guessing HTTP endpoints, it calls `create_post`, `list_analytics`, and `import_media` with validated schemas — the same pattern GitHub, Linear, and Postgres MCP servers use.

For creators and small teams, that means prompts like:

- “Schedule this caption to Instagram and LinkedIn for tomorrow at 9am.”
- “Show me per-platform results for my last scheduled post.”
- “Import this Canva export URL into my library and draft a TikTok post.”

…work reliably because the host discovers tools at connect time.

## Install paths (pick one)

### 1. Cursor Directory — one click (stdio)

Install from [cursor.directory/plugins/viralnote](https://cursor.directory/plugins/viralnote). You’ll be prompted for `VIRALNOTE_API_KEY` (`vnd_...` from [dashboard → API keys](https://dashboard.viralnote.app/developers/auth)).

### 2. Smithery — HTTP MCP (Claude, Cursor, others)

Connect at [smithery.ai/servers/viralnote/viralnote](https://smithery.ai/servers/viralnote/viralnote) with your API key. Smithery proxies Streamable HTTP to the live endpoint.

### 3. Claude Code — HTTP config

Add to `~/.claude/settings.json`:

```json
{
  "mcpServers": {
    "viralnote": {
      "type": "http",
      "url": "https://dashboard.viralnote.app/api/mcp/mcp",
      "headers": { "Authorization": "Bearer vnd_..." }
    }
  }
}
```

OAuth one-click connect is also supported: add the URL in Claude **Settings → Connectors** and sign in with ViralNote (no API key required).

### 4. Stdio — any MCP host

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

Source: [github.com/viralnote/mcp-server](https://github.com/viralnote/mcp-server) (MIT).

## The 15 tools (what your AI can actually do)

| Tool | Use when |
|------|----------|
| `list_posts` / `get_post` | Review drafts, scheduled queue, publish history |
| `create_post` / `update_post` / `delete_post` | Build and edit the calendar |
| `publish_post` | Ship a draft immediately |
| `list_media` / `import_media` / `delete_media` | Media library workflows |
| `list_social_accounts` | Confirm connected platforms |
| `list_analytics` / `list_post_results` | Performance and delivery status |
| `list_webhooks` / `create_webhook` / `delete_webhook` | Event-driven automations |

Full schemas: [viralnote.app/developers/mcp](https://www.viralnote.app/developers/mcp) and [viralnote.app/mcp](https://www.viralnote.app/mcp).

## Example prompts to try after connect

1. **“List my connected social accounts.”** → `list_social_accounts`
2. **“Create a scheduled post for Instagram and X tomorrow at 9am with caption …”** → `create_post`
3. **“Did my last post succeed on every platform?”** → `list_post_results`

## MCP vs skill vs REST API

| Path | Best for |
|------|----------|
| **MCP** (this guide) | Claude, Cursor, MCP-native hosts |
| **Agent skill** | OpenClaw, Claude skills CLI, REST-only agents |
| **REST API** | Custom scripts, n8n, Zapier |

See [MCP vs skill vs API](/blog/mcp-vs-skill-vs-api-viralnote-agent) for the full decision tree.

## Security basics

- Use a **scoped API key** — `posts:read` + `posts:write` for scheduling; add webhook scopes only if needed.
- **Confirm before publish** — scheduled posts are reversible; immediate publish is not.
- Revoke keys in the dashboard if you disconnect a client.

## Next steps

- [Get an API key](https://dashboard.viralnote.app/developers/auth)
- [MCP setup guide](https://www.viralnote.app/mcp)
- [Three agent workflows](/blog/three-agent-workflows-social-media-scheduling) for RSS, bulk, and monitoring patterns

ViralNote is built for **record once, post everywhere** — MCP is how AI-native clients plug into that workflow without leaving the chat.

## FAQ

**Does ViralNote have an MCP server for social media scheduling?**

Yes. ViralNote exposes 15 MCP tools (create_post, list_analytics, import_media, webhooks, and more) via HTTP at dashboard.viralnote.app/api/mcp/mcp and via the npm package @viralnote/mcp-server. It's listed on Smithery, Cursor Directory, Glama, and the official MCP Registry.

**How do I add ViralNote MCP to Cursor?**

Install from cursor.directory/plugins/viralnote (stdio via npx @viralnote/mcp-server) or connect the HTTP endpoint in Cursor Settings → MCP with your API key. Smithery also offers one-click HTTP install.

**Do I need an API key for ViralNote MCP?**

For headless and stdio setups, yes — create a vnd_... key at dashboard.viralnote.app/developers/auth. Claude Desktop can also use OAuth one-click connect without pasting a key.


---

Site index for agents: https://www.viralnote.app/llms.txt · Structured view: https://www.viralnote.app/agent.json · API: https://www.viralnote.app/openapi.json · Auth: https://www.viralnote.app/auth.md
