Instagram with 1Social
1Social 将内容发布到用户自己的 Instagram 账户,并报告实际到达状态。
设置(只需一次)
以下步骤驱动 1Social MCP 服务器。如果 list_accounts 等工具不可用,请先连接它。登录采用浏览器中的 OAuth 方式,无需存储 API 密钥。运行这些命令前请先征得用户同意——登录步骤会打开一个页面,让用户自行登录 1Social。
- OpenClaw:
openclaw mcp set 1social '{"url":"https://mcp.1social.dev/mcp","transport":"streamable-http","auth":"oauth"}',然后openclaw mcp login 1social。使用openclaw mcp doctor 1social --probe检查。 - Hermes: 添加到
~/.hermes/config.yaml:然后mcp_servers: 1social: url: "https://mcp.1social.dev/mcp" auth: oauthhermes mcp login 1social(在无头主机上:hermes mcp login 1social --flow device)。 - Claude Code:
claude mcp add --transport http 1social https://mcp.1social.dev/mcp - 其他客户端: https://1social.dev/mcp 列出了每种客户端的设置方法。
用户需要一个 1Social 账户。新账户享有免费试用期;试用期后发布内容需要付费套餐(https://1social.dev/pricing)。
工作流程
- 找到账户。 调用
list_accounts。它会返回已关联的频道及其 ID、每个网络的实时限制、套餐和剩余月度配额。如果没有关联 Instagram 账户,请告知用户到 https://1social.dev/app 关联一个账户——关联操作需要浏览器,无法通过聊天完成。如果list_accounts报告的限制与此技能不同,请以list_accounts为准。 - 为网络起草内容。 按照以下规则撰写帖子。一个帖子由一系列
segments组成;每个 segment 是{ text, mediaIds? }。 - 附加媒体。
- 用户在聊天中附加了文件 → 放入
media。 - 你有一个公开的 https 链接 → 放入
mediaUrls。 - 你只有磁盘上的文件(OpenClaw、Hermes、Claude Code、Codex 或其他 CLI 代理)→ 调用
upload_media并按照其描述中的上传步骤操作,然后将返回的publicUrl放入mediaUrls。localhost 的 URL 永远无效。在此之前,向用户准确展示你要上传哪些文件,并等待用户确认:上传会立即获得一个公开链接,如果之后拒绝发布该帖子,文件不会被移除。
- 用户在聊天中附加了文件 → 放入
- 预览。 使用频道 ID 和草稿调用
preview_post。该操作免费且不会发布任何内容。修复它报告的每个问题,然后再次预览。 - 与用户确认。 向用户展示最终文本、目标账户、媒体以及发布时间。发布是公开的,且某些网络无法删除已发布的帖子,因此请等待明确的确认。
- 发布或定时发布。 调用
publish_post。scheduledAt: null表示立即发布;UTC ISO-8601 时间戳(例如2026-11-03T07:00:00Z)用于定时发布(未来时间,最多提前 30 天)。请自行将用户的本地时间转换为 UTC,如果用户指定的时间没有时区,请询问时区。设置一个idempotencyKey(为此草稿生成一个 8–128 字符的稳定字符串),以防止重复调用导致重复发布。 - 如实报告。 结果是每个网络对应的回执。请完全按照返回的内容报告每个网络。
unknown表示 1Social 确实无法判断帖子是否已发布——请如实告知,切勿将其称作成功或失败。
Instagram 规则
- 每个帖子都需要一张图片或一段视频。仅有标题会被拒绝——请在起草前向用户索要媒体内容。
- 标题限制:2,200 字符。最多 30 个标签;3–5 个相关标签通常比一大串标签效果更好。
- 图片宽高比必须在 4:5(竖屏)到 1.91:1(横屏)之间。正方形 1:1 是安全的。宽幅横幅会被 Instagram 拒绝,并提示“宽高比”错误。
- PNG 和 JPEG 格式均可。
- 不支持多段内容:如果草稿包含多个 segments,1Social 会将它们合并为一个标题。请直接写一个标题。
- 标题中的链接在 Instagram 上不可点击。如果用户希望引流,建议使用“链接在个人简介”之类的表述,而非原始 URL。
- 已发布的 Instagram 帖子无法通过 1Social 删除——Instagram 没有提供相关的删除 API。发布前请确保用户对标题满意。
写作技巧
- 在前 125 个字符内使用钩子开头——这是显示在“更多”按钮之前的内容。
- 将标签放在标题末尾,并在换行后放置。
同时发布到其他网络
同一个 1Social 账户可以一次将一篇帖子发布到 Instagram、TikTok、LinkedIn、X、Threads、Facebook Pages、YouTube Shorts 和 Bluesky:从 list_accounts 获取多个频道 ID 即可。preview_post 会针对每个选定的网络检查草稿。
发布后
- 检查状态:
list_posts(提供postId可查看单个帖子)。其中包含网络报告的存储互动指标。 - 修改定时帖子:
update_post。仅在帖子发布前有效。 - 取消定时:
cancel_post。对于尚未发布的帖子,使用此操作,而不是delete_post。 - 删除已发布的帖子:
delete_post,需用户确认后执行。分别报告每个网络实际删除的结果:Instagram、TikTok、Threads 和 YouTube 的帖子会保持在线,只有用户本人可以删除。 - 交付失败:
retry_delivery会重试一个网络,并再次消耗配额。对于永久性失败(例如连接被撤销)将拒绝执行——此时用户必须到 https://1social.dev/app 重新连接。 - 交付状态为
unknown: 请用户自行查看网络。只有当用户告知帖子是否已发布时,才调用confirm_delivery并输入用户的回答。切勿猜测,也切勿在未征询用户意见的情况下使用force参数调用retry_delivery——这可能导致发布第二个副本。