Skip to main content
Glama
granitebps

Twitter/X MCP

by granitebps

Twitter/X MCP

CI npm version npm downloads MCP Registry License: ISC

Twitter/X MCP は、MCPクライアントが公開されたXの投稿、返信、プロフィールを読み取ったり、Xの検索を行ったりできるようにします。デフォルトでRettiwtを使用するため、Xのデベロッパープランは不要です。アクセスがある場合は、公式X APIに切り替えることもできます。

要件

  • Node.js 22.21.0以降のNode 22リリースライン内である必要があります。現在のRettiwtリリースはNode 23以降をサポートしていません。

  • RETTIWT_API_KEYが必要です。APIモードを選択した場合は、公式X APIの認証情報が機能します。

Related MCP server: MCP Twitter/X Server

クイックスタート

パッケージが公開されれば、MCPクライアントはクローンなしで実行できます。

npx -y @granitebps/twitter-mcp

TWITTER_MODEを省略すると、サーバーはRettiwtを選択します。クライアント設定でRETTIWT_API_KEYを渡してください。

サーバーはstdioを使用します。MCPトラフィック用にstdoutを確保してください。

クローンしたリポジトリから実行

サーバーを開発する場合やクローンを直接使用する場合:

git clone https://github.com/granitebps/twitter-mcp.git
cd twitter-mcp
npm ci
npm run build

MCPクライアントをビルド済みのエントリポイントに指定します:

node /absolute/path/to/twitter-mcp/dist/cli.js

ソースを変更するたびにnpm run buildを実行してください。クライアントのstdioコマンドとしてsrcやnpm run devを使用しないでください。stdoutへのビルドログはMCPメッセージを破壊する可能性があります。

クライアント設定

各例はnpmパッケージで始まり、その後にローカルビルドの例を示します。/absolute/path/to/twitter-mcpをクローンのパスに、your_key_hereをRettiwtキーに置き換えてください。キーを含む設定ファイルをコミットしないでください。

Claude

npmパッケージをClaude Codeに追加します:

claude mcp add twitter --env RETTIWT_API_KEY=your_key_here -- npx -y @granitebps/twitter-mcp

ローカルビルドの場合:

claude mcp add twitter --env RETTIWT_API_KEY=your_key_here -- node /absolute/path/to/twitter-mcp/dist/cli.js

Claude Codeはデフォルトでローカルスコープを使用します。サーバーを複数のプロジェクト間で使用できるようにするには、twitterの前に--scope userを追加してください。

Claude Desktopは、claude_desktop_config.jsonから同じサーバーを読み取ります。ファイルを編集した後、アプリを再起動してください。

{
  "mcpServers": {
    "twitter": {
      "command": "npx",
      "args": ["-y", "@granitebps/twitter-mcp"],
      "env": {
        "RETTIWT_API_KEY": "your_key_here"
      }
    }
  }
}

ローカルビルドの場合は、commandとargsを次の内容に置き換えます:

{
  "command": "node",
  "args": ["/absolute/path/to/twitter-mcp/dist/cli.js"]
}

Codex

npmパッケージを~/.codex/config.toml、または信頼できるプロジェクト内の.codex/config.tomlに追加します:

[mcp_servers.twitter]
command = "npx"
args = ["-y", "@granitebps/twitter-mcp"]

[mcp_servers.twitter.env]
RETTIWT_API_KEY = "your_key_here"

ローカルビルドの場合:

[mcp_servers.twitter]
command = "node"
args = ["/absolute/path/to/twitter-mcp/dist/cli.js"]

[mcp_servers.twitter.env]
RETTIWT_API_KEY = "your_key_here"

Codex端を編集した後、Codexを再起動してください。CLI、IDE拡張機能、デスクトップアプリは、同じコンピューター上でこの設定を共有します。

OpenCode

npmパッケージをopencode.jsonまたはopencode.jsoncに追加します:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "twitter": {
      "type": "local",
      "command": ["npx", "-y", "@granitebps/twitter-mcp"],
      "enabled": true,
      "environment": {
        "RETTIWT_API_KEY": "your_key_here"
      }
    }
  }
}

ローカルビルドの場合は、command配列を次の内容に置き換えます:

{
  "command": ["node", "/absolute/path/to/twitter-mcp/dist/cli.js"]
}

Cursor

npmパッケージをプロジェクト内の.cursor/mcp.json、またはグローバルで使用する場合は~/.cursor/mcp.jsonに追加します:

{
  "mcpServers": {
    "twitter": {
      "command": "npx",
      "args": ["-y", "@granitebps/twitter-mcp"],
      "env": {
        "RETTIWT_API_KEY": "your_key_here"
      }
    }
  }
}

ローカルビルドの場合は、commandとargsを次の内容に置き換えます:

{
  "command": "node",
  "args": ["/absolute/path/to/twitter-mcp/dist/cli.js"]
}

プロバイダー

モード

選択方法

認証情報

備考

Rettiwt

デフォルト、またはTWITTER_MODE=rettiwt

RETTIWT_API_KEY

X APIの課金が発生しません。非公式の内部エンドポイントを使用するため、壊れたりアカウントがリスクにさらされる可能性があります。

公式API

TWITTER_MODE=api

ベアラートークンまたは完全なOAuthクレデンシャル

サポートされているX APIを使用します。アクセス階層と価格はXが管理します。

Rettiwtの設定

このサーバーでは、Rettiwtは認証済みユーザーモードが必要です。ゲストモードはサポートされていません。

  1. Rettiwtの認証手順に従ってAPIキーを作成します。

  2. MCPクライアントの環境でRETTIWT_API_KEYとして保存します。

  3. TWITTER_MODEなしでサーバーを起動するか、明示的にTWITTER_MODE=rettiwtを設定します。

RettiwtキーはXのセッションクッキーを含み、アカウントと同じアクセス権を持ちます。パスワードのように注意してください。コミットせず、issueに貼り付けず、記録せず、コマンドライン引数として渡さないでください。自分が所有している、またはアクセス許可のあるアカウントにのみキーを使用してください。

Rettiwtは非公式です。Xの自動化ルールは、非APIでのウェブサイト自動化を禁止しており、違反するとアカウントが一時停止になる可能性があると警告しています。このモードを使う前にX Rulesをお読みください。コンプライアンスとアカウントのリスクはご自身の判断で承知の上でお願いします。

公式X APIの設定

ベアラートークンを使用する場合:

TWITTER_MODE=api
TWITTER_BEARER_TOKEN=your_bearer_token

または、完全なOAuthセットを指定する場合:

TWITTER_MODE=api
TWITTER_API_KEY=your_api_key
TWITTER_API_SECRET=your_api_secret
TWITTER_ACCESS_TOKEN=your_access_token
TWITTER_ACCESS_SECRET=your_access_secret

X Developer Portalで認証情報を作成します。XがAPIアクセスと価格を管理しているため、このモードを選択する前に現在の契約条件を確認してください。

設定

変数

必須

意味

TWITTER_MODE

いいえ

デフォルトはrettiwt、またはapi。それ以外の値は起動に失敗します。

RETTIWTT_API_KEY

Rettiwtモードで必須

認証済みRettiwtセッションキー。

TWITTER_BEARER_TOKEN

APIモードのオプション

公式APIのベアラートークン。

TWITTER_API_KEY

OAuthのオプション

OAuthアプリケーションキー。

TWITTER_API_SECRET

OAuthのオプション

OAuthアプリケーションシークレット。

TWITTER_ACCESS_TOKEN

OAuthのオプション

OAuthアクセストークン。

TWITTER_ACCESS_SECRET

OAuthのオプション

OAuthアクセスシークレット。

TWITTER_REQUEST_TIMEOUT_MS

いいえ

1,000〜120,000 msのリクエスト期限。デフォルト: 30,000。

サーバーは、不完全なOAuth設定を起動時に拒否します。認証情報はプロセス環境変数から読み取り、get_server_infoを通して返すことはありません。

ツール

ツール

入力

結果

get_tweet

tweet_id

単一の投稿。数値ID、またはx.com/twitter.comのステータスURLに対応。

get_tweet_replies

tweet_id、オプションmax_results

返信と利用可能なページメタデータ。

get_user_profile

username

単一の公開プロフィール。先頭の@は許容されます。

search_tweets

query、オプションmax_results

一致する投稿と利用可能なページメタデータ。検索オペレーターはプロバイダーに依存します。

get_server_info

なし

バージョン、アクティブなプロバイダー、ツール、制限、機能。

max_resultsはデフォルト10で、1〜100を受け付けます。呼び出しに成功すると、構造化されたMCPコンテンツに加えて、古いクライアント向けにJSONテキストでも返します。コレクションツールはアイテムをJSONテキストとして返し、カーソルと警告を構造化コンテンツに入れます。

エラー

ツールの失敗は、安定したコードで報告されます:

  • INVALID_INPUT

  • AUTH_REQUIRED

  • AUTH_FAILED

  • NOT_FOUND

  • RATE_LIMITED

  • UPSTREAM_UNAVAILABLE

  • TIMEOUT

  • UNSUPPORTED_OPERATION

  • INTERNAL_ERROR

エラーにはプロバイダー名が含まれ、再試行できるかどうかがクライアントに示されます。エラーに認証情報や上流の生のレスポンスボディは含まれません。

アーキテクチャ

stdio CLI
  -> validated environment configuration
  -> MCP server and tool handlers
  -> TwitterProvider contract
       -> Rettiwt adapter
       -> official X API adapter

ドメインのスキーマはどちらのプロバイダーにも依存しません。各プロバイダーアダプターが、上流のデータをマッピングし、制限と期限を適用し、エラーを解釈します。src/index.tsをインポートしてもサーバー本体は起動しません。

開発

npm ci
npm run check

npm run checkは、フォーマット、## lint、型、カバレッジ、プロダクションビルド、npmパッケージの内容、クリーンなtarballインストールをチェックします。デフォルトのテストスイートはフェイクを使用しており、Xの認証情報は不要です。

役立つコマンドを絞り込みます:

npm test
npm run typecheck
npm run lint
npm run build
npm run check:package
npm run check:install
npx @modelcontextprotocol/inspector node dist/cli.js

ライブRetti

ライブスモークテストは、コンパイルされたstdioサーバーを起動し、get_tweet、get_tweet_replies、get_user_profile、search_tweets を呼び出します。ユーザー名と検索クエリは、選択した投稿から取得します。

RETTIWT_API_KEY=your_key_here \
TWITTER_LIVE_TWEET_ID=1234567890123456789 \
npm run test:live

作者プロフィールがまだ利用可能な公開投稿を選択してください。いずれかの変数が不足している場合、コマンドはライブサーバーを起動; ネットワークリクエストを行う前に停止します。このテストはnpm run checkや通常のCIの一部としては実行されません。

リリース検証

自動化スイートは、設定、プロバイダーアダプター、MCP呼び出ー、コンパイル済みstdioエントリポイント、npm tarballからのインストールを網羅しています。ライブRettiwtスモークテストはオプションであり、通常のCIでは実行されません。バージョン1.0.0はライブ上流での検証なしで作成されました。

メンテナーはリリースガイドに従って、手動のnpm、MCPレジストリ、GitHubリリースをおこなえます。ライブテストでは、リポジトリのシークレットから認証情報を読み取り、信頼できないプルリクエストでは実行しないでください。

トラブルシューティング

Rettiwtキーが見つからない

起動時にRETTIWT_API_KEY is required in rettiwt modeと表示された場合は、MCPクライアント設定にキーを設定します。デスクトップクライアントは、シェルの.envファイルを自動的に継承しません。

Retti

Invalid authentication dataまたはAUTH_FAILEDが表示された場合は、新しいRettiwtキーを生成し、Xのセッションがまだ有効であることを確認してください。エラーキーをissueに投稿しないでください。

レート制限

RATE_LIMITEDの場合は、再試行する前に待機し、リクエストレートを下げてください。プロバイダーが提供している場合はretryAfterSecondsを確認してください。

公式API 401または403

認証情報セット、アプリ権限、エンドポイントアクセス、現在の X API プランを確認してください。

Node エンジンの警告

Node.js 22.21.0 以上ということを確認し、Node 22 で実行してください。現在の Rettiwt 依存関係で Node 23 以降を使用しないでください。

ライセンス

ISC

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with X (formerly Twitter), allowing for posting tweets, searching content, managing accounts, and organizing lists.
    19 npm
    3
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables real-time search of X (Twitter) posts, user timelines, and trends using either xAI's Responses API or the official X API v2.
    4
    -