twitter-automation について
Rube MCP と Composio の Twitter ツールキットを通じて、Twitter/X の操作を自動化するスキルです。投稿、検索、ユーザー検索、ブックマーク、リストを扱い、投稿や情報収集に利用できます。
主な機能
- 01投稿の作成、検索、削除
- 02最近の投稿と全アーカイブの検索
- 03ユーザー名または ID によるユーザー検索
- 04ブックマークの追加と削除
- 05リストの表示と管理
活用シーン
- 01メディア付き投稿の公開
- 02検索条件による最近の投稿の検索
- 03ユーザープロフィールと投稿の確認
- 04ブックマークやフォロー中のリストの整理
MCP 対応
MCP クライアントから Rube MCP に接続し、認証済みの Twitter 接続を通じて Composio の Twitter ツールキットを利用します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ composiohq/ awesome-claude-skills --skill twitter-automationインストール後、Claude Code で/twitter-automationを入力して読み込まれたか確認します。
詳細
Rube MCP による Twitter/X の自動化
Rube MCP を介して Composio の Twitter ツールキットを使用し、Twitter/X の操作を自動化します。
ツールキットのドキュメント:composio.dev/toolkits/twitter
前提条件
- Rube MCP が接続されていること(RUBE_SEARCH_TOOLS が利用可能)
- ツールキット
twitterを指定したRUBE_MANAGE_CONNECTIONSによる有効な Twitter 接続 - 最新のツールスキーマを取得するため、必ず最初に
RUBE_SEARCH_TOOLSを呼び出してください
セットアップ
Rube MCP の入手:クライアントの設定で https://rube.app/mcp を MCP サーバーとして追加します。API キーは不要です。エンドポイントを追加するだけで動作します。
RUBE_SEARCH_TOOLSが応答することを確認し、Rube MCP が利用可能であることを確認します- ツールキット
twitterを指定してRUBE_MANAGE_CONNECTIONSを呼び出します - 接続が ACTIVE でない場合は、返された認証リンクに従って 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文字までです。一部の文字は2文字以上としてカウントされます
- 投稿は冪等ではありません。タイムアウト後に再試行すると、重複した投稿が作成されます
- メディア ID は整数ではなく、数値文字列である必要があります
- 動画/GIF には UPLOAD_LARGE_MEDIA、画像には UPLOAD_MEDIA を使用します
- 認証済みユーザーの ID を取得するため、必ず最初に USER_LOOKUP_ME を呼び出してください
2. 投稿の検索
使用する場面:ユーザーが特定の条件に一致するツイートを検索したい場合
ツールの順序:
TWITTER_RECENT_SEARCH- 最近のツイートを検索します(過去7日間)[必須]TWITTER_FULL_ARCHIVE_SEARCH- 全アーカイブを検索します(Academic アクセス)[任意]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 には Academic Research または Enterprise のアクセス権が必要です
- クエリ演算子:
from:username、to:username、is:retweet、has:media、-is:retweet - 結果がない場合は、
dataフィールドなしでmeta.result_count: 0が返されます - レート制限はエンドポイントとアクセスレベルによって異なります。レスポンスヘッダーを確認してください
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:返すフィールド(description、public_metrics など)
注意点:
- ユーザー名は大文字と小文字を区別しませんが、@ 接頭辞を含めてはいけません
- ユーザー ID は整数ではなく、数値文字列です
- 凍結または削除されたアカウントは、空の結果ではなくエラーを返します
- LOOKUP_BY_IDS で1回のリクエストに指定できる ID は最大100件です
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:1 ページあたりの結果数pagination_token:次のページ用のトークン
注意点:
- ブックマークにはユーザー名ではなく、認証済みユーザーの ID が必要です
- ブックマークは非公開で、認証済みユーザー本人のみが自分のブックマークを確認できます
- ページネーションには
next_tokenではなくpagination_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:所有、メンバー登録、フォローしているリストの一覧表示に使用するユーザー IDlist_id:特定のリストを検索するためのリスト IDmax_results:1 ページあたりの結果数(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:「いいね」した投稿の一覧表示に使用するユーザー IDtweet_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. Upload media with TWITTER_UPLOAD_MEDIA (images) or TWITTER_UPLOAD_LARGE_MEDIA (video/GIF)
2. Get media_id from response
3. Pass media_id as string in media__media_ids array to TWITTER_CREATION_OF_A_POST
既知の注意点
文字数制限:
- 標準的な投稿:加重方式で 280 文字
- 一部の Unicode 文字は 1 文字より大きくカウントされます
- URL は短縮され、固定長(23 文字)としてカウントされます
レート制限:
- アクセス階層(Free、Basic、Pro、Enterprise)によって大きく異なります
- Free 階層:非常に制限されています(例:月 1,500 件の投稿)
- レスポンスの
x-rate-limit-remainingヘッダーを確認してください
冪等性:
- 投稿の作成は冪等ではありません。再試行すると投稿が重複して作成されます
- 自動投稿では重複を排除するロジックを実装してください
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| Create post | TWITTER_CREATION_OF_A_POST | text |
| Delete post | TWITTER_POST_DELETE_BY_POST_ID | id |
| Look up post | TWITTER_POST_LOOKUP_BY_POST_ID | id |
| Recent search | TWITTER_RECENT_SEARCH | query |
| Archive search | TWITTER_FULL_ARCHIVE_SEARCH | query |
| Search counts | TWITTER_RECENT_SEARCH_COUNTS | query |
| My profile | TWITTER_USER_LOOKUP_ME | (none) |
| User by name | TWITTER_USER_LOOKUP_BY_USERNAME | username |
| User by ID | TWITTER_USER_LOOKUP_BY_ID | id |
| Users by IDs | TWITTER_USER_LOOKUP_BY_IDS | ids |
| Upload media | TWITTER_UPLOAD_MEDIA | media |
| Upload video | TWITTER_UPLOAD_LARGE_MEDIA | media |
| List bookmarks | TWITTER_BOOKMARKS_BY_USER | id |
| Add bookmark | TWITTER_ADD_POST_TO_BOOKMARKS | tweet_id |
| Remove bookmark | TWITTER_REMOVE_A_BOOKMARKED_POST | tweet_id |
| Unlike post | TWITTER_UNLIKE_POST | tweet_id |
| Liked posts | TWITTER_RETURNS_POST_OBJECTS_LIKED_BY_THE_PROVIDED_USER_ID | id |
| Owned lists | TWITTER_GET_A_USER_S_OWNED_LISTS | id |
| List memberships | TWITTER_GET_A_USER_S_LIST_MEMBERSHIPS | id |
| Pinned lists | TWITTER_GET_A_USER_S_PINNED_LISTS | id |
| Followed lists | TWITTER_GET_USER_S_FOLLOWED_LISTS | id |
| List details | TWITTER_LIST_LOOKUP_BY_LIST_ID | list_id |
Powered by Composio