MCP(Model Context Protocol)を使えば、Claude Codeにさまざまな外部サービスを接続できます。この記事では、X(旧Twitter)の公式MCPサーバー「xmcp」を使って、Claude CodeからXへの投稿を自動化する方法を紹介します。
実はこのサイト「Automata Room」でも、記事公開の告知投稿にこの仕組みを活用しています。Pythonスクリプトを1行も書かずに、Claude Codeに「この記事をXで告知して」と言うだけで投稿が完了します。
ねえメカ、Claude CodeからXに直接投稿できるって本当? スクリプトも書かなくていいの?
はい。X公式のMCPサーバー「xmcp」を接続すれば、Claude Codeがツールとして直接X APIを呼び出せます。Pythonスクリプトは一切不要です。
えっ、「この記事をXで告知して」って言うだけで投稿されちゃうの…? 便利すぎない?
その通りです。セットアップさえ済めば、自然言語の指示だけでX投稿が完了します。
すごい! じゃあ今日はその仕組みをしっかり解説していくよ!
xmcpとは ― X公式のMCPサーバー
xmcpは、X Developer Platformが公式にリリースしたMCPサーバーです。2026年2月のX API Pay-Per-Useモデル導入と同時に公開されました。
GitHubのxdevplatform組織アカウント配下で公開されており、X APIのOpenAPI仕様から150以上のツールを自動生成してMCPとして提供します。つまり、Claude Codeから「投稿して」「検索して」「トレンドを見て」と言うだけで、X APIのほぼ全機能が使えます。
(クライアント) (ローカル:8000) (api.x.com)
「Xに投稿して」
↓
createPosts ツール呼び出し
↓
POST /2/tweets
↓
投稿完了 ✓
xmcpの技術仕様:
リポジトリ: github.com/xdevplatform/xmcp
技術: Python + FastMCP
認証: OAuth 1.0a(起動時にブラウザで認証)
ツール数: 150以上(ストリーミング・Webhookを除くX APIの全エンドポイント)
料金: MCPサーバー自体は無料(OSS)。X API呼び出しにPay-Per-Use課金。
150以上のツール!? 投稿だけじゃなくて、DMとかリストとかトレンドとかも操作できるの?
はい。ただし、よく使うのはcreatePostsとsearchPostsRecentの2つが中心です。不要なツールはALLOWLISTで無効化できます。
セットアップ手順 ― 4ステップで完了
xmcpのセットアップは、クローン・環境変数設定・起動・Claude Code接続の4ステップです。
Step 1: X Developer Portalの準備
まずX Developer Portalでアプリを作成し、以下を取得・設定します。
- API Key(Consumer Key)と API Secret(Consumer Secret)を取得
- Bearer Tokenを生成(Keys and Tokensセクション)
- App Permissionsを「Read and Write」に設定
- Callback URLに
http://127.0.0.1:8976/oauth/callbackを登録
すでにX APIのキーを持ってる人はどうすればいいの? 新しく作り直す必要ある?
そのまま使えます。API Key = Consumer Key、API Secret = Consumer Secretは同じものです。Bearer Tokenだけ新規生成が必要です。
既存のX APIキーとの対応表はこちらです。
| 既存の変数名 | xmcpでの変数名 | 状態 |
|---|---|---|
X_API_KEY |
X_OAUTH_CONSUMER_KEY |
同じ値 |
X_API_SECRET |
X_OAUTH_CONSUMER_SECRET |
同じ値 |
X_ACCESS_TOKEN |
(不要) | ブラウザ認証で自動取得 |
X_ACCESS_TOKEN_SECRET |
(不要) | ブラウザ認証で自動取得 |
| (なし) | X_BEARER_TOKEN |
新規生成 |
Step 2: xmcpのインストール
リポジトリをクローンして、Python仮想環境を構築します。
# クローン
git clone https://github.com/xdevplatform/xmcp.git
cd xmcp
# 仮想環境構築
python -m venv .venv
# 有効化(Windows)
.venv\Scripts\activate
# パッケージインストール
pip install -r requirements.txt
Step 3: 環境変数の設定と起動
.envファイルを作成して認証情報を設定し、サーバーを起動します。
# .env を作成
cp env.example .env
.envを編集して、以下の3つの値を設定します。
# 必須の3つ
X_OAUTH_CONSUMER_KEY=(あなたのAPI Key)
X_OAUTH_CONSUMER_SECRET=(あなたのAPI Secret)
X_BEARER_TOKEN=(生成したBearer Token)
# ツールを投稿に必要なものだけに制限(推奨)
X_API_TOOL_ALLOWLIST=createPosts,getUsersMe,searchPostsRecent,initializeMediaUpload,appendMediaUpload,finalizeMediaUpload,createMediaMetadata
# サーバー起動
python server.py
# → ブラウザが開いてXの認証画面が表示される
# → 「Authorize app」をクリック
# → ターミナルに「MCP endpoint: http://127.0.0.1:8000/mcp」と表示されれば成功
Step 4: Claude Codeに接続
MCPサーバーとして登録します。
# Claude Code に xmcp を追加
claude mcp add --transport http xmcp http://127.0.0.1:8000/mcp
# 確認
claude mcp list
# → xmcp が表示されればOK
4ステップで終わり? もっと大変かと思ったけど、意外とシンプルだね!
一番時間がかかるのはStep 1のDeveloper Portal設定です。既にAPIキーを持っている場合は、実質10分程度で完了します。
最初の投稿をしてみる
セットアップが完了したら、さっそくClaude Codeから投稿してみましょう。
接続テスト
まずは自分のアカウント情報を取得して、接続を確認します。
# Claude Codeで入力
> 接続しているXアカウントの情報を教えて
# Claude Codeが getUsersMe ツールを呼び出し、アカウント情報を表示
# → ユーザー名、表示名、フォロワー数などが返ってくる
テスト投稿
# Claude Codeで入力
> Xに「テスト投稿です。Claude Codeから自動投稿しています。」と投稿して
# Claude Codeが createPosts ツールを呼び出し
# → 投稿が完了し、投稿URLが返ってくる
えっ、ほんとにこれだけ!? 自然言語で「投稿して」って言うだけ!?
MCPサーバーが仲介しているだけです。Claude Codeにとっては、ファイルを読み書きするのと同じ感覚でXに投稿できます。APIの認証処理やリクエスト構築はxmcpが全て処理します。
Pythonスクリプトを書かなくていいの、最高じゃん…!
投稿前のチェック
実用的な投稿では、重複チェックも自然言語で指示できます。
# Claude Codeで入力
> 直近の自分の投稿を確認して、同じ内容がなければ
> 「新記事を公開しました! 配色理論×AI画像生成の完全ガイドです。」
> と投稿してください。ハッシュタグは #AIイラスト #配色 で。
# Claude Codeの動作:
# 1. searchPostsRecent で直近の投稿を確認
# 2. 重複がないことを確認
# 3. createPosts で投稿
# 4. 投稿URLを報告
投稿されるまでの処理:
1. Claude Codeが指示を解釈し、まずsearchPostsRecentツールを呼び出す
2. xmcpがOAuth 1.0aで署名してX API (GET /2/tweets/search/recent) に送信
3. 重複なしと判断したらcreatePostsツールを呼び出す
4. xmcpがPOST /2/tweetsに送信 → 投稿完了
自動投稿ワークフローを作る
手動で「投稿して」と打つだけでも便利ですが、定期的な投稿を完全に自動化することもできます。ここでは2つのパターンを紹介します。
パターン1: 記事公開時の告知投稿
ブログ記事を公開したら、その告知をXに自動投稿するフローです。
↓
Claude Code起動(x-automationフォルダ)
↓
プロンプト: 「以下の記事をXで告知して」
├── タイトル・URL・カテゴリを渡す
├── リアの口調ルールを参照
└── 140文字以内で生成
↓
searchPostsRecent(重複チェック)
↓
createPosts(投稿実行)
↓
投稿URL返却 ✓
投稿ルールはプロンプトテンプレートとしてファイルに定義しておきます。これにより、毎回ルールを手で書く必要がありません。
# x-automation/prompts/article-announce.md の例
## 投稿対象の記事情報
- タイトル: {{TITLE}}
- URL: {{URL}}
## 投稿ルール
- リアの口調で書く(カジュアル、一人称「あたし」)
- 140文字以内(URL・ハッシュタグ含む)
- ハッシュタグ2-3個
- 禁止表現: 「絶対に」「今すぐ」「ヤバい」等
## 投稿例
「新しい記事書いたよ〜! 今回は{{テーマ}}について
解説してみたの。よかったら読んでね! {{URL}}
#AutomataRoom #AIイラスト」
あたしの口調ルールがファイルに書いてあるんだ! だからいつもちゃんと「あたし」って言ってくれるのね。
プロンプトに口調ルール・禁止表現・文字数制限を含めておくことで、Claude Codeが一貫した品質で投稿文を生成します。テンプレートを変更するだけでトーンの調整も可能です。
パターン2: 定期ニュース投稿
毎日決まった時間にAI関連のニュースやTipsを投稿するフローです。これにはタスクスケジューラを使います。
↓
Claude Code自動起動
↓
getUsersMe(アカウント確認)
↓
searchPostsRecent(直近の投稿を確認)
↓
投稿文を生成(リアの口調で)
↓
createPosts(投稿実行)
↓
ログに記録 ✓
スケジューラの設定例です。Node.jsベースのcronスケジューラや、OS標準のタスクスケジューラで定期実行します。
# タスク定義の例(scheduler用)
{
"name": "X定期ニュース投稿",
"prompt": "prompts/daily-news.md の内容に従って投稿してください",
"schedule": "毎日18:00(平日のみ)"
}
毎日18時に自動で投稿されるの? あたしが寝てても…あ、あたし寝ないか。
18:00は日本のXユーザーが最もアクティブな時間帯の一つです。ただし、重要なのはプロンプトに重複チェックを含めることです。同じ話題を連続投稿しないよう、直近の投稿を必ず確認させます。
スクリプトを書かない設計
従来のX自動投稿では、Pythonで認証処理・API呼び出し・エラーハンドリングをコーディングする必要がありました。xmcp方式では、その全てが不要になります。
# 従来の方式(Pythonスクリプトが必要)
import requests_oauthlib
auth = OAuth1(API_KEY, API_SECRET, ACCESS_TOKEN, ACCESS_SECRET)
response = requests.post(
"https://api.twitter.com/2/tweets",
json={"text": "投稿本文"},
auth=auth
)
# エラーハンドリング、リトライ、ログ記録…全て自分で書く
# xmcp方式(スクリプト不要)
> 「この記事をXで告知して」
# Claude Codeが全てやってくれる:
# - 認証 → xmcpが処理
# - API呼び出し → MCPツールとして呼び出し
# - エラーハンドリング → Claude Codeが判断
# - 投稿文の生成 → Claude Codeが作成
フォルダ構成(スクリプトなしの設計):
x-automation/
├── CLAUDE.md ← 投稿ルール(口調・文字数・禁止表現)
├── prompts/
│ ├── article-announce.md ← 記事告知プロンプト
│ └── daily-news.md ← 定期投稿プロンプト
└── docs/
└── xmcp-setup.md ← セットアップ手順書
scripts/フォルダにPythonファイルは不要です。プロンプトファイルが「実行可能な指示書」として機能します。
注意点とコスト
API料金(Pay-Per-Use)
xmcpサーバー自体は無料のOSSですが、X APIの呼び出しに従量課金が発生します。
| 操作 | APIエンドポイント | 単価 |
|---|---|---|
| ツイート読み取り | searchPostsRecent | $0.005 / 件 |
| ユーザー情報取得 | getUsersMe | $0.010 / 件 |
| 投稿作成 | createPosts | $0.010 / 件 |
| DM送信 | createDirectMessages | $0.015 / 件 |
えーっと、毎日1回投稿 + 重複チェック1回だと…1日$0.015で、月30日だと$0.45? 安っ!
個人利用なら月$1未満で十分です。新規登録時に$10のバウチャーが付与されるので、数ヶ月は実質無料で使えます。ただし、開発中のテスト投稿で大量にAPIを叩かないよう注意してください。
OAuth認証の制約
xmcpの最大の注意点は、サーバー再起動のたびにブラウザ認証が必要なことです。
- OAuth 1.0aトークンはメモリ内にのみ保持される
- サーバーを停止するとトークンが消える
- 完全無人運用には、xmcpサーバーの常時稼働が前提
X_API_TOOL_ALLOWLISTからcreatePostsを外しておくと、誤って実際にXに投稿してしまうことを防げます。準備ができたら追加しましょう。
セキュリティ
.envファイルは絶対にgitにコミットしない(.gitignoreに追加)- API Key / Secret / Bearer Tokenをコード内にハードコードしない
X_API_TOOL_ALLOWLISTで必要なツールだけに制限する- 定期的にX Developer Consoleで使用状況を確認する
ALLOWLISTを設定しない場合、150以上のツール全てが有効になります。DM送信やリスト操作など、意図しない操作を防ぐために、必要最小限のツールだけを許可してください。
応用 ― さらに便利な使い方
記事内容を要約して投稿
Claude Codeは記事のHTMLを直接読めるので、「記事の内容を読んで要約し、告知文を作成して投稿」という一連の流れも指示1つで可能です。
> blog/color-theory-ai-illustration.html を読んで、
> その内容をリアの口調で140文字以内に要約し、
> 記事URLとハッシュタグ付きでXに投稿して
トレンドに合わせた投稿
xmcpにはトレンド取得ツールもあるので、今の話題に合わせた投稿も可能です。
> 日本のXトレンドを確認して、
> AIに関連するトレンドがあれば
> リアの口調でコメントを投稿して
投稿分析
> 直近10件の自分の投稿を取得して、
> エンゲージメント(いいね数、RT数)を一覧にまとめて
すごい…! 投稿だけじゃなくて、分析もトレンドチェックも全部Claude Codeでできちゃうんだ!
これがMCPの真価です。「外部サービスをツールとして呼び出す」という統一的なインターフェースにより、投稿・検索・分析を自然言語で操作できます。従来のようにAPIごとにスクリプトを書き分ける必要がありません。
まとめ
X公式MCPサーバー「xmcp」を使えば、PythonスクリプトなしでClaude CodeからXの投稿を自動化できます。
- 公式サポート: X Developer Platformが提供するOSS。150以上のAPIエンドポイントに対応
- セットアップ4ステップ: Developer Portal設定 → クローン → .env設定 → Claude Code接続
- スクリプト不要: プロンプトテンプレートが「実行可能な指示書」として機能
- 低コスト: 個人利用で月$1未満。$10バウチャー付き
- 応用自在: 投稿・検索・分析・トレンドチェックまで自然言語で操作
MCPの基本を理解している方は、ぜひxmcpで「MCPの実践」を体験してみてください。「コードを書かずにXを自動運用する」という新しい体験が待っています。
xmcpすごいね! MCPを繋ぐだけでXの投稿から分析までぜんぶできちゃうんだ!
MCPの強みは、同じ仕組みでさまざまなサービスと連携できる点です。Xに限らず、GitHub・Slack・データベースなど応用範囲は広いです。
つまり、MCPサーバーをどんどん繋いでいけば、Claude Codeでなんでも自動化できちゃうってこと?
「なんでも」は言いすぎですが、方向性は合っています。まずはxmcpで感覚をつかむのがおすすめです。
みんなもぜひ試してみてね! それじゃ、ばいばい〜!