X公式MCPサーバー「xmcp」完全ガイド:AIエージェントでX APIを自在に操る
X Developer Platformが公開したxmcpを使えば、Claude・OpenClaw・Claude Codeなど140以上のX APIエンドポイントをAIへの口頭指示だけで操作できる。全ツールリスト・活用アイデア・自動化の注意点まで徹底解説する。
X Developer Platformがこっそり公開した、ちょっと面白いリポジトリがある。その名も「xmcp」。AIアシスタントからX(旧Twitter)のAPIをそのまま扱えるようにするMCPサーバーだ。スター数はすでに385を超え、静かに注目を集めている。
MCPとは何か、なぜXがMCPサーバーを出したのか
MCPは「Model Context Protocol」の略称で、AIモデルが外部のツールやデータソースと通信するために使う標準プロトコルだ。Anthropicが主導して策定し、現在はClaudeやGrok、各種AIエージェントフレームワークが広くサポートしている。
簡単に言えば、「AIが使える道具箱につなぐ共通の差し込み口」である。MCPサーバーを用意すれば、それに対応したAIはそのサーバーの機能を自分のツールとして呼び出せる。コード生成や検索だけでなく、外部APIの操作、ファイル管理、データベースアクセスなど、何でも「ツール化」できる。
X Developer PlatformがxmcpというMCPサーバーを公開したことの意味は大きい。これまでAIからX APIを呼び出すには、自分でSDKを叩くコードを書くか、機能を別のツールに手実装する必要があった。xmcpはその手間を一掃する。AIとX APIのあいだに公式の「橋」が架かったかたちだ。
OpenClaw・Claude Codeとxmcpを組み合わせると何ができるか
xmcpの真価が発揮されるのは、OpenClawやClaude Codeのようなエージェント型ツールと組み合わせたときだ。
OpenClaw + xmcp の場合、OpenClawが自律的にタスクを実行するループのなかにX APIの操作を組み込める。たとえば「毎朝9時に生成AI関連キーワードのトレンドを収集して要約をXに投稿する」という定型業務をコードなしで構築できる。OpenClawはMCPツールをエージェントの「腕」として使うので、xmcpの全エンドポイントがそのまま選択肢になる。
Claude Code + xmcp では、開発中の調査をX情報でサポートする使い方が現実的だ。ライブラリのエラーについてXで最新の議論を検索して解決策を探す、競合製品のリリースに対するエンジニアの反応を収集してプロダクト判断の材料にする、といった調査フローをClaude Codeのセッション内で完結させられる。
どちらのケースでもコードを書く必要はない。AIへの指示文(プロンプト)だけでX APIを操作できるのがxmcpの本質だ。
「Xは情報収集ツール」として使い倒す
Xは信頼性の高いニュースソースとは言い難い側面がある。誤情報や未確認情報も流通するし、感情的なリアクションも多い。それでも情報収集ツールとして見ると、他に代えがたい特性がある。
速報性がメディアより圧倒的に速い。地震・障害・リリース告知といった出来事は、ニュースサイトの記事が出るより先にXで拡散する。searchPostsRecentを使えば、AIが数分前の投稿まで含めてリアルタイムに状況を把握できる。
一次情報に近い場所にいる人の声がある。企業の中の人・研究者・開発者が非公式に状況を共有するのもXの特性だ。プレスリリースには出ない現場のニュアンスを拾える。
量的なシグナルが取れる。getPostsCountsRecentでキーワードの投稿数の推移を集計すれば、話題がどのくらいの勢いで広がっているかを数値で把握できる。バズの初期段階を見つけるアンテナとして使える。
xmcpを使ったリサーチフローの例:
searchPostsRecentで気になるトピックを検索getPostsCountsRecentでここ数日の投稿数の推移を確認- 投稿のエンゲージメント上位を
getPostsAnalyticsで抽出 - ClaudeにXの反応を要約させて、信頼性の高い一次ソース(論文・公式ブログ)と突き合わせる
最後の「突き合わせ」がポイントだ。X情報はあくまで速報シグナルとして扱い、内容の検証は別のソースで行うのが現実的な使い方になる。
自動化の注意点:凍結リスクを避けるために
xmcpを使えばAI経由でフォロー・いいね・投稿を自動実行できる。しかし、Xの利用規約は自動化に厳格な制限を設けており、行き過ぎた使い方はアカウント凍結につながる。
やってはいけないこと:
- 大量の自動フォロー・アンフォロー(スパムと判定される)
- 同一または類似内容の投稿を短期間に多数作成
- 特定の話題への機械的ないいね・リポストの繰り返し
- DMの一括自動送信(スパム報告されやすい)
- 複数アカウントでの協調的な自動操作
安全に使う目安:
- 自動操作は「補助」に留め、実行前に人間が内容を確認するフローを維持する
X_API_TOOL_ALLOWLISTで書き込み系ツールを制限し、読み取り専用運用から始める- 自動投稿をするなら1日数件程度に抑え、内容のクオリティも担保する
Xの自動化ポリシーはプラットフォームの判断で変わることもある。公式のDeveloper Policyで最新ルールを定期的に確認することを勧める。
セットアップ手順
前提として必要なものが2つある。Python 3.9以上とX Developer Platformのアプリ(APIキーとトークンの取得用)だ。X Developer AccountはX Developer Portalから申請できる。
1. リポジトリのクローンと環境構築
git clone https://github.com/xdevplatform/xmcp.git
cd xmcp
python -m venv .venv
source .venv/bin/activate # Windowsは .venv\Scripts\activate
pip install -r requirements.txt
2. 環境変数の設定
.envファイルを用意する。env.exampleをコピーして書き換えるのが最速だ。
cp env.example .env
最低限必要な項目は3つ。
X_OAUTH_CONSUMER_KEY=あなたのAPI Key
X_OAUTH_CONSUMER_SECRET=あなたのAPI Key Secret
X_BEARER_TOKEN=あなたのBearer Token
OAuth1のコールバックURLもX Developer PortalのAuthentication settingsに登録が必要だ。
http://127.0.0.1:8976/oauth/callback
3. サーバー起動とAIクライアントへの接続
python server.py
起動するとブラウザで認証フローが始まる。承認するとMCPエンドポイントがhttp://127.0.0.1:8000/mcpで立ち上がる。Claude DesktopなどMCP対応クライアントの設定に以下を追加すれば接続できる。
{
"mcpServers": {
"xmcp": {
"url": "http://127.0.0.1:8000/mcp"
}
}
}
ホワイトリスト機能:用途に合わせてツールを絞る
140以上のツールを全部読み込むと、AIのコンテキストが重くなる場合がある。X_API_TOOL_ALLOWLIST環境変数で必要なツールだけを絞り込める。
# 情報収集専用(読み取りのみ)
X_API_TOOL_ALLOWLIST=searchPostsRecent,searchPostsAll,getUsersPosts,getTrendsByWoeid,searchNews,getPostsCountsRecent
# 投稿管理専用
X_API_TOOL_ALLOWLIST=createPosts,deletePosts,getPostsAnalytics,getUsersMe
セキュリティの観点からも、使わない書き込み系ツールは最初から無効にしておくのが安全だ。変更後はサーバーの再起動が必要。
全ツールリスト:140以上のエンドポイントで何ができるか
xmcpはX APIのOpenAPI仕様をFastMCP経由でそのままツール化している。カテゴリごとに使えるツールと、それで何ができるかをまとめた。
投稿操作
| ツール名 | できること |
|---|---|
createPosts | 投稿の新規作成。テキスト・メディア添付・返信・引用に対応 |
deletePosts | 投稿の削除 |
repostPost / unrepostPost | リポスト・リポスト取り消し |
likePost / unlikePost | いいね・いいね取り消し |
hidePostsReply | 自分の投稿への返信を非表示にする |
getPostsById / getPostsByIds | 投稿IDを指定して取得(1件・複数件) |
getPostsAnalytics | 投稿のインプレッション・エンゲージメントなどの分析データ取得 |
getPostsLikingUsers | 特定投稿にいいねしたユーザー一覧 |
getPostsRepostedBy | 特定投稿をリポストしたユーザー一覧 |
getPostsQuotedPosts | 特定投稿の引用リポスト一覧 |
searchPostsRecent | 直近1週間の投稿を全文検索 |
searchPostsAll | 全期間の投稿を全文検索(Proプラン以上) |
getPostsCountsRecent / getPostsCountsAll | キーワードの投稿数をタイムライン集計 |
ユーザー操作
| ツール名 | できること |
|---|---|
getUsersByUsername / getUsersByUsernames | ユーザー名でプロフィール情報取得 |
getUsersById / getUsersByIds | IDでプロフィール情報取得 |
getUsersMe | 認証中の自分のプロフィール取得 |
getUsersFollowers | フォロワー一覧取得 |
getUsersFollowing | フォロー中一覧取得 |
followUser / unfollowUser | フォロー・アンフォロー |
muteUser / unmuteUser | ミュート・ミュート解除 |
getUsersMentions | 自分へのメンション一覧 |
getUsersTimeline | 特定ユーザーのタイムライン取得 |
getUsersPosts | 特定ユーザーの投稿一覧 |
getUsersLikedPosts | 特定ユーザーがいいねした投稿 |
getUsersBlocking | ブロックリスト取得 |
getUsersMuting | ミュートリスト取得 |
getUsersAffiliates | 関連アカウント(アフィリエイト)取得 |
searchUsers | ユーザー検索 |
ダイレクトメッセージ(DM)
| ツール名 | できること |
|---|---|
createDirectMessagesByConversationId | 既存会話にDMを送信 |
createDirectMessagesByParticipantId | 相手のIDを指定してDMを送信 |
createDirectMessagesConversation | グループDM会話を作成 |
deleteDirectMessagesEvents | DMを削除 |
getDirectMessagesEvents | DM一覧取得 |
getDirectMessagesEventsById | 特定DMの取得 |
getChatConversation / getChatConversations | 会話スレッドの取得 |
sendChatMessage | チャットメッセージを送信 |
blockUsersDms / unblockUsersDms | DM送信元のブロック・解除 |
リスト管理
| ツール名 | できること |
|---|---|
createLists / deleteLists / updateLists | リストの作成・削除・更新 |
addListsMember / removeListsMemberByUserId | リストへのメンバー追加・削除 |
followList / unfollowList | リストのフォロー・解除 |
pinList / unpinList | リストのピン留め・解除 |
getListsById | リスト情報の取得 |
getListsMembers | リストメンバー一覧 |
getListsFollowers | リストフォロワー一覧 |
getListsPosts | リストのタイムライン取得 |
getUsersOwnedLists | ユーザーが所有するリスト一覧 |
getUsersFollowedLists | フォロー中リスト一覧 |
getUsersPinnedLists | ピン留めリスト一覧 |
getUsersListMemberships | ユーザーが所属するリスト一覧 |
ブックマーク
| ツール名 | できること |
|---|---|
createUsersBookmark | 投稿をブックマークに追加 |
deleteUsersBookmark | ブックマーク削除 |
getUsersBookmarks | ブックマーク一覧取得 |
getUsersBookmarkFolders | ブックマークフォルダ一覧 |
getUsersBookmarksByFolderId | フォルダ別のブックマーク取得 |
メディアアップロード
| ツール名 | できること |
|---|---|
mediaUpload | 画像・動画のアップロード(シンプルな一括処理) |
initializeMediaUpload / appendMediaUpload / finalizeMediaUpload | 大きなファイルを分割アップロード |
createMediaMetadata | メディアにalt textなどのメタデータ付与 |
createMediaSubtitles / deleteMediaSubtitles | 動画字幕の追加・削除 |
getMediaByMediaKey / getMediaByMediaKeys | メディア情報の取得 |
getMediaUploadStatus | アップロード状態の確認 |
getMediaAnalytics | メディアのインプレッション・再生数などの分析 |
トレンド・ニュース
| ツール名 | できること |
|---|---|
getTrendsByWoeid | 地域コード(WOEID)を指定してトレンドワード取得 |
getTrendsPersonalizedTrends | 自分のアカウントに合わせたパーソナライズトレンド |
getNews | ニュースフィードの取得 |
searchNews | ニュース検索 |
スペース・コミュニティ
| ツール名 | できること |
|---|---|
getSpacesById / getSpacesByIds | スペース情報の取得 |
getSpacesByCreatorIds | 特定ユーザーが作成したスペース |
getSpacesBuyers / getSpacesPosts | スペース参加者・関連投稿 |
searchSpaces | スペース検索 |
getCommunitiesById / searchCommunities | コミュニティ情報・検索 |
createCommunityNotes / deleteCommunityNotes | コミュニティノートの作成・削除 |
evaluateCommunityNotes | コミュニティノートの評価 |
分析・コンプライアンス
| ツール名 | できること |
|---|---|
getInsights28Hr | 直近28時間のインサイト取得 |
getInsightsHistorical | 過去の統計データ取得 |
getUsage | API利用状況の確認 |
createComplianceJobs / getComplianceJobs | データコンプライアンスジョブの作成・取得 |
getActivitySubscriptions | アクティビティサブスクリプション管理 |
まとめ:コードを書かずにX APIの全機能をAIに渡す
xmcpの登場で「AIでXを使う」という体験が大きく変わった。これまではAPIを叩くコードを書けるエンジニアだけが使えた機能が、MCPに対応したAIクライアントがあれば誰でも口頭指示で使えるようになった。
情報収集・分析・投稿補助・リスト管理――そのどれも、今日から試せる。ただし、自動化できるからといって無秩序に動かすのは禁物だ。Xの規約を守りながら、人間の判断を介在させる設計を意識して使うのが長く付き合うコツになる。
GitHubリポジトリ(xdevplatform/xmcp)はMITライセンスで公開されており、フォーク・改変も自由だ。