Social MCP: Multi-Agent Social Media Automation について
Social MCPは、コンテンツの抽出、投稿文の生成、投稿、エンゲージメントを自動化するマルチエージェントシステムです。MCPサーバーとクライアントが、LLMによる生成、ブラウザー自動化、プラットフォームAPIを連携させます。
主な機能
- 01ソーシャルコンテンツの抽出
- 02LLMによる投稿文の生成
- 03投稿とスケジュール設定
- 04投稿の検索とエンゲージメント
- 05ブラウザーセッションの保持
- 06リトライとセッション復旧
活用シーン
- 01ソーシャル投稿の生成と公開
- 02ハッシュタグ検索によるコンテンツ発見
- 03エンゲージメントワークフローでの投稿へのいいね
MCP 対応
MCPサーバーは、コンテンツ抽出、投稿文生成、ブラウザー自動化、エンゲージメント、スケジュール設定のツールを公開します。クライアントはエージェント、LLM、ツール呼び出しを調整します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Social MCP:マルチエージェントによるソーシャルメディア自動化
概要
Social MCP は、Twitter や Bluesky などのプラットフォームで、コンテンツの抽出、ツイートの生成、投稿、エンゲージメントを自動化するマルチエージェントシステムです。コンテンツ生成には LLM、ブラウザー自動化には Playwright、プラットフォーム連携には API を使用します。
アーキテクチャ
- MCP サーバー:次のツールエンドポイントを提供します:
- コンテンツの抽出
- LLM を使用したツイート生成
- Twitter のブラウザー自動化(Playwright を使用)
- ソーシャルメディアのエンゲージメント
- コンテンツのスケジュール設定
- MCP クライアント:ワークフローを統括し、エージェントを実行し、LLM を管理して、ツール呼び出しを調整します
- 共通機能:Google Sheets 連携、再試行ロジック、シークレット管理のための共有ユーティリティ
主な機能
-
Twitter 自動化
- セッションの永続的な管理
- 堅牢なログイン検出
- 再試行ロジックを用いたツイート投稿
- 検索とエンゲージメントの自動化
- ハッシュタグを利用したコンテンツの発見
-
コンテンツ生成
- LLM によるツイート生成
- コンテンツのスケジュール設定
- マルチプラットフォーム対応
-
ブラウザー自動化
- セッションの永続的な処理
- 堅牢なページ状態の検証
- ナビゲーションの問題からの自動復旧
- URL エンコードと適切なページ読み込み
ディレクトリ構成
social_mcp/
├── mcp_server/
│ ├── tools/
│ │ ├── post_tweets.py # Twitter automation
│ │ ├── generate_tweets.py # LLM tweet generation
│ │ └── engage_posts.py # Social engagement
│ ├── server.py
│ └── config.py
├── mcp_client/
│ ├── agents/
│ ├── llm_orchestrator.py
│ ├── workflow_graph.py
│ └── client.py
├── common/
│ ├── google_sheets.py
│ ├── retry_utils.py
│ └── secrets.py
├── .env
├── requirements.txt
├── README.md
└── setup.sh
実装の詳細
Twitter 自動化(post_tweets.py)
-
セッション管理
- ブラウザーセッションの永続化
- 自動ログイン検出
- セッションの復旧
-
堅牢なページ処理
- 検索語の URL エンコード
- ページ状態の継続的な検証
- 自動ナビゲーション復旧
- 操作失敗時の再試行ロジック
-
エンゲージメント機能
- ハッシュタグ検索
- ツイートへの「いいね」の自動化
- コンテンツの発見
ブラウザー自動化のベストプラクティス
-
ページの読み込み
- 初回読み込みには
domcontentloadedを使用します - 特定の要素が表示されるまで待機します
- ページ状態を検証します
- 初回読み込みには
-
エラー処理
- 操作失敗時の再試行ロジック
- エラーからの適切な復旧
- 詳細なログ記録
-
セッション管理
- コンテキストの永続化
- ログイン状態の検証
- セッションの自動復旧
セットアップ
-
リポジトリをクローンして、ディレクトリに移動します:
git clone <repository-url> cd social_mcp -
仮想環境を作成し、依存関係をインストールします:
python3 -m venv venv source venv/bin/activate pip install -r requirements.txt playwright install -
.envファイルを次の内容で設定します:TWITTER_USERNAME=your_username TWITTER_PASSWORD=your_password PLAYWRIGHT_SESSION_DIR=./playwright_session HEADLESS=false # Set to true for headless operation -
Google Sheets API と OAuth 認証情報を設定します
使用方法
-
/social_mcp から MCP サーバーを起動します:
python mcp_server/server.py -
/social_mcp から MCP クライアントを実行します:
python mcp_client/client.py
新機能の追加
- 新しいツール:
mcp_server/tools/に追加し、server.pyに登録します - 新しいエージェント:
mcp_client/agents/に追加し、workflow_graph.pyを更新します - ブラウザー自動化:堅牢に実装するため、
post_tweets.pyのパターンに従います
セキュリティ
- すべてのシークレットを
.envに保存します - Google Sheets と Bluesky には OAuth スコープを使用します
- Playwright スクリプトは MFA/CAPTCHA を適切に処理します
- セッションデータは
playwright_sessionディレクトリに安全に保存されます
ベストプラクティス
-
ブラウザー自動化
- 常にページ状態を検証します
- 適切な URL エンコードを使用します
- 再試行ロジックを実装します
- ナビゲーションの問題に対処します
-
エラー処理
- すべての操作をログに記録します
- 適切な復旧処理を実装します
- 適切なタイムアウトを使用します
-
セッション管理
- ログイン状態を検証します
- セッションの復旧に対応します
- リソースを適切にクリーンアップします
** やること
- ツイートと bsky からコンテンツを取得し、LLM を使って返信を生成して投稿する
- 投稿と「いいね」に使用する 2 つ目の Twitter アカウントを組み込む
- 検索とエンゲージメントに「web3」、「nft」、「crypto」の検索を含める
- ワークフローの開始時刻と実行時間を
.envからランダムに設定する - Reddit への投稿を実装する
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。