name: twitter-automation description: “通过 Rube MCP (Composio) 自动化 Twitter/X 任务:帖子、搜索、用户、书签、列表、媒体。始终先搜索工具以获取当前模式。” requires: mcp: [rube] category: social-media
通过 Rube MCP 实现 Twitter/X 自动化
通过 Composio 的 Twitter 工具包和 Rube MCP 自动化 Twitter/X 操作。
工具包文档: composio.dev/toolkits/twitter
先决条件
- Rube MCP 必须已连接(RUBE_SEARCH_TOOLS 可用)
- 通过
RUBE_MANAGE_CONNECTIONS使用工具包twitter建立活动的 Twitter 连接 - 始终先调用
RUBE_SEARCH_TOOLS以获取当前工具模式
设置
获取 Rube MCP: 在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务器。无需 API 密钥 — 只需添加端点即可工作。
- 通过确认
RUBE_SEARCH_TOOLS响应来验证 Rube MCP 可用 - 使用工具包
twitter调用RUBE_MANAGE_CONNECTIONS - 如果连接未激活,请遵循返回的认证链接完成 Twitter OAuth
- 在运行任何工作流之前,确认连接状态显示为 ACTIVE
核心工作流
1. 创建和管理帖子
使用时机: 用户想要创建、删除或查找推文/帖子
工具序列:
TWITTER_USER_LOOKUP_ME- 获取认证用户信息 [先决条件]TWITTER_UPLOAD_MEDIA/TWITTER_UPLOAD_LARGE_MEDIA- 上传媒体 [可选]TWITTER_CREATION_OF_A_POST- 创建新帖子 [必需]TWITTER_POST_LOOKUP_BY_POST_ID- 查找特定帖子 [可选]TWITTER_POST_DELETE_BY_POST_ID- 删除帖子 [可选]
关键参数:
text: 帖子文本内容(最多 280 个加权字符)media__media_ids: 附件媒体 ID 字符串数组reply__in_reply_to_tweet_id: 要回复的推文 IDquote_tweet_id: 要引用的推文 IDid: 用于查找/删除的帖子 ID
陷阱:
- 帖子文本限制为 280 个加权字符;某些字符计为多个
- 发布不是幂等的;超时重试将创建重复帖子
- 媒体 ID 必须是数字字符串,不是整数
- UPLOAD_LARGE_MEDIA 用于视频/GIF;UPLOAD_MEDIA 用于图像
- 始终先调用 USER_LOOKUP_ME 以获取认证用户的 ID
2. 搜索帖子
使用时机: 用户想要查找匹配特定条件的推文
工具序列:
TWITTER_RECENT_SEARCH- 搜索最近的推文(过去 7 天) [必需]TWITTER_FULL_ARCHIVE_SEARCH- 搜索完整档案(学术访问) [可选]TWITTER_RECENT_SEARCH_COUNTS- 获取匹配查询的推文计数 [可选]
关键参数:
query: 使用 Twitter 搜索操作符的搜索查询max_results: 每页结果数(10-100)next_token: 分页令牌start_time/end_time: ISO 8601 时间范围tweet__fields: 要包含的字段,逗号分隔expansions: 要扩展的相关对象
陷阱:
- RECENT_SEARCH 仅覆盖过去 7 天;使用 FULL_ARCHIVE_SEARCH 获取更旧的推文
- FULL_ARCHIVE_SEARCH 需要学术研究或企业访问权限
- 查询操作符:
from:username,to:username,is:retweet,has:media,-is:retweet - 空结果返回
meta.result_count: 0,无data字段 - 速率限制因端点和访问级别而异;检查响应头
3. 查找用户
使用时机: 用户想要查找或检查 Twitter 用户资料
工具序列:
TWITTER_USER_LOOKUP_ME- 获取认证用户 [可选]TWITTER_USER_LOOKUP_BY_USERNAME- 按用户名查找 [可选]TWITTER_USER_LOOKUP_BY_ID- 按用户 ID 查找 [可选]TWITTER_USER_LOOKUP_BY_IDS- 批量查找多个用户 [可选]
关键参数:
username: Twitter 句柄,不带 @ 前缀id: 数字用户 ID 字符串ids: 批量查找的用户 ID,逗号分隔user__fields: 要返回的字段(描述、public_metrics 等)
陷阱:
- 用户名不区分大小写,但不能包含 @ 前缀
- 用户 ID 是数字字符串,不是整数
- 已暂停或删除的帐户返回错误,而不是空结果
- LOOKUP_BY_IDS 每次请求最多接受 100 个 ID
4. 管理书签
使用时机: 用户想要保存、查看或移除书签推文
工具序列:
TWITTER_USER_LOOKUP_ME- 获取认证用户 ID [先决条件]TWITTER_BOOKMARKS_BY_USER- 列出书签帖子 [必需]TWITTER_ADD_POST_TO_BOOKMARKS- 书签帖子 [可选]TWITTER_REMOVE_A_BOOKMARKED_POST- 移除书签 [可选]
关键参数:
id: 用户 ID(来自 USER_LOOKUP_ME)用于列出书签tweet_id: 要书签或取消书签的推文 IDmax_results: 每页结果数pagination_token: 下一页的令牌
陷阱:
- 书签需要认证用户的 ID,不是用户名
- 书签是私有的;只有认证用户能看到自己的书签
- 分页使用
pagination_token,不是next_token
5. 管理列表
使用时机: 用户想要查看或管理 Twitter 列表
工具序列:
TWITTER_USER_LOOKUP_ME- 获取认证用户 ID [先决条件]TWITTER_GET_A_USER_S_OWNED_LISTS- 列出拥有的列表 [可选]TWITTER_GET_A_USER_S_LIST_MEMBERSHIPS- 列出成员资格 [可选]TWITTER_GET_A_USER_S_PINNED_LISTS- 获取固定列表 [可选]TWITTER_GET_USER_S_FOLLOWED_LISTS- 获取已关注列表 [可选]TWITTER_LIST_LOOKUP_BY_LIST_ID- 获取列表详情 [可选]
关键参数:
id: 用户 ID 用于列出拥有/成员/关注的列表list_id: 用于特定列表查找的列表 IDmax_results: 每页结果数(1-100)
陷阱:
- 列表 ID 和用户 ID 是数字字符串
- 列表端点需要用户的数字 ID,不是用户名
6. 与帖子互动
使用时机: 用户想要点赞、取消点赞或查看已点赞的帖子
工具序列:
TWITTER_USER_LOOKUP_ME- 获取认证用户 ID [先决条件]TWITTER_RETURNS_POST_OBJECTS_LIKED_BY_THE_PROVIDED_USER_ID- 获取已点赞帖子 [可选]TWITTER_UNLIKE_POST- 取消点赞帖子 [可选]
关键参数:
id: 用户 ID 用于列出已点赞帖子tweet_id: 要取消点赞的推文 ID
陷阱:
- 点赞/取消点赞端点需要来自 USER_LOOKUP_ME 的用户 ID
- 对于点赞很多的用户,已点赞帖子的分页可能较慢
常见模式
搜索查询语法
操作符:
from:username- 用户发布的帖子to:username- 回复给用户的帖子@username- 提及用户的帖子#hashtag- 包含话题标签的帖子"exact phrase"- 精确匹配短语has:media- 包含媒体的帖子has:links- 包含链接的帖子is:retweet/-is:retweet- 包含/排除转推is:reply/-is:reply- 包含/排除回复lang:en- 语言过滤器
组合器:
- 空格表示 AND
OR表示任一条件-前缀表示 NOT- 括号用于分组
媒体上传流程
1. 使用 TWITTER_UPLOAD_MEDIA(图像)或 TWITTER_UPLOAD_LARGE_MEDIA(视频/GIF)上传媒体
2. 从响应中获取 media_id
3. 将 media_id 作为字符串传递到 media__media_ids 数组给 TWITTER_CREATION_OF_A_POST
已知陷阱
字符限制:
- 标准帖子:280 个加权字符
- 某些 Unicode 字符计为多个
- URL 被缩短并计为固定长度(23 个字符)
速率限制:
- 因访问层级(免费、基础、专业、企业)而异
- 免费层级:非常有限(例如,每月 1,500 个帖子)
- 检查响应头中的
x-rate-limit-remaining
幂等性:
- 帖子创建不是幂等的;重试将创建重复帖子
- 实现去重逻辑以自动化发布
快速参考
| 任务 | 工具 Slug | 关键参数 |
|---|---|---|
| 创建帖子 | TWITTER_CREATION_OF_A_POST | text |
| 删除帖子 | TWITTER_POST_DELETE_BY_POST_ID | id |
| 查找帖子 | TWITTER_POST_LOOKUP_BY_POST_ID | id |
| 最近搜索 | TWITTER_RECENT_SEARCH | query |
| 档案搜索 | TWITTER_FULL_ARCHIVE_SEARCH | query |
| 搜索计数 | TWITTER_RECENT_SEARCH_COUNTS | query |
| 我的资料 | TWITTER_USER_LOOKUP_ME | (无) |
| 按名称用户 | TWITTER_USER_LOOKUP_BY_USERNAME | username |
| 按 ID 用户 | TWITTER_USER_LOOKUP_BY_ID | id |
| 按 IDs 用户 | TWITTER_USER_LOOKUP_BY_IDS | ids |
| 上传媒体 | TWITTER_UPLOAD_MEDIA | media |
| 上传视频 | TWITTER_UPLOAD_LARGE_MEDIA | media |
| 列出书签 | TWITTER_BOOKMARKS_BY_USER | id |
| 添加书签 | TWITTER_ADD_POST_TO_BOOKMARKS | tweet_id |
| 移除书签 | TWITTER_REMOVE_A_BOOKMARKED_POST | tweet_id |
| 取消点赞 | TWITTER_UNLIKE_POST | tweet_id |
| 已点赞帖子 | TWITTER_RETURNS_POST_OBJECTS_LIKED_BY_THE_PROVIDED_USER_ID | id |
| 拥有列表 | TWITTER_GET_A_USER_S_OWNED_LISTS | id |
| 列表成员资格 | TWITTER_GET_A_USER_S_LIST_MEMBERSHIPS | id |
| 固定列表 | TWITTER_GET_A_USER_S_PINNED_LISTS | id |
| 已关注列表 | TWITTER_GET_USER_S_FOLLOWED_LISTS | id |
| 列表详情 | TWITTER_LIST_LOOKUP_BY_LIST_ID | list_id |
由 Composio 提供支持