MCP for AI

Connect AI assistants to your social media workspace

Styrar includes a native Model Context Protocol (MCP) server — connect Claude, Cursor, n8n, or any MCP-compatible AI tool in minutes using an API key or OAuth. Your AI works directly with your real posts, links, accounts, and analytics. No plugins, no third-party connectors, no extra setup.

See all integrations

What your AI can do with Styrar

Tools exposed via MCP:

  • `list_posts` — retrieve scheduled, published, and draft posts with filters
  • `create_post` — create a new draft post with platform targeting and media
  • `get_link_analytics` — fetch link click data and campaign performance for a date range
  • `list_links` — retrieve short links and campaign performance
  • `create_link` — create a new branded short link with UTM parameters
  • `list_social_accounts` — list connected social accounts and their status
  • `search` — search posts, links, and campaigns across your workspace

The full tool collection

Every action below is callable by your AI assistant over MCP — organized by category.

147tools across 12 categories
Links & social accounts29
  • list_social_accountsList connected Instagram, X (Twitter), TikTok, LinkedIn, YouTube, Threads, Facebook, and other social accounts. Optional companyId for company scope.
  • create_linkCreate a shortened URL with optional title, shortCode, company scope, expiresAt, activeFrom, campaignIds, linkGroupId, tagIds, customDomainId, qrStyle, and custom OG fields (ogTitle, ogDescription, ogImageUrl, ogInterstitialEnabled).
  • list_linksList shortened URLs; filter by companyId, campaignId, linkGroupId, tagId, or unassigned (no campaign).
  • get_linkFetch a single short link by linkId including click count and campaign metadata.
  • update_linkUpdate a short link: originalUrl, title, isActive, activeFrom, expiresAt, campaignId/campaignIds, linkGroupId, tagIds, qrStyle, and custom OG fields.
  • delete_linkPermanently delete a short link by linkId.
  • list_link_groupsList link groups (folders) for personal or company scope.
  • create_link_groupCreate a link group/folder with title and optional companyId or campaignId.
  • update_link_groupRename a link group by groupId.
  • delete_link_groupDelete a link group; links in the folder become unassigned.
  • list_link_tagsList tags used to label short links in personal or company scope.
  • create_link_tagCreate a link tag by name in personal or company scope.
  • update_link_tagRename a link tag by tagId.
  • delete_link_tagDelete a link tag and remove it from assigned links.
  • list_link_routing_rulesList geo/device routing rules that redirect visitors to alternate destination URLs.
  • create_link_routing_ruleAdd a geo or device rule mapping conditions to an HTTPS destinationUrl.
  • update_link_routing_ruleUpdate priority, conditions, destination URL, or active state on a link routing rule.
  • delete_link_routing_ruleRemove a geo/device routing rule from a short link.
  • get_link_experimentFetch the A/B experiment on a short link (variants, weights, status, click counts).
  • update_link_experimentCreate or replace a draft link experiment with HTTPS destinationUrl variants and weights.
  • delete_link_experimentRemove the A/B experiment configuration from a short link.
  • control_link_experimentStart, pause, or complete a link A/B experiment. Pass winningVariantId when completing.
  • bulk_create_linksCreate up to 100 links from a links array or CSV string. Set upsert true for idempotent shortCode imports.
  • bulk_update_linksUpdate up to 100 links in one request via an updates array (each entry needs id).
  • bulk_delete_linksDelete multiple short links by linkIds in personal or company scope.
  • import_link_ogScrape og:title, og:description, and og:image from the link destination URL into custom OG fields.
  • get_link_qrReturn short link QR metadata (shortCode, qrStyle). Binary PNG/SVG download uses the dashboard or GET /v1/links/:id/qr.
  • get_link_analyticsAggregated click counts across all short links; optional companyId and date range (from, to).
  • get_link_analytics_by_idClick analytics for a single linkId; optional date range (from, to).
Posts9
  • create_postCreate a DRAFT or SCHEDULED social post across Instagram, LinkedIn, X, TikTok, YouTube, and more. Use scheduledAt to schedule—no separate schedule_post tool. Call list_social_accounts first for socialAccountId in each target.
  • list_postsList posts with optional filters—status (DRAFT, SCHEDULED, PUBLISHED, FAILED), companyId, date range (from, to), page, limit.
  • get_postFetch a single post by postId including platform targets, approval status, media files, and analytics.
  • update_postUpdate a DRAFT or SCHEDULED post by postId. Editable fields: content, title, scheduledAt, status, campaignId, brandId, tags, mediaFileIds.
  • delete_postPermanently delete a post by postId (must be DRAFT, SCHEDULED, or FAILED).
  • list_saved_mentionsList workspace saved @mentions with per-platform handles for compose and publish substitution.
  • create_saved_mentionCreate or upsert a saved @mention with optional per-platform handles (X, LinkedIn, etc.).
  • update_saved_mentionUpdate a saved mention name or platformHandles by mentionId.
  • delete_saved_mentionDelete a workspace saved mention by mentionId.
Bio pages54
  • list_bio_pagesList bio pages for personal or company scope; includes live version and custom domain metadata.
  • get_bio_pageFetch one bio page by id, including live blocks and custom domain details.
  • create_bio_pageCreate a new bio page with title and optional company scope.
  • update_bio_pageUpdate bio page settings: title, custom tenantSlug, allowCustomSlug, trackingConfig (GA/GTM/pixels), and cookiePolicy banner when tracking is enabled.
  • delete_bio_pageDelete a bio page and linked sentinel click-tracking link.
  • list_bio_versionsList versions for a specific bio page id.
  • create_bio_versionSave a new bio page version draft with theme, pages, pageMeta, and chrome blocks. Set copyFromSource true to clone the latest locale version.
  • delete_bio_versionDelete a saved bio version. Cannot delete the only version on a page.
  • publish_bio_versionPublish a specific version id as the live bio page.
  • get_bio_blocksList blocks for a bio page version, optionally filtered by pagePath.
  • replace_bio_blocksReplace chrome blocks for a bio version (hero, nav, footer). For section content use update_bio_version.
  • get_bio_versionFetch a bio version with theme, pages, pageMeta sections, and chrome blocks. Omit versionId for the latest locale draft.
  • update_bio_versionSave a bio draft in place with theme, pages, pageMeta (sections), and chrome blocks. Use for layout and content edits.
  • get_bio_experimentFetch the A/B experiment config for a bio page (variants, scope, status, click counts).
  • update_bio_experimentCreate or replace a draft bio experiment with variants (bioPageVersionId + weight). Scope: page, section, or block.
  • delete_bio_experimentRemove the A/B experiment configuration from a bio page.
  • control_bio_experimentStart, pause, or complete a bio A/B experiment. Pass winningVariantId when completing.
  • list_bio_routing_rulesList geo/device routing rules that serve alternate bio versions to visitors.
  • create_bio_routing_ruleAdd a geo or device routing rule mapping conditions to a bioPageVersionId.
  • update_bio_routing_ruleUpdate priority, conditions, target version, or active state on a bio routing rule.
  • delete_bio_routing_ruleRemove a geo/device routing rule from a bio page.
  • get_bio_domainFetch the custom domain attached to a bio page (company workspaces only).
  • set_bio_domainAttach a custom hostname to a bio page. Returns DNS records to configure.
  • verify_bio_domainRe-check Cloudflare verification status for a bio page custom domain.
  • delete_bio_domainDetach and delete the custom domain from a bio page.
  • list_bio_blog_categoriesList blog categories for a bio page, optionally filtered by locale.
  • create_bio_blog_categoryCreate a blog category on a bio page with name, locale, and optional slug.
  • update_bio_blog_categoryUpdate a bio blog category name or slug.
  • delete_bio_blog_categoryDelete a bio blog category.
  • list_bio_blog_postsList blog posts on a bio page; filter by locale, status, or categoryId.
  • get_bio_blog_postFetch one bio blog post by id.
  • create_bio_blog_postCreate a bio blog post with title, HTML content, excerpt, cover image, SEO fields, and DRAFT or PUBLISHED status.
  • update_bio_blog_postUpdate bio blog post content, metadata, category, slug, or publish status.
  • delete_bio_blog_postDelete a bio blog post.
  • get_bio_booking_settingsFetch appointment booking settings for a bio page: timezone, notice windows, deposit processor (Stripe or Shopify), calendar sync, and notification email.
  • update_bio_booking_settingsConfigure bio booking: IANA timezone, notifyEmail, minNoticeMinutes, maxAdvanceDays, depositProcessor with stripeConnectAccountId or shopifyStoreId, and optional calendar sync fields.
  • list_bio_booking_servicesList bookable services on a bio page with duration, buffer, capacity, custom fields, and optional deposit amounts.
  • get_bio_booking_serviceFetch one bio booking service by bioPageId and serviceId.
  • create_bio_booking_serviceAdd a bookable service with name, durationMinutes, optional description, buffer, capacity, custom intake fields, and optional depositAmountCents.
  • update_bio_booking_serviceUpdate service name, duration, deposits, custom fields, active state, or sort order.
  • delete_bio_booking_serviceRemove a bookable service from a bio page.
  • list_bio_booking_availability_rulesList weekly hours and date-override availability or blackout rules for bio booking.
  • create_bio_booking_availability_ruleAdd weekly hours or a date_override rule. Use ruleType weekly with weekday 0-6, or date_override with YYYY-MM-DD. Set isBlackout for blocked days.
  • update_bio_booking_availability_ruleUpdate startMinute/endMinute, blackout flag, or date on an availability rule.
  • delete_bio_booking_availability_ruleRemove a weekly or date-override availability rule.
  • list_bio_booking_appointmentsList upcoming or past appointments for a bio page with optional limit and cursor pagination.
  • get_bio_booking_appointmentFetch one appointment with service, slot times, guest details, and status.
  • update_bio_booking_appointmentMark a confirmed past appointment as no_show via action no_show.
  • cancel_bio_booking_appointmentCancel a confirmed appointment and notify the guest when configured.
  • list_bio_theme_presetsList workspace-saved custom bio theme presets for personal or company scope.
  • create_bio_theme_presetSave a reusable bio theme preset with label and theme JSON for the active workspace.
  • delete_bio_theme_presetDelete a saved custom bio theme preset by presetId.
  • get_bio_analyticsFetch click analytics for a bio page id with optional from/to date range.
  • get_workspace_bio_analyticsOverview analytics across all bio pages in personal or company scope.
Campaigns5
  • list_campaignsList campaigns for personal or company scope with optional brand and click totals filters.
  • get_campaignFetch one campaign by id including counts and brand metadata.
  • create_campaignCreate a campaign with name and optional company, brand, destination, UTM, and dynamic link settings.
  • update_campaignUpdate a campaign by campaignId. Editable fields: name, description, defaultDestinationUrl, dynamicSourceEnabled, dynamicLinkMode, utmDefaults, brandId.
  • delete_campaignPermanently delete a campaign by campaignId.
Content planning8
  • get_content_planning_boardFetch the company content pipeline board and work items. Use view kanban for /content/plan column order, list for /content/list sorting, or timeline for /content/timeline due-date ranges. Requires company workspace and contentPlanning feature flag. Filters: campaignId, brandId, stage slug/id, tag, assigneeUserId, type (POST|LINK|BIO_UPDATE), q. Timeline view accepts optional from/to ISO dates (defaults to current month through two months ahead).
  • create_content_work_itemAdd a card to the content planning pipeline (Kanban). Requires companyId. Optional stageId, type (POST|LINK|BIO_UPDATE), title, description, campaignId, brandId, assigneeUserId, startDate, endDate, dueDate, linked postId/linkId/bioPageId, and tags.
  • update_content_work_itemUpdate a planning card by workItemId and companyId. Editable fields match create_content_work_item plus stageId and position.
  • delete_content_work_itemPermanently delete a planning card by workItemId and companyId.
  • move_content_work_itemMove a planning card to another pipeline stage (Kanban column). Requires workItemId, companyId, stageId; optional position within the column.
  • add_content_work_item_tagAdd a tag label to a planning card. Requires workItemId, companyId, and tag.
  • remove_content_work_item_tagRemove a tag from a planning card. Requires workItemId, companyId, and tag.
  • reorder_content_planning_stagesReorder or rename Kanban pipeline stages. Requires content_planning:admin. Pass companyId, boardId, and stages array with id plus optional position and name.
Automations8
  • list_automationsList automation flows for personal or company scope.
  • get_automationFetch one automation by id including recent runs and nodes.
  • create_automationCreate an automation with name and optional description or company scope.
  • update_automationUpdate automation fields such as name, description, status, or viewport coordinates.
  • list_automation_runsList run history for a specific automation id.
  • run_automationTrigger a manual run for an automation with optional input payload.
  • create_automation_nodeAdd a step to an automation (kind, label, x, y required) with optional visual and config fields.
  • create_automation_edgeConnect two automation steps with a link between them.
Approval flows7
  • list_approval_flowsList approval flows for a company (companyId required).
  • get_approval_flowFetch one approval flow by id including nodes and edges.
  • create_approval_flowCreate a company approval flow with name, optional description, and optional default flag.
  • update_approval_flowUpdate approval flow fields such as name, description, status, and default flag.
  • delete_approval_flowDelete an approval flow by id.
  • test_approval_flowSimulate a flow test run with optional dummy post fields and get step and notification results.
  • post_approval_actionPerform post approval actions (approve, reject, request_changes, reassign, override) on post tasks.
AI skill documents6
  • list_skill_documentsList Markdown skill documents for the current user or a specific brand (provide both companyId and brandId for brand scope). Returns id, slug, title, sortOrder.
  • get_skill_documentFetch a single skill document by id, including the full Markdown body. Optionally scope to a brand with companyId + brandId.
  • create_skill_documentCreate a new Markdown skill document for the user or a brand (provide both companyId and brandId for brand scope). Use list_skill_templates to get ready-made starting content.
  • update_skill_documentUpdate an existing skill document's title, Markdown body, slug, or sortOrder by id.
  • delete_skill_documentDelete a skill document by id. Optionally scope to a brand with companyId + brandId.
  • list_skill_templatesList ready-made Markdown templates — brand voice, Instagram strategy, LinkedIn strategy, content calendar, campaign planner, and hashtag strategy. Copy a template body into create_skill_document to add it to a workspace.
Media library6
  • upload_mediaStore an image in the media library by passing its content as a base64-encoded string (fileData). Requires fileName and mimeType (must be image/*). The file is stored securely in S3 and automatically processed. Returns the stored file id and a signed view URL. Use when the user sends an image directly in the conversation.
  • upload_media_from_urlFetch a public image URL and store it in the media library. Requires url (must resolve to an image). Optional fileName and companyId. Returns the stored file id and a signed view URL.
  • generate_imageGenerate a new image from a text prompt and save it to the media library. Requires prompt. Optional fileName, companyId, provider (openai or gemini), and size (1024x1024, 1536x1024, or 1024x1536). Returns the stored file id and signed viewUrl.
  • list_mediaReturns the 25 most recent images and videos from the media library as an interactive picker with inline previews. Images are shown directly; videos are shown with their thumbnail frame. Each item includes fileName, id, mimeType, sizeBytes, and duration (for videos). Call this whenever the user needs to choose a media file. Optional filters: companyId, q (filename search), tag, page.
  • get_mediaFetch a single library file by id, including a signed view URL and processing status.
  • delete_mediaPermanently delete a library file by id. The file is removed from S3 and the account.
Companies & brands9
  • list_companiesList all companies the authenticated user belongs to, with role and member counts. Call this first to discover available companyId values.
  • get_companyFetch a single company by id including brand count, member count, and subscription plan.
  • create_companyCreate a new company workspace with a name and unique slug. The authenticated user becomes the owner.
  • update_companyUpdate a company's name or other profile fields by companyId.
  • list_brandsList all brands for a company by companyId. Returns id, name, slug, isArchived, and logo. Call before scoping posts, campaigns, or skill documents to a brand.
  • get_brandFetch a single brand by companyId and brandId including guidelines and logo.
  • create_brandCreate a new brand inside a company by companyId. Requires a name; slug is auto-derived.
  • update_brandUpdate a brand's name, guidelines, or archive status by companyId and brandId.
  • list_company_membersList members of a company by companyId. Returns user name, email, role, and brand access. Useful for approval flow setup.
Workspace notes5
  • list_notesList workspace notes for personal or company scope. Optional companyId to filter to a company workspace.
  • get_noteFetch a single workspace note by noteId including full body text.
  • create_noteCreate a markdown workspace note with title and body. Optional companyId and visibility (PRIVATE or COMPANY).
  • update_noteUpdate a workspace note's title, body, or visibility by noteId.
  • delete_notePermanently delete a workspace note by noteId.
Search1
  • searchGlobal search across posts, links, campaigns, bio pages, and notes. Returns matched items with type labels. Use for broad 'find me something' queries.

Connect in minutes

Claude Desktop

  1. Open your Styrar dashboard → Settings → API Keys → Generate new key
  2. Open Claude Desktop → Settings → Developer → Edit config
  3. Add the Styrar MCP server block below to `claude_desktop_config.json`
  4. Restart Claude Desktop. Ask Claude: "What posts do I have scheduled this week?"
{
  "mcpServers": {
    "styrar": {
      "type": "streamable-http",
      "url": "https://mcp.styrar.com",
      "headers": {
        "Authorization": "Bearer your_api_key_here"
      }
    }
  }
}

Cursor / HTTP remote

  1. Open your Styrar dashboard → Settings → API Keys → Generate new key
  2. In Cursor Settings → MCP → Add server with the URL and Authorization header below
  3. Cursor will auto-discover available tools. Start prompting.
  • URL: https://mcp.styrar.com
  • Header: Authorization: Bearer your_api_key_here

Example prompts

  • What are my top-performing posts from last month?
  • Create a draft post for Instagram announcing our new product launch
  • How many clicks did my styrar.link/launch link get this week?
  • Schedule a LinkedIn post for tomorrow at 9am
  • What's my engagement rate across all platforms this month?

What Styrar MCP unlocks for your team

Native MCP server included

No plugins or third-party connectors. Styrar exposes a standards-compliant MCP endpoint you connect to with an API key or OAuth — available on Team and Agency plans.

Works with Claude, Cursor, n8n, and more

Any MCP-compatible client can connect. Claude Desktop, Cursor, n8n, and custom agents all work out of the box using the same server endpoint and authentication.

Permissions are inherited automatically

Your AI operates within the exact roles and capabilities you have set on your workspace. It cannot publish, delete, or access anything you have not already allowed — for yourself or your team.

Schedule, analyze, and manage via natural language

Ask your AI assistant to draft and queue a post, pull last week's analytics, create a short link, or list your connected accounts. It calls Styrar tools directly and returns results in context.

Get connected in under five minutes

The Styrar MCP server runs over HTTP and authenticates via Bearer token or OAuth. Generate an API key under Settings - API Keys, paste the server URL and token into your AI client, and you are ready to go. No local server, no Docker, no build step.

  • Generate an API keyOpen Settings - API Keys in your Styrar dashboard and create a new key with the scopes you need.
  • Add the MCP server to your clientPaste the Styrar MCP endpoint URL and your API key into Claude Desktop, Cursor, or your preferred MCP client configuration.
  • Start working with your AIYour AI assistant can now schedule posts, pull analytics, manage links, and query your social accounts directly from chat or the IDE.

What your AI can do through Styrar MCP

The Styrar MCP server exposes a complete set of tools covering the core social OS workflow. Your AI can act on your behalf across scheduling, analytics, and link management — with the same guardrails as the dashboard.

  • Schedule and draft postsAsk your AI to create a scheduled post for one or more platforms, set a publish time, and queue it — all without opening the dashboard.
  • Pull analytics and performance dataRetrieve reach, engagement, link click counts, and follower growth for any connected account or date range.
  • Create and manage short linksGenerate branded short links, look up click analytics, and organize links into campaigns through natural language.
  • Query connected accountsList your connected social accounts, check posting limits, or ask which platforms are active on the current workspace.
  • Manage your content queueReview, reschedule, or cancel queued posts — useful for bulk edits or pre-launch content audits run by an AI agent.

Teams using AI with Styrar

Developers in Cursor

Draft posts, pull analytics, and manage links from the IDE via the MCP server and API key.

Operators in Claude

Ask your assistant to queue content or summarize performance without opening another tab.

Agencies

Standardize repeatable social tasks through AI tools while RBAC keeps client workspaces separate.

Related solutions

AI and MCP FAQs

What is MCP and how does Styrar use it?

Model Context Protocol (MCP) is an open standard that lets AI assistants call external tools securely. Styrar implements an MCP server so AI clients like Claude and Cursor can directly schedule posts, read analytics, and manage links in your workspace. You authenticate with an API key or OAuth — no plugins or middleware required.

How do I connect Claude Desktop to Styrar?

Generate an API key under Settings - API Keys in Styrar, then add the Styrar MCP server URL and your key to the Claude Desktop MCP server configuration (claude_desktop_config.json). Restart Claude Desktop and your assistant will have access to your Styrar workspace tools immediately.

How do I connect Cursor to Styrar?

In Cursor, open Settings - MCP and add a new server entry with the Styrar MCP endpoint URL and your API key as the Bearer token. Once saved, Cursor Composer can call Styrar tools directly — scheduling posts, pulling stats, or managing links without leaving the editor.

Can I connect n8n or other automation tools?

Yes. n8n supports MCP servers natively through its MCP client node. Configure the Styrar MCP endpoint and your API key in the n8n credential, then use it in any workflow to schedule posts, query analytics, or trigger social actions as part of a larger automation.

Does my AI bypass approval workflows?

No. AI actions run through the same permission rails and approval flows as the dashboard. If your workspace requires post approval before publishing, an AI-initiated post will enter the same approval queue. Roles and capabilities are inherited from your workspace settings automatically.

Is the MCP connection secure?

Yes. All MCP traffic runs over HTTPS. Authentication uses either a dashboard API key (Bearer token) or OAuth consent, and you can revoke access at any time from Settings - API Keys. The AI can only perform actions your key or OAuth scope permits.

What can my AI do through the Styrar MCP server?

The current MCP server exposes tools for scheduling and drafting posts, reading analytics and link performance, creating and managing short links, listing connected social accounts, and managing queued content. The tool set grows with the platform — check the MCP feature page for the latest list.

Does the MCP integration work with ChatGPT?

ChatGPT supports MCP through its Actions system, which uses a different configuration flow than Claude or Cursor. You can point a custom ChatGPT Action at the Styrar MCP-compatible endpoint — contact support for the current integration guide if you are setting this up.

Add AI to your social workflow

Connect Styrar to Claude, Cursor, or any MCP-compatible AI tool. Takes about five minutes.

View pricing

Join the beta waitlist

By signing up you agree to receive marketing email. See our Privacy Policy.