Agent Twitter Client MCP

MIT License
5
2
  • Apple

Integrations

  • Supports containerized deployment through Docker and Docker Compose, with configuration options for environment variables and volume mounting for logs.

  • References GitHub for accessing demo scripts, contributing to the project, and accessing specific versions of dependencies.

  • Runs as a Node.js application, with compatibility requirements specified through version badges and environment configuration.

エージェント-Twitter-クライアント-MCP

agent-twitter-clientパッケージを使用して Twitter と統合するモデル コンテキスト プロトコル (MCP) サーバー。これにより、AI モデルは直接 API アクセスせずに Twitter と対話できるようになります。

特徴

  • 認証オプション:
    • Cookieベースの認証(推奨)
    • ユーザー名/パスワード認証
    • Twitter API v2 の認証情報
  • ツイート操作
    • ユーザーからのツイートを取得する
    • IDで特定のツイートを取得する
    • ツイートを検索
    • テキストとメディアを含むツイートを送信する
    • アンケートを作成する
    • ツイートをいいね、リツイート、引用する
  • ユーザー操作:
    • ユーザープロファイルを取得する
    • ユーザーをフォローする
    • フォロワーとフォローリストを取得する
  • Grok統合:
    • Twitterのインターフェース経由でGrokとチャットする
    • 会話IDで会話を続ける
    • ウェブ検索結果と引用を取得する
    • Grokを通じてTwitterのリアルタイムデータにアクセスする
    • : Grok 機能にはagent-twitter-client v0.0.19以上が必要です

ドキュメント

クイックスタート

インストール

# Install globally npm install -g agent-twitter-client-mcp # Or install locally npm install agent-twitter-client-mcp

基本的な使い方

  1. Twitter の認証情報を使用して.envファイルを作成します (認証方法を参照)
  2. MCP サーバーを実行します。
# If installed globally agent-twitter-client-mcp # If installed locally npx agent-twitter-client-mcp

デモスクリプト

パッケージには、さまざまな機能を示すサンプル スクリプトを含むdemoディレクトリが含まれています。

# Clone the repository to access the demo scripts git clone https://github.com/ryanmac/agent-twitter-client-mcp.git cd agent-twitter-client-mcp/demo # Run the interactive demo menu ./run-demo.sh # Run a specific demo script ./run-demo.sh --script tweet-search.js # Run Grok AI examples (requires agent-twitter-client v0.0.19) ./run-demo.sh --script simple-grok.js --use-local-agent-twitter-client ./run-demo.sh --script grok-chat.js --use-local-agent-twitter-client

詳細については、デモの README を参照してください。

ポート構成

デフォルトでは、MCP サーバーはポート 3000 で実行されます。これを変更する必要がある場合 (たとえば、既にポート 3000 でアプリケーションが実行されている場合)、いくつかのオプションがあります。

オプション1: 環境変数を使用する

PORT環境変数を設定します。

PORT=3001 npx agent-twitter-client-mcp

オプション2: Docker Composeを使用する

Docker Compose を使用する場合は、 .envファイルでホスト ポートとコンテナ ポートの両方を構成できます。

# .env file MCP_HOST_PORT=3001 # The port on your host machine MCP_CONTAINER_PORT=3000 # The port inside the container

次に以下を実行します:

docker-compose up -d

これにより、ホストのポート 3001 がコンテナーのポート 3000 にマップされ、他のアプリケーションが引き続きポート 3000 を使用しながらも、http://localhost:3001で MCP にアクセスできるようになります。

Claude Desktopでのセットアップ

  1. 次のコードを追加して、Claude Desktop がこの MCP を使用するように設定します。

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

{ "mcpServers": { "agent-twitter-client-mcp": { "command": "npx", "args": ["-y", "agent-twitter-client-mcp"], "env": { "AUTH_METHOD": "cookies", "TWITTER_COOKIES": "[\"auth_token=YOUR_AUTH_TOKEN; Domain=.twitter.com\", \"ct0=YOUR_CT0_VALUE; Domain=.twitter.com\", \"twid=u%3DYOUR_USER_ID; Domain=.twitter.com\"]" } } } }
  1. Claudeデスクトップを再起動します

認証方法

Cookie認証(推奨)

{ "AUTH_METHOD": "cookies", "TWITTER_COOKIES": "[\"auth_token=YOUR_AUTH_TOKEN; Domain=.twitter.com\", \"ct0=YOUR_CT0_VALUE; Domain=.twitter.com\", \"twid=u%3DYOUR_USER_ID; Domain=.twitter.com\"]" }

クッキーを取得するには:

  1. ブラウザでTwitterにログインする
  2. 開発者ツールを開く(F12)
  3. アプリケーションタブ > Cookie へ移動します
  4. auth_tokenct0twid Cookieの値をコピーします。
  5. 各CookieにDomain=.twitter.com部分を含めるようにしてください

ユーザー名/パスワード認証

{ "AUTH_METHOD": "credentials", "TWITTER_USERNAME": "your_username", "TWITTER_PASSWORD": "your_password", "TWITTER_EMAIL": "your_email@example.com", // Optional "TWITTER_2FA_SECRET": "your_2fa_secret" // Optional, required if 2FA is enabled }

Twitter API認証

{ "AUTH_METHOD": "api", "TWITTER_API_KEY": "your_api_key", "TWITTER_API_SECRET_KEY": "your_api_secret_key", "TWITTER_ACCESS_TOKEN": "your_access_token", "TWITTER_ACCESS_TOKEN_SECRET": "your_access_token_secret" }

利用可能なツール

  • get_user_tweets : 特定のユーザーからのツイートを取得する
  • get_tweet_by_id : IDで特定のツイートを取得する
  • search_tweets : ツイートを検索する
  • send_tweet : 新しいツイートを投稿する
  • send_tweet_with_poll : アンケート付きのツイートを投稿する
  • like_tweet : ツイートに「いいね!」
  • retweet : ツイートをリツイートする
  • quote_tweet : ツイートを引用する
  • get_user_profile : ユーザーのプロフィールを取得する
  • follow_user : ユーザーをフォローする
  • get_followers : ユーザーのフォロワーを取得する
  • get_following : ユーザーがフォローしているユーザーを取得する
  • grok_chat : Twitter 経由で Grok とチャットする
  • health_check : Twitter MCP サーバーの健全性をチェックする

テストインターフェース

MCP には、テスト用の対話型コマンドライン インターフェイスが含まれています。

npx agent-twitter-client-mcp-test # or if installed locally npm run test:interface

これにより、さまざまな MCP 関数をテストできる REPL が起動します。

agent-twitter-client-mcp> help Available commands: health Run a health check profile <username> Get a user profile tweets <username> [count] Get tweets from a user tweet <id> Get a specific tweet by ID search <query> [count] Search for tweets post <text> Post a new tweet like <id> Like a tweet retweet <id> Retweet a tweet quote <id> <text> Quote a tweet follow <username> Follow a user followers <userId> [count] Get a user's followers following <userId> [count] Get users a user is following grok <message> Chat with Grok help Show available commands exit Exit the test interface

テストコマンドの例

# Run a health check agent-twitter-client-mcp> health # Search for tweets agent-twitter-client-mcp> search mcp 2 # Get a user's profile agent-twitter-client-mcp> profile elonmusk # Get tweets from a user agent-twitter-client-mcp> tweets openai 5 # Chat with Grok agent-twitter-client-mcp> grok Explain quantum computing in simple terms

使用例

クロードに次のことを依頼します。

  • 「TwitterでAIに関するツイートを検索」
  • 「『クロードからこんにちは!』というツイートを投稿してください。」
  • 「@OpenAI の最新ツイートを入手」
  • 「量子コンピューティングについてGrokとチャット」

高度な使用法

メディアとの連携

画像付きのツイートを投稿するには:

I want to post a tweet with an image. The tweet should say "Beautiful sunset today!" and include this image.

動画付きのツイートを投稿するには:

I want to post a tweet with a video. The tweet should say "Check out this amazing video!" and include the video file.

アンケートの作成

アンケートを作成するには:

Create a Twitter poll asking "What's your favorite programming language?" with options: Python, JavaScript, Rust, and Go. The poll should run for 24 hours.

Grokとのやり取り

Grok と会話するには:

Use Grok to explain quantum computing to me. Ask it to include some real-world applications.

Grok との会話を続けるには:

Continue the Grok conversation and ask it to elaborate on quantum entanglement.

Grokのユニークな機能

Grok on Twitterは、スタンドアロンのGrok APIでさえもアクセスできないリアルタイムのTwitterデータにアクセスできます。つまり、Grokに以下の質問をすることができます。

  • Twitterの現在のトレンドトピック
  • 特定のテーマに関する最近のツイートの分析
  • Twitterユーザーとそのコンテンツに関する情報
  • プラットフォーム上で議論されているリアルタイムのイベント

クエリの例:

  • 「今Twitterで話題になっているトピックは何ですか?」
  • 「TwitterにおけるAIに関する感情を分析する」
  • 「最新の Apple イベントについて人々は何と言っているでしょうか?」
  • 「今日話題になっている人気のミームコインに関する情報を表示」

Grok認証要件

Grokの機能には適切な認証が必要です。MCPは次の2つの方法をサポートしています。

  1. Cookie認証(推奨):
    • クッキーはJSON配列形式である必要があります
    • 例: TWITTER_COOKIES=["auth_token=YOUR_AUTH_TOKEN; Domain=.twitter.com", "ct0=YOUR_CT0_VALUE; Domain=.twitter.com", "twid=u=YOUR_USER_ID; Domain=.twitter.com"]
    • 必須のCookieはauth_tokenct0twidです。
  2. ユーザー名/パスワード認証:
    • TWITTER_USERNAMETWITTER_PASSWORD環境に設定する
    • 場合によってはCloudflareの保護を受ける可能性があります

Grok レート制限

Grok には使用状況に影響する可能性のあるレート制限があります。

  • 非プレミアムアカウント: 2時間あたり25件のメッセージ
  • プレミアムアカウント:上限額の引き上げ

制限に達すると、MCP は応答でレート制限情報を返します。

Grok の使用に関する詳細については、 Grok の例のドキュメントを参照してください。

トラブルシューティング

認証の問題

クッキー認証の問題

Cookie 認証で問題が発生した場合:

  1. Cookieの有効期限:TwitterのCookieは通常、一定期間後に有効期限が切れます。Twitterからログアウトして再度ログインし、Cookieを更新してみてください。
  2. Cookie の形式: Cookie が正しいドメインを持つ文字列の JSON 配列として適切にフォーマットされていることを確認します。
  3. 必須 Cookie : auth_tokenct0twidの必須 Cookie が含まれていることを確認してください。

適切にフォーマットされた Cookie の例:

"TWITTER_COOKIES": "[\"auth_token=1234567890abcdef; Domain=.twitter.com\", \"ct0=abcdef1234567890; Domain=.twitter.com\", \"twid=u%3D1234567890; Domain=.twitter.com\"]"

資格情報認証の問題

ユーザー名/パスワード認証に問題がある場合:

  1. 2 要素認証: アカウントで 2FA が有効になっている場合は、 TWITTER_2FA_SECRET入力する必要があります。
  2. アカウントのロックアウト:ログインに何度も失敗すると、アカウントがロックされる可能性があります。アカウント確認リクエストが届いているか、メールでご確認ください。
  3. キャプチャ チャレンジ: Twitter は、クライアントが自動的に処理できないキャプチャ チャレンジを表示する場合があります。

API認証の問題

API 認証の問題の場合:

  1. API キーの権限: 実行しようとしているアクションに必要な権限が API キーにあることを確認します。
  2. レート制限: Twitter API にはレート制限があり、これを超過すると障害が発生する可能性があります。
  3. API の変更: Twitter は時々 API を変更するため、互換性の問題が発生する可能性があります。

操作エラー

ツイート投稿の失敗

ツイートを投稿できない場合:

  1. コンテンツの制限: Twitter ではコンテンツ ポリシーに違反するツイートをブロックする場合があります。
  2. メディア形式の問題: メディアが適切にフォーマットされ、エンコードされていることを確認します。
  3. レート制限: Twitter では投稿できる頻度が制限されています。

検索の問題

検索が機能しない場合は:

  1. クエリ構文: 検索クエリが Twitter の検索構文に従っていることを確認します。
  2. 検索の制限: 一部の検索モードには制限があったり、特定の権限が必要な場合があります。

Grokの問題

Grok 機能が動作しない場合は:

  1. バージョン要件:
    • Grok にはagent-twitter-client v0.0.19以上が必要です
    • 現在のパッケージは基本機能にv0.0.18を使用しています
    • デモ スクリプトの場合は、 --use-local-agent-twitter-clientフラグを使用して、v0.0.19 を一時的にインストールします。
  2. 認証の問題:
    • クッキーの形式: クッキーが正しいJSON配列形式であることを確認する
    • クッキーの有効期限: Twitterのクッキーは一定期間後に期限切れになります
    • Cloudflare保護: ユーザー名/パスワード認証がCloudflareによってブロックされる可能性があります
    • プレミアム要件: Grok へのアクセスには Twitter プレミアム サブスクリプションが必要です
  3. レート制限:
    • 非プレミアムアカウント: 2時間あたり25件のメッセージ
    • エラー メッセージ:「レート制限: 制限に達しました...」
    • 解決策: レート制限がリセットされるまで待つか、プレミアムアカウントにアップグレードしてください
  4. 環境ファイルの場所:
    • デモ スクリプトの場合、資格情報がルート.envファイルではなく、 demo/.envにあることを確認してください。
    • --debug-envフラグを使用して、どの環境変数がロードされているかを確認します。

Grok の問題の詳細なトラブルシューティングについては、 Grok の例のドキュメントを参照してください。

サーバーの問題

健康チェック

health_checkツールを使用してサーバーの問題を診断します。

Run a health check on the agent-twitter-client-mcp server to diagnose any issues.

ヘルスチェックでは次の内容が報告されます:

  • 認証ステータス
  • API接続
  • メモリ使用量

ログ記録

サーバーはコンソールとファイルの両方にログを記録します。

  • error.log : エラーレベルのメッセージが含まれます
  • combined.log : すべてのログメッセージが含まれます

詳細なエラー情報については、これらのログを確認してください。

発達

前提条件

  • Node.js 18歳以上
  • npm

設定

  1. リポジトリをクローンする
git clone https://github.com/ryanmac/agent-twitter-client-mcp.git cd agent-twitter-client-mcp
  1. 依存関係をインストールする
npm install
  1. 設定を含む.envファイルを作成します。
AUTH_METHOD=cookies TWITTER_COOKIES=["cookie1=value1", "cookie2=value2"]
  1. プロジェクトを構築する
npm run build
  1. サーバーを起動する
npm start

環境変数

認証変数に加えて、以下を設定できます。

  • LOG_LEVEL : ログレベルを設定する(エラー、警告、情報、デバッグ)
  • NODE_ENV : 環境を設定する(開発、本番)

ドッカー

Docker を使用してサーバーを実行することもできます。

Dockerを直接使用する

# Build the Docker image docker build -t agent-twitter-client-mcp . # Run the container with environment variables docker run -p 3000:3000 \ -e AUTH_METHOD=cookies \ -e TWITTER_COOKIES='["auth_token=YOUR_AUTH_TOKEN; Domain=.twitter.com", "ct0=YOUR_CT0_VALUE; Domain=.twitter.com"]' \ agent-twitter-client-mcp

Docker Composeの使用

  1. Twitterの認証情報を含む.envファイルを作成する
  2. docker-compose で実行します:
# Start the service docker-compose up -d # View logs docker-compose logs -f # Stop the service docker-compose down

Dockerの環境変数

環境変数を Docker コンテナに渡す方法はいくつかあります。

  1. docker-compose.yml ファイル内(すでに設定済み)
  2. .env ファイル経由(docker-compose に推奨)
  3. docker run コマンドで直接実行します(上記のように)

ログの保存

docker-compose 構成には、ログ用のボリューム マウントが含まれています。

volumes: - ./logs:/app/logs

これにより、ログはプロジェクト フォルダー内のlogsディレクトリに保存されます。

セキュリティに関する考慮事項

  • 資格情報の保存: 資格情報は、環境変数または安全なボールトを使用して安全に保存することをお勧めします。
  • レート制限: Twitter API の不正使用を防ぐためにレート制限を実装します。
  • コンテンツの検証: 悪意のある使用を防ぐために、投稿する前にすべてのコンテンツを検証します。

ライセンス

マサチューセッツ工科大学

ID: p7k25l22qn