X (Twitter) MCP Server について
X APIを介してMCPクライアントからXの操作を行うサーバーです。投稿と検索に加え、プロフィール、フォロー関係、リストを管理できます。
主な機能
- 01投稿とコンテンツ検索
- 02ユーザープロフィールの取得
- 03プロフィール情報の更新
- 04ユーザーのフォローと解除
- 05ユーザーリストの管理
活用シーン
- 01MCPクライアントからXに投稿
- 02クエリで投稿を検索
- 03アカウント情報の確認や変更
- 04フォロー関係とリストの整理
MCP 対応
stdioで動作し、投稿、検索、アカウント管理、リスト管理などのX API操作をMCPツールとしてクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
X(Twitter)MCP サーバー
この MCP サーバーを使うと、クライアントから X(旧 Twitter)を操作できます。ツイートの投稿、コンテンツの検索、アカウントの管理、リストの整理など、プラットフォームの幅広い操作に対応しています。
クイックスタート
- X Developer アカウントを作成し、X Developer Portalから API キーを取得します
- このリポジトリをクローンします:
git clone https://github.com/Dishant27/twitter-mcp.git - 依存関係をインストールしてビルドします:
npm install && npm run build - API キーを環境変数として設定するか、
.envファイルに設定します(.env.exampleを.envにコピーして値を入力します。.envは Git の追跡対象外のため、絶対にコミットしないでください) - サーバーを実行します:
- 環境変数を使用する場合:
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 \
npm start
.envファイルを使用する場合:
cp .env.example .env
# edit .env with your own keys, then:
npm start
- Claude などの MCP クライアントで使用します。
Claude の設定
このサーバーを Claude で使用するには、MCP の設定が必要です。設定の構成例は次のとおりです。
{
"name": "x",
"display_name": "X",
"description": "X MCP allows Claude to interact with X (formerly Twitter)",
"path": "path/to/twitter-mcp/dist/index.js",
"startup": {
"env": {
"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"
}
},
"transport": "stdio"
}
この設定を、通常は次の場所にある Claude MCP 設定ディレクトリに保存します:
- Windows:
%APPDATA%\AnthropicClaude\mcp-servers - macOS:
~/Library/Application Support/AnthropicClaude/mcp-servers - Linux:
~/.config/AnthropicClaude/mcp-servers
機能
投稿操作
- コンテンツを投稿します(最大280文字)
- クエリで投稿を検索し、結果件数をカスタマイズします
アカウント管理
- 任意のユーザーまたは認証済みアカウントのプロフィール情報を取得します
- プロフィールの詳細(名前、自己紹介、所在地、ウェブサイトの URL)を更新します
- ユーザーをフォローまたはフォロー解除します
- 任意のユーザーまたは認証済みアカウントのフォロワー一覧を取得します
- ユーザーがフォローしているアカウントの一覧を取得します
リスト管理
- 新しいリストを作成します(公開または非公開)
- 特定のリストの情報を取得します
- 認証済みユーザーが所有するすべてのリストを取得します
利用可能な MCP ツール
| ツール名 | 説明 |
|---|---|
post_tweet | X に新しいコンテンツを投稿します |
search_tweets | X のコンテンツを検索します |
get_profile | ユーザーまたは認証済みアカウントのプロフィール情報を取得します |
update_profile | 認証済みユーザーのプロフィールを更新します |
follow_user | ユーザーをフォローします |
unfollow_user | ユーザーのフォローを解除します |
list_followers | ユーザーまたは認証済みアカウントのフォロワー一覧を取得します |
list_following | ユーザーまたは認証済みアカウントがフォローしているアカウントの一覧を取得します |
create_list | 新しいリストを作成します |
get_list_info | リストの情報を取得します |
get_user_lists | 認証済みユーザーが所有するすべてのリストを取得します |
必要条件
- Node.js 18.x 以降
- API キーを持つ X Developer アカウント
- API v1 および v2 へのアクセス
@modelcontextprotocol/sdk 1.x(zod 入力スキーマを使用する McpServer/registerTool API)を基盤としています。stdio 経由で実行されるため、stdout は MCP プロトコル専用で、すべてのログは stderr に出力されます。
環境変数
| 変数 | 説明 |
|---|---|
TWITTER_API_KEY | API キー |
TWITTER_API_SECRET | API シークレット |
TWITTER_ACCESS_TOKEN | アクセストークン |
TWITTER_ACCESS_TOKEN_SECRET | アクセストークンのシークレット |
4つすべてが必須です。いずれかが設定されていない場合、サーバーは起動時に終了します。.env.exampleを参照してください。
開発
npm run build # compile TypeScript to dist/
npm run smoke # start the built server with placeholder keys and check it lists its 11 tools (no X API calls)
CI(.github/workflows/ci.yml)では、masterへのプッシュとプルリクエスト時に、npm ci、型チェック、ビルド、スモークテストを実行します。
リポジトリ構成
twitter-mcp/
├── .github/
│ └── workflows/
│ └── ci.yml # Build + smoke test
├── code/
│ ├── account_management.py # Sample Python code for account management
│ ├── post_tweet.py # Sample Python code for posting content
│ └── retrieve_tweets.py # Sample Python code for retrieving content
├── src/
│ ├── index.ts # Main entry point (MCP server and tools)
│ ├── twitter-api.ts # X API client
│ ├── formatter.ts # Response formatter
│ └── types.ts # Type definitions
├── test/
│ └── smoke.mjs # Stdio smoke test
├── .env.example
├── .gitignore
├── LICENSE
├── package.json
├── package-lock.json
├── README.md
└── tsconfig.json
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。