X (Twitter) MCP server

X (Twitter) MCP サーバー

AIツールを介してTwitter (X)とやり取りするためのモデルコンテキストプロトコル(MCP)サーバー。このサーバーでは、AIツールの自然言語コマンドを通じて、ツイートの取得、投稿、Twitter検索、フォロワーの管理など、様々な操作が可能です。

特徴

  • ユーザー プロファイル、フォロワー、フォロー中のリストを取得します。
  • ツイートを投稿、削除、お気に入りに追加します。
  • Twitterでツイートやトレンドを検索します。
  • ブックマークとタイムラインを管理します。
  • Twitter API 用の組み込みレート制限処理。
  • 適切な認証 (API キーとトークン) を備えた Twitter API v2 を使用し、ユーザー名/パスワードのハッキングを回避して、アカウント停止のリスクを最小限に抑えます。
  • ユーザー管理、ツイート管理、タイムライン、検索機能のための Twitter API v2 エンドポイントの完全な実装を提供します。

前提条件

  • Python 3.10 以上: システムに Python がインストールされていることを確認します。
  • Twitter 開発者アカウント: Twitter 開発者ポータルからの API 資格情報 (API キー、API シークレット、アクセス トークン、アクセス トークン シークレット、およびベアラー トークン) が必要です。
  • オプション: Claude Desktop : Anthropic Web サイトから Claude Desktop アプリをダウンロードしてインストールします。
  • オプション: Node.js (MCP 統合用): Claude Desktop で MCP サーバーを実行するために必要です。
  • Python 依存関係用のuvpipのようなパッケージ マネージャー。

インストール

オプション 1: Smithery 経由でインストールする (推奨)

Smithery経由で Claude Desktop 用の X (Twitter) MCP サーバーを自動的にインストールするには:

npx -y @smithery/cli install @rafaljanicki/x-twitter-mcp-server --client claude

オプション2: PyPIからインストールする

x-twitter-mcpをインストールする最も簡単な方法は PyPI を使用することです。

pip install x-twitter-mcp

オプション3: ソースからインストールする

ソース リポジトリからインストールする場合:

  1. リポジトリのクローンを作成します:
    git clone https://github.com/rafaljanicki/x-twitter-mcp-server.git cd x-twitter-mcp-server
  2. 仮想環境をセットアップする(オプションですが推奨されます):
    python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
  3. 依存関係をインストール: uvを使用(プロジェクトはuv.lockを使用するため推奨):
    uv sync
    あるいは、 pipを使用します。
    pip install .
  4. 環境変数を構成する:
    • プロジェクト ルートに.envファイルを作成します ( .env.exampleが提供されている場合はそれをコピーできます)。
    • Twitter API 資格情報を追加します。
      TWITTER_API_KEY=your_api_key TWITTER_API_SECRET=your_api_secret TWITTER_ACCESS_TOKEN=your_access_token TWITTER_ACCESS_TOKEN_SECRET=your_access_token_secret TWITTER_BEARER_TOKEN=your_bearer_token

サーバーの実行

サーバーは 2 つの方法で実行できます。

オプション1: CLIスクリプトの使用

このプロジェクトは、CLI スクリプトx-twitter-mcp-serverを定義します。

PyPI からインストールした場合:

x-twitter-mcp-server

uvを使用してソースからインストールした場合:

uv run x-twitter-mcp-server

オプション2: FastMCPを直接使用する(ソースのみ)

ソースからインストールし、FastMCP の開発モードを使用してサーバーを実行する場合:

fastmcp dev src/x_twitter_mcp/server.py

サーバーが起動し、MCP接続を待機します。次のような出力が表示されます。

Starting TwitterMCPServer...

Claude Desktopでの使用

Claude DesktopでこのMCPサーバーを使用するには、Claudeをサーバーに接続するための設定が必要です。以下の手順に従ってください。

ステップ1: Node.jsをインストールする

Claude DesktopはMCPサーバーの実行にNode.jsを使用しています。Node.jsがインストールされていない場合は、以下の手順に従ってください。

  • nodejs.orgから Node.js をダウンロードしてインストールします。
  • インストールを確認します:
    node --version

ステップ2: Claudeデスクトップ構成を見つける

Claude Desktop は、 claude_desktop_config.jsonファイルを使用して MCP サーバーを構成します。

  • Windows : %APPDATA%\Claude\claude_desktop_config.json
  • macOS : ~/Library/Application Support/Claude/claude_desktop_config.json

ファイルが存在しない場合は作成します。

ステップ3: MCPサーバーを構成する

claude_desktop_config.jsonを編集して、 x-twitter-mcpサーバーを追加します。/path/to/x-twitter-mcp-server /path/to/x-twitter-mcp-server 、プロジェクトディレクトリへの実際のパス(ソースからインストールした場合)または Python 実行ファイルへのパス(PyPI からインストールした場合)に置き換えます。

PyPI からインストールした場合:

{ "mcpServers": { "x-twitter-mcp": { "command": "x-twitter-mcp-server", "args": [], "env": { "PYTHONUNBUFFERED": "1", "TWITTER_API_KEY": "your_api_key", "TWITTER_API_SECRET": "your_api_secret", "TWITTER_ACCESS_TOKEN": "your_access_token", "TWITTER_ACCESS_TOKEN_SECRET": "your_access_token_secret", "TWITTER_BEARER_TOKEN": "your_bearer_token" } } } }

uvを使用してソースからインストールした場合:

{ "mcpServers": { "x-twitter-mcp": { "command": "uv", "args": [ "--directory", "/path/to/x-twitter-mcp-server", "run", "x-twitter-mcp-server" ], "env": { "PYTHONUNBUFFERED": "1" } } } }
  • "command": "x-twitter-mcp-server" : PyPI からインストールされた場合は CLI スクリプトを直接使用します。
  • "env" : PyPIからインストールした場合、 .envファイルがないため、設定ファイルで環境変数を直接指定する必要があるかもしれません。ソースからインストールした場合は、 .envファイルが使用されます。
  • "env": {"PYTHONUNBUFFERED": "1"} : Claude でのログ記録を改善するために、出力がバッファリングされないようにします。

ステップ4: Claude Desktopを再起動する

  • Claude Desktop を完全に終了します。
  • 新しい構成をロードするには、Claude Desktop を再度開きます。

ステップ5: 接続を確認する

  • Claude Desktop を開きます。
  • 入力エリア(右下隅)にハンマーまたはコネクタのアイコンが表示されています。これは、MCPツールが利用可能であることを示します。
  • アイコンをクリックすると、 post_tweetsearch_twitterget_user_profileなど、 x-twitter-mcpで利用可能なツールが表示されます。

ステップ6:クロードとテストする

Claude Desktopで自然言語を使ってTwitterとやり取りできるようになりました。プロンプトの例を以下に示します。

  • ユーザープロファイルを取得します:
    Get the Twitter profile for user ID 123456.
    Claude はget_user_profileツールを呼び出して、ユーザーの詳細を返します。
  • ツイートを投稿する:
    Post a tweet saying "Hello from Claude Desktop! #MCP"
    Claude はpost_tweetツールを使用してツイートを投稿し、アクションを確認します。
  • Twitterを検索:
    Search Twitter for recent tweets about AI.
    Claude はsearch_twitterツールを呼び出して関連するツイートを返します。
  • トレンドを入手:
    What are the current trending topics on Twitter?
    Claude はget_trendsツールを使用してトレンドのトピックを取得します。

プロンプトが表示されたら、チャット セッションで MCP ツールを使用する権限を Claude に付与します。

利用可能なツール

以下はx-twitter-mcpサーバーが提供するすべてのツールのリストと、自然言語プロンプトを使用した Claude Desktop での実行例です。

ユーザー管理ツール

get_user_profile
  • 説明: ユーザーの詳細なプロフィール情報を取得します。
  • クロードデスクトップの例:
    Get the Twitter profile for user ID 123456789.
    Claude は、ID、名前、ユーザー名、プロフィール画像の URL、説明など、ユーザーのプロフィール詳細を返します。
get_user_by_screen_name
  • 説明: スクリーン名でユーザーを取得します。
  • クロードデスクトップの例:
    Get the Twitter user with screen name "example_user".
    Claude はユーザーのプロフィール詳細を返します。
get_user_by_id
  • 説明: ID でユーザーを取得します。
  • クロードデスクトップの例:
    Fetch the Twitter user with ID 987654321.
    Claude はユーザーのプロフィール詳細を返します。
get_user_followers
  • 説明: 指定されたユーザーのフォロワーのリストを取得します。
  • クロードデスクトップの例:
    Get the followers of user ID 123456789, limit to 50.
    Claude は最大 50 人のフォロワーのリストを返します。
get_user_following
  • 説明: 指定されたユーザーがフォローしているユーザーを取得します。
  • クロードデスクトップの例:
    Who is user ID 123456789 following? Limit to 50 users.
    Claude は最大 50 人のユーザーのリストを返します。
get_user_followers_you_know
  • 説明: 共通フォロワーのリストを取得します。
  • クロードデスクトップの例:
    Get common followers for user ID 123456789, limit to 50.
    Claude は、最大 50 人の共通フォロワーのリストを返します (フォロワーをフィルタリングすることでシミュレートされます)。
get_user_subscriptions
  • 説明: 指定されたユーザーがサブスクライブしているユーザーのリストを取得します。
  • クロードデスクトップの例:
    Get the subscriptions for user ID 123456789, limit to 50.
    Claude は、最大 50 人のユーザーのリストを返します (サブスクリプションのプロキシとして以下を使用)。

ツイート管理ツール

post_tweet
  • 説明: オプションのメディア、返信、タグを付けてツイートを投稿します。
  • クロードデスクトップの例:
    Post a tweet saying "Hello from Claude Desktop! #MCP"
    クロードがツイートを投稿し、ツイートの詳細を返します。
delete_tweet
  • 説明: ID でツイートを削除します。
  • クロードデスクトップの例:
    Delete the tweet with ID 123456789012345678.
    クロードはツイートを削除し、その行動を確認します。
get_tweet_details
  • 説明: 特定のツイートの詳細情報を取得します。
  • クロードデスクトップの例:
    Get details for tweet ID 123456789012345678.
    Claude は、ID、テキスト、作成日、作成者 ID などのツイートの詳細を返します。
create_poll_tweet
  • 説明: アンケート付きのツイートを作成します。
  • クロードデスクトップの例:
    Create a poll tweet with the question "What's your favorite color?" and options "Red", "Blue", "Green" for 60 minutes.
    クロードはアンケートツイートを作成し、ツイートの詳細を返します。
vote_on_poll
  • 説明: アンケートに投票します。
  • クロードデスクトップの例:
    Vote "Blue" on the poll in tweet ID 123456789012345678.
    Claude は模擬応答を返します (Twitter API v2 は投票をサポートしていないため)。
favorite_tweet
  • 説明: ツイートをお気に入りに追加します。
  • クロードデスクトップの例:
    Like the tweet with ID 123456789012345678.
    クロードはツイートをお気に入りに登録し、アクションを確認します。
unfavorite_tweet
  • 説明: ツイートをお気に入り解除します。
  • クロードデスクトップの例:
    Unlike the tweet with ID 123456789012345678.
    クロードはツイートのお気に入りを解除し、そのアクションを確認します。
bookmark_tweet
  • 説明: ツイートをブックマークに追加します。
  • クロードデスクトップの例:
    Bookmark the tweet with ID 123456789012345678.
    クロードはツイートをブックマークし、アクションを確認します。
delete_bookmark
  • 説明: ブックマークからツイートを削除します。
  • クロードデスクトップの例:
    Remove the bookmark for tweet ID 123456789012345678.
    クロードはブックマークを削除し、アクションを確認します。
delete_all_bookmarks
  • 説明: すべてのブックマークを削除します。
  • クロードデスクトップの例:
    Delete all my Twitter bookmarks.
    クロードはすべてのブックマークを削除し、その操作を確認します。

タイムラインと検索ツール

get_timeline
  • 説明: ホームタイムライン (For You) からツイートを取得します。
  • クロードデスクトップの例:
    Show my Twitter For You timeline, limit to 20 tweets.
    Claude はあなたの「おすすめ」タイムラインから最大 20 件のツイートを返します。
get_latest_timeline
  • 説明: ホームタイムライン(フォロー中)からツイートを取得します。
  • クロードデスクトップの例:
    Show my Twitter Following timeline, limit to 20 tweets.
    Claude は、あなたのフォロー中のタイムラインから最大 20 件のツイートを返します。
search_twitter
  • 説明: クエリを使用して Twitter を検索します。
  • クロードデスクトップの例:
    Search Twitter for recent tweets about AI, limit to 10.
    クロードは AI に関する最近のツイートを最大 10 件返します。
  • 説明: Twitter のトレンドトピックを取得します。
  • クロードデスクトップの例:
    What are the current trending topics on Twitter? Limit to 10.
    Claude は最大 10 件のトレンド トピックを返します。
get_highlights_tweets
  • 説明: ユーザーのタイムラインからハイライトされたツイートを取得します。
  • クロードデスクトップの例:
    Get highlighted tweets from user ID 123456789, limit to 20.
    Claude は、ユーザーのタイムラインから最大 20 件のツイートを返します (ハイライトとしてシミュレートされます)。
get_user_mentions
  • 説明: 特定のユーザーをメンションしたツイートを取得します。
  • クロードデスクトップの例:
    Get tweets mentioning user ID 123456789, limit to 20.
    クロードは、ユーザーについて言及しているツイートを最大 20 件返します。

トラブルシューティング

  • サーバーが起動しません:
    • .envファイルに必要なすべての Twitter API 資格情報が含まれていることを確認します (ソースからインストールされている場合)。
    • PyPI からインストールした場合は、 claude_desktop_config.jsonまたはシェルで環境変数が設定されていることを確認してください。
    • x-twitter-mcp-serverを実行しているときに、ターミナル出力でエラーを確認します。
    • uvまたは Python 実行ファイルが正しくインストールされ、アクセス可能であることを確認します。
  • クロードがサーバーを検出しません:
    • claude_desktop_config.json内のパスが正しいことを確認します。
    • commandargs正しい実行可能ファイルとスクリプトを指していることを確認します。
    • 設定ファイルを更新した後、Claude Desktop を再起動します。
    • Claude の開発者モード ログ (ヘルプ → 開発者モードを有効にする → MCP ログ ファイルを開く) でエラーを確認します。
  • レート制限エラー:
    • サーバーにはレート制限の処理が含まれていますが、Twitter API の制限に達した場合は、リセット ウィンドウ (ツイート アクションの場合は 15 分など) を待つ必要がある場合があります。
  • 構文の警告:
    • Tweepy からSyntaxWarningメッセージが表示される場合、これは Python 3.13 の Tweepy における docstring の問題が原因です。サーバーには、この問題に対処するための警告抑制機能が組み込まれています。

貢献

貢献を歓迎します! GitHub リポジトリで問題を開くか、プル リクエストを送信してください。

ライセンス

このプロジェクトはMITライセンスの下で提供されています。詳細はLICENSEファイルをご覧ください。

著者

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol (MCP) server for managing social media posts, currently supporting X (formerly Twitter).
    Last updated -
    3
    7
    JavaScript
    MIT License
  • A
    security
    A
    license
    A
    quality
    An MCP server that allows Claude to create, manage and publish X/Twitter posts directly through the chat interface.
    Last updated -
    5
    35
    Python
    MIT License
    • Apple
  • A
    security
    A
    license
    A
    quality
    An MCP server that enables Claude to interact with Twitter, allowing for posting tweets and searching Twitter content.
    Last updated -
    2
    90
    151
    TypeScript
    MIT License
    • Apple
  • -
    security
    A
    license
    -
    quality
    A headless MCP server that provides Twitter API access without requiring local credential setup, enabling core Twitter operations like searching tweets, getting user tweets, posting tweets, and replying to tweets.
    Last updated -
    Python
    MIT License

View all related MCP servers

ID: 7w9byzj3wm