MCP サーバー - Twitter NoAuth
ローカル認証情報やトークンの設定なしでTwitter APIアクセスを提供するMCP(Model Context Protocol)サーバー。ツイートの検索、ユーザーのツイートの取得、ツイートの投稿、ツイートへの返信といったTwitterのコア操作を提供します。
デモビデオ
https://www.youtube.com/watch?v=LOxFqCTPedc
Related MCP server: Twitter MCP Server
MCP Twitter NoAuth サーバーを選ぶ理由
重要な利点
ヘッドレス & リモート操作: このサーバーは、ブラウザーやローカル ファイル アクセスのないリモート環境で完全にヘッドレスで実行できます。
分離されたアーキテクチャ: どのクライアントも OAuth フローを独立して完了し、資格情報をコンテキストとしてこの MCP サーバーに渡すことができるため、資格情報の保存とサーバーの実装が完全に分離されます。
いいけど批判的ではない
重点的な機能: ツイートの検索、ユーザーのツイートの取得、ツイートの投稿、ツイートへの返信など、Twitter の基本的な操作を提供します。
Docker 対応: コンテナ化を考慮して設計されており、適切に分離された、環境に依存しないワンクリック セットアップを実現します。
信頼できる依存関係: Twitter API 統合用の標準 Python リクエスト ライブラリに基づいて構築されています。
特徴
Twitter APIを使用してツイートを検索する
特定のユーザーの最近のツイートを取得する
特定のユーザーによる最近の返信を取得する
新しいツイートを投稿する
既存のツイートに返信する
アクセストークンを個別に更新する
自動リフレッシュトークン処理
前提条件
Python 3.10以上
Twitter API 認証情報 (クライアント ID、クライアント シークレット、アクセス トークン、リフレッシュ トークン)
インストール
# Clone the repository
git clone https://github.com/yourusername/mcp-twitter-noauth.git
cd mcp-twitter-noauth
# Install dependencies
pip install -e .ドッカー
Dockerイメージの構築
# Build the Docker image
docker build -t mcp-twitter-noauth .Claude Desktopでの使用
Dockerの使用
Claude 構成に以下を追加することで、Claude Desktop が Docker イメージを使用するように構成できます。
{
"mcpServers": {
"twitter": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"buryhuang/mcp-twitter-noauth:latest"
]
}
}
}注: この設定では、 「ツールの使用」セクションに示されているように、ツール呼び出しで Twitter API 認証情報を提供する必要があります。認証情報の保存とサーバー実装を分離するため、Twitter 認証情報は環境変数として渡されません。
クロスプラットフォームパブリッシング
複数のプラットフォーム向けにDockerイメージを公開するには、 docker buildxコマンドを使用します。以下の手順に従ってください。
新しいビルダー インスタンスを作成します(まだ作成していない場合)。
docker buildx create --use複数のプラットフォーム用のイメージをビルドしてプッシュします。
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t buryhuang/mcp-twitter-noauth:latest --push .指定されたプラットフォームでイメージが使用可能であることを確認します。
docker buildx imagetools inspect buryhuang/mcp-twitter-noauth:latest
使用法
サーバーはMCPツールを通じてTwitter機能を提供します。専用のトークン更新ツールにより、認証処理が簡素化されます。
サーバーの起動
mcp-server-twitter-noauthツールの使用
Claude のような MCP クライアントを使用する場合、認証を処理する主な方法は 2 つあります。
トークンの更新(最初のステップまたはトークンの有効期限が切れたとき)
アクセス トークンとリフレッシュ トークンの両方がある場合:
{
"twitter_access_token": "your_access_token",
"twitter_refresh_token": "your_refresh_token",
"twitter_client_id": "your_client_id",
"twitter_client_secret": "your_client_secret"
}アクセス トークンの有効期限が切れている場合は、リフレッシュ トークンだけで更新できます。
{
"twitter_refresh_token": "your_refresh_token",
"twitter_client_id": "your_client_id",
"twitter_client_secret": "your_client_secret"
}これにより、新しいアクセス トークンとその有効期限が返され、後続の呼び出しで使用できるようになります。
ツイートの検索
Twitter API を使用してツイートを検索します。
{
"twitter_access_token": "your_access_token",
"query": "your search query",
"max_results": 10
}応答には、テキスト、作成時間、作成者情報などのツイート データが含まれます。
ユーザーのツイートを取得する
特定のユーザーの最近のツイートを取得します。
{
"twitter_access_token": "your_access_token",
"user_id": "twitter_user_id",
"max_results": 10
}ユーザーの返信を取得する
特定のユーザーによる最近の返信を取得します。
{
"twitter_access_token": "your_access_token",
"user_id": "twitter_user_id",
"max_results": 10
}ツイートを投稿する
新しいツイートを投稿する:
{
"twitter_access_token": "your_access_token",
"text": "This is a test tweet from the MCP Twitter server"
}ツイートに返信する
既存のツイートに返信する:
{
"twitter_access_token": "your_access_token",
"tweet_id": "id_of_tweet_to_reply_to",
"text": "This is a reply to the original tweet"
}トークン更新ワークフロー
まず、次のいずれかの方法で
twitter_refresh_tokenツールを呼び出します。完全な認証情報(アクセストークン、リフレッシュトークン、クライアントID、クライアントシークレット)、または
アクセストークンの有効期限が切れている場合は、リフレッシュトークン、クライアントID、クライアントシークレットのみ
返された新しいアクセス トークンを後続の API 呼び出しに使用します。
トークンの有効期限が切れたことを示す応答を受け取った場合は、
twitter_refresh_tokenツールを再度呼び出して新しいトークンを取得します。
このアプローチでは、すべての操作でクライアント資格情報を要求せず、必要なときにトークンの更新も可能にすることで、ほとんどの API 呼び出しが簡素化されます。
Twitter API認証情報の取得
必要な Twitter API 資格情報を取得するには、次の手順に従います。
Twitter開発者ポータルへアクセス
新しいプロジェクトとアプリを作成する
OAuth 2.0認証を設定する
アプリのOAuth設定を構成する
クライアントIDとクライアントシークレットを生成する
OAuthフローを完了してアクセストークンとリフレッシュトークンを取得します
トークンの更新
このサーバーは自動トークン更新を実装しています。アクセストークンの有効期限が切れると、サーバーはリフレッシュトークン、クライアントID、クライアントシークレットを使用して、ユーザーの介入なしに新しいアクセストークンを取得します。
セキュリティに関する注意事項
このサーバーはTwitter APIの認証情報に直接アクセスする必要があります。トークンと認証情報は常に安全に保管し、信頼できない相手と共有しないでください。
ライセンス
詳細については、LICENSE ファイルを参照してください。