# MCP vs Skill vs API: How to Connect ViralNote to Your Agent

**TL;DR:** Use **MCP** when your host is Claude Desktop, Claude Code, or Cursor (15 native tools). Use the **viralnote-skill** when your agent reads `SKILL.md` and calls REST endpoints (OpenClaw, Claude skills CLI). Use the **REST API** directly for scripts, Zapier, Make, and n8n. All three hit the same ViralNote backend — pick by how your agent consumes tools.

ViralNote exposes three integration surfaces. Choosing the wrong one means extra config, missing tools, or fighting your host’s expectations. This guide is the decision tree we give every builder.

## Quick decision tree

```
Does your client support MCP natively?
├─ YES → MCP server (@viralnote/mcp-server or HTTP endpoint)
└─ NO → Does it load Agent Skills (SKILL.md)?
    ├─ YES → npx skills add viralnote/viralnote-skill (or ClawHub)
    └─ NO → REST API (curl, SDK, Zapier, n8n)
```

## Option 1: MCP server (recommended for Claude & Cursor)

**What it is:** A [Model Context Protocol](https://modelcontextprotocol.io) server — 15 typed tools (`create_post`, `list_analytics`, etc.) your host discovers automatically.

**Best for:**

- Claude Desktop / Claude Code (HTTP or OAuth)
- Cursor ([Cursor Directory plugin](https://cursor.directory/plugins/viralnote))
- Any MCP-compatible IDE or agent runtime

**Install highlights:**

| Host | How |
|------|-----|
| Cursor | [cursor.directory/plugins/viralnote](https://cursor.directory/plugins/viralnote) |
| Claude + Smithery | [smithery.ai/servers/viralnote/viralnote](https://smithery.ai/servers/viralnote/viralnote) |
| Generic HTTP | `https://dashboard.viralnote.app/api/mcp/mcp` + `Authorization: Bearer vnd_...` |
| Stdio npm | `npx -y @viralnote/mcp-server` |

**Pros:** Richest tool surface, no prompt engineering for endpoint shapes, works in chat UIs.

**Cons:** Requires MCP support in the host (not every runtime has it yet).

Deep dive: [MCP server for social media](/blog/mcp-server-social-media-schedule-claude-cursor).

## Option 2: Agent skill (viralnote-skill)

**What it is:** An open-source [SKILL.md](https://github.com/viralnote/viralnote-skill) pack that teaches the agent ViralNote’s REST API — when to call it, how to auth, workflow patterns, and guardrails (confirm before publish).

**Best for:**

- Claude Code / Claude Desktop with `npx skills add`
- **OpenClaw** via [ClawHub](https://clawhub.ai): `clawhub install @viralnote/viralnote`
- Custom agents that execute HTTP but don’t speak MCP

**Install:**

```bash
npx skills add viralnote/viralnote-skill
export VIRALNOTE_API_KEY="vnd_..."
```

**Pros:** Works anywhere the agent can read skills and issue HTTP requests. MIT-licensed, forkable.

**Cons:** The model chooses endpoints from instructions — slightly more variance than MCP tool schemas. No automatic tool discovery UI.

Docs: [skill documentation](https://www.viralnote.app/developers/skill) · [agents overview](https://www.viralnote.app/agents)

## Option 3: REST API (scripts & no-code)

**What it is:** Versioned HTTP API at `https://dashboard.viralnote.app/api/v1` with OpenAPI spec at `/api/v1/openapi`.

**Best for:**

- Cron jobs and internal scripts
- **Zapier / Make / n8n** (no agent reasoning layer)
- Mobile apps and custom dashboards
- Agents you build yourself with explicit function tools

**Minimal example:**

```bash
curl https://dashboard.viralnote.app/api/v1/posts \
  -H "x-api-key: $VIRALNOTE_API_KEY"
```

**Pros:** Universal, deterministic, easy to test and audit.

**Cons:** You wire each endpoint (or generate a client from OpenAPI). No chat-native “just ask” experience unless you add an agent layer on top.

Docs: [viralnote.app/developers/docs](https://www.viralnote.app/developers/docs)

## Comparison table

| | MCP | Skill | REST API |
|---|-----|-------|----------|
| **Tools exposed** | 15 MCP tools | Agent reads API docs in skill | All v1 endpoints |
| **Auth** | API key or OAuth | `VIRALNOTE_API_KEY` | API key / Bearer |
| **Host examples** | Claude, Cursor | OpenClaw, Claude skills | Zapier, Python, n8n |
| **Distribution** | npm, Smithery, Cursor Directory | GitHub, ClawHub | OpenAPI |
| **MIT open source** | [mcp-server](https://github.com/viralnote/mcp-server) | [viralnote-skill](https://github.com/viralnote/viralnote-skill) | N/A (API product) |

## Can you use more than one?

Yes — common pattern:

- **MCP in Cursor** for day-to-day scheduling while you work
- **REST + webhooks** for n8n when a post publishes
- **Skill on OpenClaw** for overnight autonomous runs

Use separate API keys per environment so you can revoke independently.

## Runtime-specific cheat sheet

| Runtime | Use |
|---------|-----|
| OpenClaw | MCP HTTP (preferred) or ClawHub skill — [OpenClaw setup](/blog/openclaw-viralnote-mcp-setup) |
| Hermes Agent | `~/.hermes/config.yaml` HTTP MCP — [Hermes setup](/blog/hermes-agent-viralnote-mcp-setup) |
| Zapier / Make | REST API — [no-code guide](/blog/build-social-media-agent-without-code) |
| n8n | REST + webhooks — [n8n triggers](/blog/webhooks-n8n-agent-triggers-social-media) |

## Get started

1. [Create an API key](https://dashboard.viralnote.app/developers/auth)
2. Pick your surface from the tree above
3. Try one workflow from [three agent workflows](/blog/three-agent-workflows-social-media-scheduling)

When in doubt: **MCP if the client supports it, skill if it loads SKILL.md, API if you’re wiring automation yourself.**

## FAQ

**Should I use ViralNote MCP or the agent skill?**

Use MCP when your host supports it natively (Claude Desktop, Claude Code, Cursor) for 15 discovered tools. Use the viralnote-skill when your agent loads SKILL.md and calls REST (OpenClaw via ClawHub, npx skills add).

**Can OpenClaw use ViralNote MCP?**

Yes. OpenClaw 2026.3.22+ supports Streamable HTTP MCP — openclaw mcp set with URL dashboard.viralnote.app/api/mcp/mcp and x-api-key header. ClawHub skill is the REST alternative.

**Is the ViralNote API the same as MCP?**

MCP wraps the same capabilities as typed tools. The REST API at /api/v1 is the underlying surface — use it directly for Zapier, Make, n8n, and custom scripts.


---

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
