mcpField
X
x-research

x-research

github.com/trailofbits生産性52379 回インストール15 週間前に更新
リポジトリ

x-research について

x-researchは、X/Twitterの最近の議論を調べるエージェントスキルです。コマンドラインで検索を反復し、スレッドやリンク先を追跡して出典付きの概要を作成できます。絞り込み、ウォッチリスト、キャッシュにも対応します。

主な機能

  1. 01クエリや反応指標による検索
  2. 02プロフィール、投稿、スレッドの取得
  3. 03ウォッチリストによるアカウント追跡
  4. 04検索結果のキャッシュ
  5. 05JSONまたはMarkdownでの出力

活用シーン

  1. 01話題に関する最新のコミュニティの見解を確認
  2. 02技術的な議論やリンク先を追跡
  3. 03指定アカウントの投稿を監視
  4. 04市場調査用の出典付き資料を収集

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/trailofbits/skills-curated --skill x-research

インストール後、Claude Code で/x-researchを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

data/
watchlist.example.json
references/
x-api.md
scripts/
pyproject.toml
x_api.py
x_cache.py
x_format.py
x_search.py
x_xai.py

詳細

X リサーチ

X/Twitter 上でエージェント型リサーチを行います。リサーチの質問を対象を絞った検索に分解し、 反復的に絞り込み、スレッドを追い、リンク先のコンテンツを深掘りして、出典付きの 概要をまとめます。

X API の詳細(エンドポイント、演算子、レスポンス形式)については、 {baseDir}/skills/x-research/references/x-api.md を参照してください。

前提条件

  • X API Bearer Token -- X_BEARER_TOKEN(または XAI_API_KEY)環境変数を設定します
  • Python 3.11+ および uv(pip install uv または https://docs.astral.sh/uv/)

CLI ツール

すべてのコマンドで、依存関係を自動管理するために uv run を使用します。

検索
uv run {baseDir}/skills/x-research/scripts/x_search.py search "<query>" [options]

オプション:

  • --sort likes|impressions|retweets|recent -- 並べ替え順(デフォルト: likes)
  • --since 1h|3h|12h|1d|7d -- 期間の絞り込み(デフォルト: 過去 7 日間)
  • --min-likes N -- いいね数の最小値で絞り込み
  • --min-impressions N -- インプレッション数の最小値で絞り込み
  • --pages N -- 取得するページ数。1~5(デフォルト: 1、1 ページあたり 100 件のツイート)
  • --limit N -- 表示する結果の最大数(デフォルト: 15)
  • --quick -- クイックモード: 1 ページ、結果は最大 10 件、自動ノイズフィルター、キャッシュ期間 1 時間
  • --from-user <username> -- クエリ内の from:username の省略形
  • --quality -- エンゲージメントの低いツイートを除外(いいね数 10 件以上、取得後に適用)
  • --no-replies -- 返信を除外
  • --save -- 結果を ~/x-research-output/ に保存
  • --json -- JSON をそのまま出力
  • --markdown -- リサーチ文書向けに Markdown 形式で出力

クエリにすでに含まれていない限り、自動的に -is:retweet を追加します。すべての検索で推定 API コストが表示されます。

例:

uv run {baseDir}/skills/x-research/scripts/x_search.py search "claude code" --sort likes --limit 10
uv run {baseDir}/skills/x-research/scripts/x_search.py search "from:anthropic" --sort recent
uv run {baseDir}/skills/x-research/scripts/x_search.py search "(cursor OR windsurf) AI editor" --pages 2 --save
uv run {baseDir}/skills/x-research/scripts/x_search.py search "AI agents" --quick
uv run {baseDir}/skills/x-research/scripts/x_search.py search "AI agents" --quality --quick
プロフィール
uv run {baseDir}/skills/x-research/scripts/x_search.py profile <username> [--count N] [--replies] [--json]

特定のユーザーの最近のツイートを取得します(デフォルトでは返信を除外します)。

スレッド
uv run {baseDir}/skills/x-research/scripts/x_search.py thread <tweet_id> [--pages N]

ルートツイート ID を指定して、会話スレッド全体を取得します。

単一のツイート
uv run {baseDir}/skills/x-research/scripts/x_search.py tweet <tweet_id> [--json]
ウォッチリスト
uv run {baseDir}/skills/x-research/scripts/x_search.py watchlist                        # Show all
uv run {baseDir}/skills/x-research/scripts/x_search.py watchlist add <user> [note]      # Add account
uv run {baseDir}/skills/x-research/scripts/x_search.py watchlist remove <user>           # Remove
uv run {baseDir}/skills/x-research/scripts/x_search.py watchlist check                   # Check recent

ウォッチリストは {baseDir}/skills/x-research/data/watchlist.json に保存されます。

キャッシュ
uv run {baseDir}/skills/x-research/scripts/x_search.py cache clear

有効期間は 15 分です。同一のクエリを再取得するのを避けます。

リサーチのループ(エージェント型)

(クイック検索だけではなく)深掘りリサーチを行う場合は、次のループに従います。

1. 質問をクエリに分解する

X の検索演算子を使って、リサーチの質問を 3~5 個のキーワードクエリに変換します。

  • 中核となるクエリ: トピックを直接表すキーワード
  • 専門家の見解: 特定した専門家を指定する from:
  • 課題: (broken OR bug OR issue OR migration) などのキーワード
  • 肯定的な兆候: (shipped OR love OR fast OR benchmark) などのキーワード
  • リンク: url:github.com または特定のドメインを指定する url:
  • ノイズの削減: -is:retweet(自動で追加)、必要に応じて -is:reply を追加
  • スパムフィルター: 暗号資産関連のトピックでは -airdrop -giveaway -whitelist を追加
2. 検索して抽出する

CLI で各クエリを実行します。実行後、次の点を確認します。

  • 有益な情報か、ノイズか。演算子を調整する必要はあるか。
  • from: を指定して検索する価値のある重要人物はいるか。
  • thread コマンドで追う価値のあるスレッドはあるか。
  • WebFetch で深掘りする価値のあるリンク先のリソースはあるか。
3. スレッドを追う

エンゲージメントの高いツイートやスレッドの起点となるツイートがある場合:

uv run {baseDir}/skills/x-research/scripts/x_search.py thread <tweet_id>
4. リンク先のコンテンツを深掘りする

ツイートが GitHub リポジトリ、ブログ記事、ドキュメントにリンクしている場合は、WebFetch で取得します。次のリンクを優先します。

  • 複数のツイートで参照されている
  • エンゲージメントの高いツイートに含まれている
  • 質問に直接関連する技術リソースを指している
5. 情報をまとめる

クエリごとではなく、テーマごとに情報をまとめます。

### [Theme/Finding Title]

[1-2 sentence summary]

- @username: "[key quote]" (NL, NI) [Tweet](url)
- @username2: "[another perspective]" (NL, NI) [Tweet](url)

Resources shared:
- [Resource title](url) -- [what it is]
6. 保存する

--save フラグを使用するか、手動で保存します。

絞り込みのヒューリスティクス

  • ノイズが多すぎる場合: -is:reply を追加し、--sort likes を使用して、キーワードを絞り込みます
  • 結果が少なすぎる場合: OR を使って検索範囲を広げ、制限の厳しい演算子を削除します
  • スパムが結果にあふれている場合: -$ -airdrop -giveaway -whitelist を追加します
  • 専門家の見解だけを得たい場合: from: または --min-likes 50 を使用します
  • 煽りよりも実質的な内容を重視する場合: has:links を指定して検索します

使用する場面

  • あるトピックについて、開発者/専門家/コミュニティがどう考えているかを調査する
  • 最新ニュースや製品の発売について、リアルタイムの見解を得る
  • ライブラリ、フレームワーク、API に関する技術的な議論を探す
  • 主要なアカウントの投稿をモニタリングする
  • 競合分析や市場調査のために、出典のある証拠を集める
  • 詳細な調査に入る前に、トピックの最新動向を手早く確認する

使用しない場面

  • ツイートの投稿、返信、X アカウントの管理(読み取り専用ツールです)
  • 7 日を超える過去の調査(最近の検索エンドポイントのみを使用します)
  • X 以外のプラットフォームの検索(代わりにウェブ検索ツールを使用してください)
  • ウェブ検索のほうが適切な結果を得られるタスク(X はリアルタイムの 意見、議論、最新ニュースに最適であり、参考資料の検索には向いていません)

コストに関する注意

X API は従量課金制です(投稿の読み取りは $0.005、ユーザーの検索は $0.01)。クイックモードでは、 検索あたりのコストを約 $0.50 未満に抑えられます。検索のたびに必ずコスト表示を確認してください。 キャッシュにより、重複課金を防ぎます。料金の詳細については references/x-api.md を参照してください。

ファイル構成

skills/x-research/
  SKILL.md           (this file)
  scripts/
    x_search.py      (CLI entry point, run with uv)
    x_api.py         (X API wrapper)
    x_cache.py       (file-based cache, 15min TTL)
    x_format.py      (terminal + markdown formatters)
  data/
    watchlist.json   (accounts to monitor)
    cache/           (auto-managed)
  references/
    x-api.md         (X API endpoint reference)

コメント