twscrape Twitter/X (read-only) について
twscrape Twitter/X (read-only)は、twscrapeを基盤とする読み取り専用のX/Twitter MCPサーバーです。投稿、スレッド、返信、検索結果を調べたいユーザー向けで、本人のログインセッションを使い、エージェントが読みやすいMarkdownで返します。
主な機能
- 01投稿、スレッド、返信、引用の取得
- 02ユーザーのタイムラインとプロフィール表示
- 03条件を指定した投稿検索
- 04メディアリンク付きMarkdownで出力
- 05stdioとStreamable HTTPに対応
活用シーン
- 01投稿と返信をまとめて確認
- 02話題や条件に沿った投稿検索
- 03ユーザーの最近の活動とプロフィール確認
- 04MCPクライアントからXの内容を取得
MCP 対応
読み取り専用MCPサーバーとして、投稿、スレッド、返信、引用、タイムライン、プロフィール、検索のツールを提供します。stdioとStreamable HTTPに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
twscrape-twitter-mcp
X(Twitter)の投稿、スレッド、返信、引用、検索を読み取るMCPサーバーです。twscrapeをラップし、ご自身のログイン済みセッションを使用するため、有料のX APIや開発者アカウントは不要です。ツールは、エージェントが読みやすい形式のクリーンなMarkdownを返します。投稿内の画像、動画、GIFのURLや外部リンクも含まれます。
標準の2種類のトランスポート、ローカルのstdioとホスト型のStreamable HTTPを介して、あらゆるMCPクライアントで利用できます。
ツール
| ツール | 戻り値 |
|---|---|
read_tweet(url_or_id) | 1件の投稿をMarkdown形式で返します。 |
read_thread(url_or_id, max_replies=50) | ルート投稿、投稿者自身のスレッド、上位の返信を返します。 |
read_replies(url_or_id, limit=50) | 投稿への返信を返します。 |
read_quotes(url_or_id, limit=30) | 引用投稿を返します(ベストエフォート、検索ベース)。 |
user_timeline(username, limit=40, include_replies=False) | ユーザーの最近の投稿を新しい順に返します。返信を含めるにはinclude_replies=Trueを設定します。 |
search(query, limit=20, product="Latest") | 検索結果を返します。from:、has:media、min_faves:などに対応しています。 |
user_profile(username) | ユーザーのプロフィールをMarkdown形式で返します。自己紹介、場所、フォロワー数/フォロー数/投稿数、参加日を含みます。 |
インストール
uv tool install twscrape-twitter-mcp # or: pipx install twscrape-twitter-mcp
次に認証を一度行い(次のセクションを参照)、動作を確認します。
twscrape-twitter-mcp smoke # reads one public tweet end-to-end
認証
読み取りには、ご自身のXセッションを使用します。次のいずれかの方法を選んでください。
1. 専用ブラウザーを起動する(推奨)。 DevToolsポート付きの独立したChrome/Braveプロファイルを開き、Xに一度サインインすると、セッションが取得されます。普段使っているブラウザーには触れず、Xのログインフローを自動化することもありません。
twscrape-twitter-mcp login --launch-browser chrome # or: brave
2. 専用ブラウザープロファイルに接続する。 デバッグポート付きの分離されたChromiumプロファイルをすでに実行している場合にのみ使用してください。ブラウザーのデバッグ機能を使うとブラウザーデータが公開されます。また、最近のChromeバージョンではデフォルトのプロファイルでデバッグ機能が有効になりません。
# macOS
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --remote-debugging-port=9222 --user-data-dir=/tmp/x-mcp-browser
# Linux: google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/x-mcp-browser
# Windows: "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir=%TEMP%\x-mcp-browser
twscrape-twitter-mcp login --attach # add --cdp-url for a non-default port
3. ヘッドレス/CI(生のCookie)。 サーバーからデスクトップブラウザーを開けない場合は、auth_tokenとct0のCookieを使ってセッションを追加します。シェルの履歴に秘密情報を残さないよう、Cookieのフラグを付けずに実行し、非表示のプロンプトから値を入力してください。
twscrape-twitter-mcp init
取得したセッションは再起動後も再利用されます。有効期限が切れた場合や、レート制限のローテーション用に使い捨てアカウントのセッションを追加する場合は、再度login --launch-browser chromeを実行してください。twscrape-twitter-mcp accountsでアカウント一覧を確認できます。
メインアカウントではなく、使い捨てアカウントを使用してください。法的事項を参照してください。
クライアントを接続する
サーバーはローカルでstdioを介して実行されます。多くのMCPクライアントでは、次のようなJSONブロックを使用します。
{
"mcpServers": {
"x": {
"command": "twscrape-twitter-mcp",
"args": ["serve", "--transport", "stdio"]
}
}
}
クライアントごとの設定例:
Claude Code
claude mcp add x --scope user -- twscrape-twitter-mcp serve --transport stdio
Claude Desktop
上記のJSONブロックをclaude_desktop_config.jsonに追加してください
(設定 → 開発者 → 設定を編集)。
Codex — ~/.codex/config.toml
[mcp_servers.x]
command = "twscrape-twitter-mcp"
args = ["serve", "--transport", "stdio"]
Cursor — ~/.cursor/mcp.json
{
"mcpServers": {
"x": {
"command": "twscrape-twitter-mcp",
"args": ["serve", "--transport", "stdio"]
}
}
}
VS Code — .vscode/mcp.json
{
"servers": {
"x": {
"command": "twscrape-twitter-mcp",
"args": ["serve", "--transport", "stdio"]
}
}
}
リモート(Streamable HTTP)
ホスト型のプライベートインスタンス(デプロイを参照)を使う場合は、事前設定済みのクライアントから、ベアラートークンを使ってHTTPエンドポイントに接続してください。これは静的なベアラー認証であり、OAuthのサインインフローではありません。
{
"mcpServers": {
"x": {
"url": "https://YOUR-APP.example.com/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
}
}
}
次のように尋ねてみてください。「このスレッドを読んでください:<url>」
デプロイ
サーバーを常時稼働させ、HTTP(POST /mcp)経由でアクセスできるようにします。コンテナーとして提供されています。twscrape はネイティブ依存関係を持つ Python 製のため、Cloudflare Workers では動作しません。
ヘッドレスコンテナーからデスクトップブラウザーを開くことはできないため、まずローカルで認証してください(login --attach を実行すると、TWSCRAPE_TWITTER_MCP_HOME の下に storage_state.json が書き込まれます)。その後、そのセッションをホストに転送します。ファイルをマウント済みボリュームにコピーするか、SSH 経由で Cookie ベースの init を実行してください。サーバーは起動時に保存済みセッションを再読み込みします。
HTTP を公開する場合は、必ずトークンを設定してください。エンドポイントにアクセスできる人は誰でも、あなたの X セッションを使用できます。
export TWSCRAPE_TWITTER_MCP_AUTH_TOKEN=$(openssl rand -hex 32)
Fly.io
fly launch --no-deploy
fly volumes create twscrape_twitter_mcp_data --size 1
fly secrets set TWSCRAPE_TWITTER_MCP_AUTH_TOKEN=$(openssl rand -hex 32)
fly deploy
# seed a session onto the volume through hidden prompts:
fly ssh console -C "twscrape-twitter-mcp init"
Railway
Railway の接続先にこのリポジトリを指定します(railway.json と Dockerfile が読み込まれます)。/data にマウントするボリュームを追加し、TWSCRAPE_TWITTER_MCP_AUTH_TOKEN を設定して、Railway のシェルで twscrape-twitter-mcp init を実行し、セッションを登録します。
クライアントは Authorization: Bearer <token> を送信します。
設定
| 環境変数 | デフォルト | 用途 |
|---|---|---|
TWSCRAPE_TWITTER_MCP_HOME | ~/.config/twscrape-twitter-mcp | SQLite アカウントプールの保存場所です。本番環境ではボリュームを指定してください。 |
TWSCRAPE_TWITTER_MCP_DB | $TWSCRAPE_TWITTER_MCP_HOME/accounts.db | プールのパスを直接指定して上書きします。 |
TWSCRAPE_TWITTER_MCP_AUTH_TOKEN | (未設定) | HTTP トランスポートで必須のベアラートークンです。 |
TWSCRAPE_TWITTER_MCP_PROXY | (未設定) | すべてのアカウントに適用するグローバルプロキシです。 |
TWSCRAPE_TWITTER_MCP_CDP_URL | http://127.0.0.1:9222 | login --attach 用のブラウザー DevTools エンドポイントです。 |
TWSCRAPE_TWITTER_MCP_DEFAULT_LIMIT | 40 | タイムラインと検索結果のデフォルト件数(1~100)です。 |
PORT | 8080 | HTTP ポートです(Railway によって設定されます)。 |
仕組み
X の読み取りで難しい部分である GraphQL 署名、x-client-transaction-id ヘッダー、TLS フィンガープリント処理は、すべてバージョンが固定された twscrape が担います。このパッケージはその上に構築された読み取り専用の MCP レイヤーであり、これらの仕組みに触れることはありません。X の変更によって読み取りに問題が発生した場合、必要なのはバージョンの更新であり、リバースエンジニアリングではありません。
制限事項
- X によって、セッションに紐づくアカウントがログアウトされたり、レート制限されたり、凍結されたりする場合があります。
- 保護、削除、地域ブロックなどの制限が適用された投稿は、読み取れない場合があります。
- 引用ポストの取得範囲は検索に基づいており、完全ではありません。
- 検索結果は X の現在の検索動作に依存し、セッションによって異なる場合があります。
- ブラウザーの Cookie ストアは復号しません。ブラウザーのアタッチ機能または Cookie を使った
initを使用してください。
法的事項
自身のログイン済みセッションを使って X を読み取る行為は、X の利用規約に違反する可能性があります。また、スクレイピングに使用したアカウントは、レート制限または凍結される場合があります。メインアカウントではなく、使い捨てアカウントを使用してください。本ソフトウェアは現状有姿で研究および個人利用向けに提供されます。使用方法については、ご自身の責任となります。
ライセンス
MIT。
クレジット
スクレイピングの中核を担うのは、vladkens による twscrape です。その上に構築された読み取り専用 MCP レイヤーです。ぜひスターを付けてください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。