Connect Claude to Viraly

Updated November 7, 2026

Connect Claude to Viraly and you can schedule posts with Claude, read your analytics and manage your bio pages by chatting, in Claude.ai, Claude Desktop or Claude Code. Viraly’s MCP server runs each request under your account, within the scopes you grant and your plan’s limits. ChatGPT and Cursor connect to the same server, and the MCP server doc has their steps and the full tool list.

What you need

  • A Viraly account with at least one connected channel. The MCP server is included on every plan, including Free.
  • Claude.ai in your browser, the Claude Desktop app, or Claude Code in a terminal.
  • The server address, https://mcp.viraly.io/mcp. There is no API key to copy; the connection runs on OAuth.

How Claude MCP works

The Model Context Protocol is an open standard from Anthropic that lets an AI assistant call tools in an outside service. Viraly’s MCP server offers Claude 126 tools, the same tools the assistant inside the Viraly app uses, from schedule_post to get_post_analytics.

Step 1: connect Claude to Viraly

The Viraly side is the same in every client: a browser window opens, you sign in, select a workspace and click Allow Access.

Claude.ai (web)

In Claude.ai, open Settings, then Custom Connectors, and add https://mcp.viraly.io/mcp. Follow the OAuth prompt. Anthropic’s connector setup guide has the latest exact wording.

Claude Desktop

Open Claude Desktop’s settings, find the Connectors section (or edit claude_desktop_config.json directly) and add:

{
  "mcpServers": {
    "viraly": {
      "url": "https://mcp.viraly.io/mcp"
    }
  }
}

Restart Claude Desktop. The first time you use a Viraly tool, Claude opens the browser window for the sign-in.

Claude Code

One command does it:

claude mcp add viraly https://mcp.viraly.io/mcp -t http

Claude Code opens your browser for the OAuth flow on first use.

Step 2: grant the scopes you want

During that first sign-in, your client asks for a set of OAuth scopes, and you can grant a subset. Each tool needs one: posts:read for listing posts, posts:write for scheduling, editing, publishing and canceling, analytics:read for the numbers, and biolinks:read with biolinks:write for bio pages. A tool whose scope you withheld answers with a scope error and changes nothing, and each authorization covers one workspace at a time. The MCP server doc lists every scope.

What Claude can do once connected

The result is a Claude social media manager inside your own Viraly account. Within the scopes you granted, Claude can:

  • Schedule, edit, reschedule and cancel posts on ten social networks: Instagram, Facebook, X, LinkedIn, TikTok, YouTube, Pinterest, Threads, Bluesky and Mastodon.
  • Draft captions, rewrite them for another platform, suggest hashtags and generate an image into your media library.
  • Read your calendar and analytics: what one post did, how a channel performed, your best times and top posts, with a CSV export.
  • Manage bio pages: create one with create_bio_page, add a link button with add_block, and read the page’s traffic.

The MCP server doc lists all 126 tools with their risk class: a read runs at once, a reversible write changes your workspace, and an always-ask action (publish_now, deleting, disconnecting a channel) cannot be taken back, so make sure your client asks before each of those.

What Claude cannot do

  • It cannot step outside the scopes you granted or past your plan’s limits; the server enforces both exactly as the web app does.
  • It never sees your network passwords or tokens; those stay inside Viraly, and Claude only calls Viraly’s tools under your account’s permissions.
  • It shows no Viraly card and offers no Undo over MCP.
  • It cannot use the competitor, team and billing tools, which today belong to the in-app assistant only.

The rules that apply

Plan limits. Through MCP every plan, Free included, can read and write within the scopes you grant, and your plan’s own limits apply exactly as in the web app: posts per month, connected channels and the AI image quota. A call past a limit returns a plain message naming the limit. The assistant inside the app follows its own rules: on Free it answers questions only, and from the Influencer plan it shows a card before every change and keeps Undo for 30 days.

No Viraly card. Over MCP there is no Viraly card and no Undo, so Claude’s own permission prompt is the check: Claude shows you each tool call with its arguments before it runs, and nothing reaches Viraly until you accept it. Viraly records every call on its side.

Revoke any time. Settings, then Connected Apps in the Viraly web app lists every active connection, and revoke cuts a client off at once. The sign-in uses OAuth 2.1 with PKCE, and the server’s source is open at github.com/viraly-io/viraly-mcp-server.

A worked example: Thursday’s Instagram post at 9:00

Say you keep an Instagram draft in Viraly. You tell Claude: “Schedule my Instagram draft about the spring menu for Thursday at 9:00.” Here’s how it works, in three tool calls:

  • list_posts (a read). Claude lists the posts of your social set, where unscheduled drafts come last, and takes the draft’s id.
  • validate_post (a read). Claude lays Thursday 9:00 over the draft’s stored settings and checks them against Instagram’s rules, the channel’s state and the time; any problem comes back as a list, and nothing is saved.
  • schedule_post (a reversible write). Claude sends the draft’s postId with the new time. Your client shows you the call first; once you approve it, the post turns Scheduled and publishes by itself at 9:00 in your social set’s timezone.

Ask “show me next week” and Claude calls get_calendar to confirm. “Move it to Friday at 11:00” calls reschedule_post, and “turn it back into a draft” calls cancel_post.

Frequently asked questions

Can I connect Claude to Instagram through Viraly?

Yes. Connect Claude to Viraly and every channel in the workspace you authorized is available, your Instagram account included. Claude can draft the caption, check it against Instagram’s rules with validate_post and schedule it with schedule_post, within the scopes you granted.

Which Viraly plan do I need to schedule posts with Claude?

Every plan works, Free included. Through MCP, Claude reads and writes within the scopes you grant, and your plan’s own limits apply exactly as in the web app: posts per month, connected channels and the AI image quota. A call past a limit returns a message naming the limit.

Does Claude see my social media passwords?

No. The connection uses OAuth scopes you grant to Claude, and the tokens that connect your channels stay inside Viraly. Claude only calls Viraly’s tools, which run under your account’s permissions, so it never holds a password, a token or a key for any network.

Can I undo a change Claude made through MCP?

No. There is no Undo over MCP and no Viraly card before the change, so read the arguments Claude shows you before you approve a tool call. Afterwards, ask Claude to move the post back with reschedule_post or turn it into a draft with cancel_post.

Can I limit what Claude is allowed to do?

Yes. When you connect, Claude asks for a set of OAuth scopes and you can grant a subset, for example posts:read and analytics:read without posts:write for a connection that only reads. A tool that needs a scope you withheld returns a scope error and changes nothing.

Why does Claude not see the Viraly tools?

Check that the URL is exactly https://mcp.viraly.io/mcp, restart Claude, and confirm the sign-in completed: viraly should be listed under Settings, then Connected Apps in the Viraly web app. If a tool asks for an additional permission, revoke the connection there, add the connector again and grant the missing scope.