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
- 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_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:
| Platform | Text Limit | Media Required | Notes |
|---|
| Facebook | No strict limit | No | Supports text, photo, album (2-10), video |
| Instagram |
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\n\nDescription |
| 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 INLINECODE7
- For Threads: split long content into a thread if over 500 chars using INLINECODE8
Step 5: Publish
For each selected platform, call boring_publish_post with:
- -
account_id: from the account list - INLINECODE11 : the platform name
- INLINECODE12 : adapted content
- INLINECODE13 : array of media URLs (if any)
- INLINECODE14 : 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: INLINECODE17 - Use
boring_list_scheduled_posts to view queued posts - Use
boring_cancel_scheduled_post to cancel before publish time
Error Handling
| Error | Solution |
|---|
| INLINECODE20 | MCP link may be invalid — regenerate it at boring.aiagent-me.com Settings |
| INLINECODE21 |
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:
- 1.
boring_list_accounts → finds Facebook, Instagram, Threads accounts - INLINECODE28 (if image is a URL) → gets hosted URL
- INLINECODE29 to Facebook with text + image
- INLINECODE30 to Instagram with text + image
- INLINECODE31 to Threads with text + image
- Report: "Published to 3 platforms successfully"
Documentation
Full API docs: boring-doc.aiagent-me.com
Boring Social Publisher
通过单条消息将内容发布到多个社交媒体平台。由 Boring 提供支持——一个统一的社交媒体发布 API。
安全与数据处理
- - MCP 链接即凭证:您的 MCP 服务器 URL(https://boring.aiagent-me.com/mcp/t/xxxxx...)包含一个嵌入的身份验证令牌。请像对待密码一样对待它——不要公开分享。您可以随时在设置中重新生成。
- 媒体上传:当您提供本地文件或 URL 时,它们会被上传到 Boring 的 Google Cloud Storage(boring.aiagent-me.com),以便发布到社交平台。这是必需的,因为社交媒体 API 需要可公开访问的媒体 URL。
- 数据流:您的帖子内容和媒体通过您连接的 OAuth 令牌,从 Boring 服务器发送到社交媒体平台 API(Facebook、Instagram、Threads、YouTube、TikTok、X)。
- 无本地凭证:此技能不需要任何本地 API 密钥或环境变量。所有身份验证都嵌入在 MCP 链接中。
- 隐私:上传的媒体存储在 Google Cloud Storage 中用于发布目的。Boring 不会将您的内容用于任何其他目的。
前提条件
- 1. 使用 Google 在 boring.aiagent-me.com 注册
- 连接您的社交账户——通过 OAuth 链接 Facebook 主页、Instagram 商业账户、Threads、YouTube、TikTok 或 X 账户
- 获取您的 MCP 链接:前往 设置 → 复制您的 MCP 服务器 URL(包含您的身份验证令牌——像对待密码一样对待它)
- 添加到 Claude:将 MCP 链接作为连接器粘贴到 Claude 设置中——无需安装,无需 API 密钥
工作流程
当用户想要跨平台发布内容时,请按照以下步骤操作:
步骤 1:获取可用账户
调用 boringlistaccounts 查看用户已连接的平台。向用户展示摘要:
步骤 2:确认内容和平台
询问用户:
- - 要发布什么内容(文本、图片、视频)
- 目标平台(或全部)
- 立即发布还是稍后定时发布
步骤 3:准备媒体(如果需要)
如果用户提供本地文件或 URL:
- - 本地文件:使用 boringuploadfile 配合 filepath 上传并获取公共 URL
- 外部 URL:使用 boringuploadfromurl 将媒体重新托管到 Boring 的云存储
- Google Drive 链接:直接传递——Boring 会自动处理 Google Drive URL
步骤 4:按平台调整内容
自动根据每个平台的要求调整内容:
| 平台 | 文本限制 | 是否需要媒体 | 备注 |
|---|
| Facebook | 无严格限制 | 否 | 支持文本、照片、相册(2-10张)、视频 |
| Instagram |
2,200 字符 |
是 | 照片、轮播(2-10张)、Reels(视频 9:16) |
| Threads | 500 字符 | 否 | 文本、照片、轮播(2-20张)、视频 |
| YouTube | 标题:100,描述:5,000 |
是(视频) | 文本格式:标题\n\n描述 |
| TikTok | 2,200 字符 |
是(视频或照片) | 视频或照片轮播(最多35张) |
| X | 280 字符 | 否 | 文本,最多4张图片或1个视频 |
重要调整:
- - 截断文本以适应平台限制
- 如果没有媒体可用,跳过 Instagram(媒体是必填项)
- 对于 YouTube:将文本格式化为 视频标题\n\n描述文本
- 对于 Threads:如果内容超过500字符,使用 boringpublishthread 拆分成帖子串
步骤 5:发布
对于每个选定的平台,调用 boringpublishpost,参数包括:
- - accountid:来自账户列表
- platform:平台名称
- text:调整后的内容
- mediaurls:媒体 URL 数组(如果有)
- scheduled_at:如果定时发布,使用 ISO 8601 日期时间(例如 2025-12-25T10:00:00Z)
步骤 6:报告结果
发布后,总结:
- - 哪些平台成功发布,附带帖子 ID
- 哪些平台失败及原因
- 如果定时发布,显示定时时间和帖子 ID
定时发布
要定时发布帖子:
- - 添加 scheduledat 参数,使用 ISO 8601 格式:2025-12-25T10:00:00Z
- 使用 boringlistscheduledposts 查看排队的帖子
- 使用 boringcancelscheduled_post 在发布前取消
错误处理
| 错误 | 解决方案 |
|---|
| InvalidApiKey | MCP 链接可能无效——在 boring.aiagent-me.com 设置中重新生成 |
| TokenExpired |
请用户在 boring.aiagent-me.com 重新连接账户 |
| MediaRequired | Instagram/TikTok 需要媒体——跳过或请用户提供图片 |
| TextTooLong | 截断或拆分平台内容 |
| RateLimitExceeded | 等待后重试(检查 retry_after 字段) |
| AccountDisabled | 账户已断开连接——在控制面板重新连接 |
使用示例
用户:用这张图片将刚刚发布我们的新产品!发布到我的所有账户
代理工作流程:
- 1. boringlistaccounts → 找到 Facebook、Instagram、Threads 账户
- boringuploadfromurl(如果图片是 URL)→ 获取托管 URL
- boringpublishpost 到 Facebook,附带文本 + 图片
- boringpublishpost 到 Instagram,附带文本 + 图片
- boringpublish_post 到 Threads,附带文本 + 图片
- 报告:成功发布到3个平台
文档
完整 API 文档:boring-doc.aiagent-me.com