Boring Social Publisher

v1.0.4

Publish social media posts to multiple platforms at once using Boring. Use when the user says 'post to social media', 'publish everywhere', 'cross-post', 'sh...

0· 147· 4 versions· 0 current· 0 all-time· Updated 1mo ago· MIT-0

Boring Social Publisher

Publish content to multiple social media platforms with a single message. Powered by Boring — a unified social media publishing API.

Security & Data Handling

  • MCP link is a credential: Your MCP Server URL (https://boring.aiagent-me.com/mcp/t/xxxxx...) contains an embedded authentication token. Treat it like a password — do not share it publicly. You can regenerate it anytime in Settings.
  • Media uploads: When you provide local files or URLs, they are uploaded to Boring's Google Cloud Storage (boring.aiagent-me.com) to make them accessible for publishing to social platforms. This is required because social media APIs need publicly accessible media URLs.
  • Data flow: Your post content and media are sent from Boring's server to the social media platform APIs (Facebook, Instagram, Threads, YouTube, TikTok, X) on your behalf via your connected OAuth tokens.
  • No local credentials: This skill does not require any local API keys or environment variables. All authentication is embedded in the MCP link.
  • Privacy: Uploaded media is stored in Google Cloud Storage for publishing purposes. Boring does not use your content for any other purpose.

Prerequisites

  1. Sign up at boring.aiagent-me.com with Google
  2. Connect your social accounts — link Facebook Pages, Instagram Business, Threads, YouTube, TikTok, or X accounts via OAuth
  3. Get your MCP link: Go to Settings → copy your MCP Server URL (contains your auth token — treat it like a password)
  4. Add to Claude: Paste the MCP link into Claude settings as a Connector — no install, no API key needed

Workflow

When the user wants to publish content across platforms, follow these steps:

Step 1: Get Available Accounts

Call boring_list_accounts to see which platforms the user has connected. Show them a summary:

  • Account name and platform
  • Connection status

Step 2: Confirm Content and Platforms

Ask the user:

  • What content to post (text, images, videos)
  • Which platforms to target (or "all")
  • Whether to publish now or schedule for later

Step 3: Prepare Media (if needed)

If the user provides local files or URLs:

  • Local files: Use boring_upload_file with file_path to upload and get a public URL
  • External URLs: Use boring_upload_from_url to re-host the media on Boring's cloud storage
  • Google Drive links: Pass directly — Boring handles Google Drive URLs automatically

Step 4: Adapt Content Per Platform

Automatically adjust content for each platform's requirements:

PlatformText LimitMedia RequiredNotes
FacebookNo strict limitNoSupports text, photo, album (2-10), video
Instagram2,200 charsYesPhoto, carousel (2-10), Reels (video 9:16)
Threads500 charsNoText, photo, carousel (2-20), video
YouTubeTitle: 100, Desc: 5,000Yes (video)Text format: Title\n\nDescription
TikTok2,200 charsYes (video or photos)Video or photo carousel (up to 35)
X280 charsNoText, up to 4 images or 1 video

Important adaptations:

  • Truncate text to fit platform limits
  • Skip Instagram if no media is available (media is mandatory)
  • For YouTube: format text as Video Title\n\nDescription text here
  • For Threads: split long content into a thread if over 500 chars using boring_publish_thread

Step 5: Publish

For each selected platform, call boring_publish_post with:

  • account_id: from the account list
  • platform: the platform name
  • text: adapted content
  • media_urls: array of media URLs (if any)
  • scheduled_at: ISO 8601 datetime if scheduling (e.g., 2025-12-25T10:00:00Z)

Step 6: Report Results

After publishing, summarize:

  • Which platforms succeeded with post IDs
  • Which platforms failed and why
  • If scheduled, show the scheduled time and post IDs

Scheduling

To schedule posts for later:

  • Add scheduled_at parameter with ISO 8601 format: 2025-12-25T10:00:00Z
  • Use boring_list_scheduled_posts to view queued posts
  • Use boring_cancel_scheduled_post to cancel before publish time

Error Handling

ErrorSolution
InvalidApiKeyMCP link may be invalid — regenerate it at boring.aiagent-me.com Settings
TokenExpiredAsk user to reconnect the account at boring.aiagent-me.com
MediaRequiredInstagram/TikTok require media — skip or ask user for an image
TextTooLongTruncate or split content for the platform
RateLimitExceededWait and retry (check retry_after field)
AccountDisabledAccount was disconnected — reconnect at dashboard

Example Usage

User: "Post 'Just launched our new product!' with this image to all my accounts"

Agent workflow:

  1. boring_list_accounts → finds Facebook, Instagram, Threads accounts
  2. boring_upload_from_url (if image is a URL) → gets hosted URL
  3. boring_publish_post to Facebook with text + image
  4. boring_publish_post to Instagram with text + image
  5. boring_publish_post to Threads with text + image
  6. Report: "Published to 3 platforms successfully"

Documentation

Full API docs: boring-doc.aiagent-me.com

Version tags

latestvk970dr1014797ap3g0wgnxdtdn83pvyd

Runtime requirements

🚀 Clawdis
ConfigMCP Connector link from boring.aiagent-me.com (contains embedded auth token)