Boring Social Publisher
/install boring-social-publisher
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
- Sign up at boring.aiagent-me.com with Google
- Connect your social accounts — link Facebook Pages, Instagram Business, Threads, YouTube, TikTok, or X accounts via OAuth
- Get your MCP link: Go to Settings → copy your MCP Server URL (contains your auth token — treat it like a password)
- 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_filewithfile_pathto upload and get a public URL - External URLs: Use
boring_upload_from_urlto 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:
| Platform | Text Limit | Media Required | Notes |
|---|---|---|---|
| No strict limit | No | Supports text, photo, album (2-10), video | |
| 2,200 chars | Yes | Photo, carousel (2-10), Reels (video 9:16) | |
| Threads | 500 chars | No | Text, photo, carousel (2-20), video |
| YouTube | Title: 100, Desc: 5,000 | Yes (video) | Text format: `Title\ |
| \ | |||
| Description` | |||
| TikTok | 2,200 chars | Yes (video or photos) | Video or photo carousel (up to 35) |
| X | 280 chars | No | Text, 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\ \ Description 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 listplatform: the platform nametext: adapted contentmedia_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_atparameter with ISO 8601 format:2025-12-25T10:00:00Z - Use
boring_list_scheduled_poststo view queued posts - Use
boring_cancel_scheduled_postto cancel before publish time
Error Handling
| Error | Solution |
|---|---|
InvalidApiKey |
MCP link may be invalid — regenerate it at boring.aiagent-me.com Settings |
TokenExpired |
Ask user to reconnect the account at boring.aiagent-me.com |
MediaRequired |
Instagram/TikTok require media — skip or ask user for an image |
TextTooLong |
Truncate or split content for the platform |
RateLimitExceeded |
Wait and retry (check retry_after field) |
AccountDisabled |
Account was disconnected — reconnect at dashboard |
Example Usage
User: "Post 'Just launched our new product!' with this image to all my accounts"
Agent workflow:
boring_list_accounts→ finds Facebook, Instagram, Threads accountsboring_upload_from_url(if image is a URL) → gets hosted URLboring_publish_postto Facebook with text + imageboring_publish_postto Instagram with text + imageboring_publish_postto Threads with text + image- Report: "Published to 3 platforms successfully"
Documentation
Full API docs: boring-doc.aiagent-me.com
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install boring-social-publisher - After installation, invoke the skill by name or use
/boring-social-publisher - Provide required inputs per the skill's parameter spec and get structured output
What is Boring Social Publisher?
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... It is an AI Agent Skill for Claude Code / OpenClaw, with 142 downloads so far.
How do I install Boring Social Publisher?
Run "/install boring-social-publisher" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Boring Social Publisher free?
Yes, Boring Social Publisher is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Boring Social Publisher support?
Boring Social Publisher is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Boring Social Publisher?
It is built and maintained by snoopyrain (@snoopyrain); the current version is v1.0.4.