twitter-signal-mcp について
twitter-signal-mcpは、AIエージェントやMCPクライアント向けに、X/Twitterの検索、トレンド分析、アカウント発見を提供します。x402を使い、Base上のUSDCで呼び出しごとに支払うため、X APIキーは不要です。
主な機能
- 01新着投稿と反応の検索
- 02トレンド要約と感情分析
- 03投稿からリードを発見・拡充
- 04製品への意見や課題の分類
- 05アカウント、投稿、反応網の確認
- 06検索条件やアカウントの監視
活用シーン
- 01ブランド、話題、株式の投稿を追跡
- 02関連投稿から営業・採用候補を発見
- 03製品への不満、要望、称賛を集約
- 04ウォッチリストの新着投稿を確認
MCP 対応
MCPクライアントにX/Twitterの検索、アカウント、投稿、分析ツールを公開します。呼び出しごとにx402経由でBase上のUSDC決済を行います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y twitter-signal-mcpCDP_API_KEY_IDシークレットCoinbase CDP API key ID for the wallet that pays the per-call USDC feeCDP_API_KEY_SECRETシークレットCoinbase CDP API key secretCDP_WALLET_SECRETシークレットCoinbase CDP wallet secretX402_MAX_PRICEHard per-call USD ceiling; requests quoting more are refused before signing (default 0.05)CDP_ACCOUNT_NAMENamed CDP account to pay from (created automatically; default twitter-signal-mcp)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
twitter-signal-mcp
Claude、Cursor、または任意の MCP クライアントで、X/Twitter をリアルタイム検索し、AI トレンドダイジェストを取得できます。 Twitter/X API キーも、サブスクリプションも、月額最低料金も不要です。 エージェントは x402 を使い、Base 上で USDC により呼び出しごとに 1 セント未満を支払います。
x_search $0.02/call up to 20 newest matching tweets + engagement
x_digest $0.05/call the same tweets + an AI-written trend summary
x_leads $0.05/call the people behind matching posts, enriched (bio, website, emails, followers)
x_pain_points $0.05/call clustered complaints / feature requests / praise for a product, with quotes
x_user_timeline $0.02/call one account's own recent posts
x_profile $0.02/call one account's bio, stats, and links
x_tweet $0.01/call one tweet by ID, full text + engagement
x_replies $0.02/call the reply thread under one tweet
x_find_accounts $0.02/call accounts matching a name/topic, not posts
x_account_verdict $0.02/call AI read on whether an account is worth engaging
x_watch $0.05/call only the posts newer than your last check
x_ticker_pulse $0.02/call facts about a US stock ticker's X activity — no sentiment/advice
x_list $0.05/call 2-50 handles' combined recent posts, one call, no OR-splitting
x_followers $0.02/call one page of an account's followers
x_following $0.02/call one page of who an account follows
x_mentions $0.02/call one page of posts mentioning a handle
x_engagers $0.05/call who quoted / who retweeted one post
x_person $0.15/call one handle's enriched person card (role, company, contact routes)
x_leads_deep $0.20/call the whole search-to-contact leads chain in one call, people enriched + clustered
このサーバーを作った理由
公式の X API は、月額サブスクリプションと開発者アカウントの承認から始まります。エージェントが知りたいのが 今、人々が何を話しているか だけなら、数回の検索のためにこれだけの設定をするのは大変です。このサーバーでは代わりにリクエストごとに課金します。検索 100 回で約 60 セント、解約の手続きも不要です。
ツール
x_search — $0.02
高度な検索構文に完全対応しています。最大 20 件の最新の一致結果を、投稿者のハンドル名、フォロワー数、本文、タイムスタンプ、パーマリンク、いいね数、リポスト数、返信数、表示回数とともに返します。20 件を超える結果が必要ですか? 完全な回答の末尾に next.older が表示されます。その cursor 値を同じ query とともに渡すと、次の 20 件の古い一致結果を取得できます。料金は 1 ページあたり $0.02 です。日付を手作業で分割する必要はありません。
x_digest — $0.05
上記のすべてに加えて、返されたツイートのみをもとに生成した AI 作成のダイジェストを返します。
{
"summary": "3-5 sentences on what's actually being said",
"sentiment": "positive | negative | mixed | neutral",
"sentiment_note": "why it leans that way",
"key_themes": ["..."],
"driving_accounts": ["@handle", "..."],
"notable_post_urls": ["https://x.com/..."]
}
要点が知りたいときは x_digest、投稿そのものを取得したいときは x_search を使ってください。
x_leads — $0.05
x_search と同じ高度な検索構文を使いますが、投稿ではなく、該当する投稿をした人物を返します。プロフィール文、ウェブサイト、プロフィール文に記載されたメールアドレス、フォロワー数、場所、DM の受信可否、各人物に一致するすべての投稿も取得できます。
{
"result_count": 20,
"lead_count": 8,
"leads": [{ "username": "someone", "followers": 5000, "emails": [], "matched_posts": [] }]
}
入力:query(必須、x_search と同じ構文)、max(任意、「20」または「40」、デフォルトは 20)。
採用、共同創業者探し、B2B リード獲得、インフルエンサーの発見、コミュニティの開拓に使えます。
x_pain_points — $0.05
製品名またはブランド名/ハンドル名を渡すと、X の投稿から抽出した不満、機能リクエスト、称賛を分類し、原文の引用と URL とともに返します。
{
"product": "Cursor",
"analysis": { "summary": "...", "pain_points": [{ "theme": "...", "count": 4, "severity": "medium" }] }
}
入力:product(必須、名前または X のハンドル名)。
製品調査、競合調査、解約の兆候の把握、ロードマップへの情報収集に使えます。
x_user_timeline — $0.02
アカウント自身の最近の投稿(オリジナル投稿、返信、リポスト)を新しい順に取得します。入力:username(必須)。使用例:競合相手や創業者自身のフィードを追跡するには、x_user_timeline username="elonmusk" を使います。
x_profile — $0.02
アカウントのプロフィール文、ウェブサイト、場所、参加日、フォロワー数/フォロー数、認証状況を取得します。入力:username(必須)。使用例:連絡する前にリードの適性を確認するには、x_profile username="cursor_ai" を使います。
x_tweet — $0.01
数値 ID で指定したツイート 1 件の全文、投稿者、タイムスタンプ、パーマリンク、エンゲージメントを取得します。入力:id(必須)。使用例:すでに見つけた特定の投稿を再確認するには、x_tweet id="1859012345678901234" を使います。
x_replies — $0.02
指定したツイート 1 件の返信スレッドを新しい順に取得します。入力:id(必須、x_tweet と同じ)。使用例:特定の投稿に対する反応を見るには、x_replies id="1859012345678901234" を使います。
x_find_accounts — $0.02
投稿ではなく、名前、キーワード、トピックに一致するアカウントを検索します。入力:query(必須、x_search と同じ構文)。使用例:フォローアップするアカウントの候補リストを作るには、x_find_accounts query="solar installer hawaii" を使います。
x_account_verdict — $0.02
アカウント 1 件について、何を扱っているか、どれほど活発でエンゲージメントがあるか、フォローアップする価値があるかを簡潔に AI が評価します。入力:username(必須)。使用例:プロフィールを自分で読まずにリードをすばやく選別するには、x_account_verdict username="someone" を使います。
x_watch — $0.05
x_search と同じ検索を行いますが、指定したカーソルより新しい投稿のみを返します。入力:query(必須)、since(任意、ISO タイムスタンプ、または前回の x_watch 呼び出しで得た cursor.newest_id)。すでに確認した投稿に再度料金を支払うことなく、ブランド/株式ティッカー/ハッシュタグを定期的にチェックできます。
新しい投稿が見つからなかった場合、チェック料金はかかりません。 ニュースがあったときだけ支払います。
x_ticker_pulse — $0.02
トレーディングエージェント向けに、米国株のティッカー1銘柄に関するX/Twitterのアクティビティを事実ベースで提供します。直前の期間との投稿数の比較、「いいね」が多い投稿、最も活発なアカウント、キーワードによるトピックフラグ(決算、ガイダンス、訴訟、SECの調査、リコール、M&A、人員削減、格上げ/格下げ、空売りレポート、配当、自社株買い、CEO)が含まれます。入力:ticker(必須、1〜6文字、先頭の$の有無は問いません)、window(任意、デフォルトは24h、または7d)。使用例:x_ticker_pulse ticker="TSLA" window="24h"。
事実のみを提供します。件数とキーワードの一致情報に限り、センチメントの判定、目標株価、買い/売り/ホールドのシグナルは提供しません。
x_list — $0.05
2〜50個のハンドルの最近の投稿を1回の呼び出しでまとめ、最新順に重複を除いて取得します。ハンドルごとの投稿数と、次回は新着分のみを取得するための継続カーソルも含まれます。ウォッチリストを複数のfrom:a OR from:b形式のx_search呼び出しに分割する必要はありません(Xでは、1回の検索で指定できるOR条件の数に上限があります)。
{
"handle_count": 3, "result_count": 40, "truncated": true,
"per_handle_counts": { "elonmusk": 20, "naval": 12, "balajis": 8 },
"cursor": { "newest_id": "1967000000000000001" },
"tweets": [{ "author": "elonmusk", "text": "...", "likes": 1234 }]
}
入力:handles(必須 — カンマまたはスペース区切り、@は任意、2〜50個のハンドル)、since(任意 — ISOタイムスタンプ、またはcursor.newest_idのツイートID)、limit(任意、1〜100、デフォルトは40)。使用例:ウォッチリストを1回の呼び出しで確認するには、x_list handles="elonmusk,naval,balajis"を実行します。
x_followers — $0.02
アカウントのフォロワーを1ページ分(最大20件表示)取得します。ハンドル、名前、自己紹介、フォロワー数/フォロー数、認証済みステータス、DM受信可否が含まれます。入力:username(必須)、cursor(任意、前回の呼び出しのnext.olderから指定)。オーディエンス調査や見込み顧客の発掘には、x_followers username="elonmusk"を使用します。
x_following — $0.02
アカウントがフォローしているユーザーを1ページ分(最大20件表示)取得します。形式はx_followersと同じです。入力:
username(必須)、cursor(任意)。アカウントのネットワークを把握するには、x_following username="elonmusk"を使用します。
x_mentions — $0.02
あるハンドルに言及している投稿を1ページ分(最大20件表示)取得します。投稿者、フォロワー数、本文、タイムスタンプ、パーマリンク、エンゲージメントが含まれます。入力:username(必須)、cursor(任意)。ブランドのモニタリングや評判の追跡には、次を使用します:
x_mentions username="cursor_ai"。
x_engagers — $0.05
1つの投稿を引用したユーザーとリツイートしたユーザーをそれぞれ最大20件取得します。ハンドル、名前、自己紹介、フォロワー数、認証済みステータスが含まれます:
{ "id": "1878000000000000000", "quote_count": 5, "retweeter_count": 40, "quotes": [], "retweeters": [] }
入力:id(必須、x_tweetと同じ)。バズった投稿のオーディエンスから拡散者や見込み顧客を見つけるには、x_engagers id="1878000000000000000"を使用します。
x_person — $0.15
ハンドルを指定すると、情報を充実させた人物カードを取得できます。名前、役職、会社、取り組んでいる内容、トピック、推定される職位の高さ、連絡先(本人のウェブサイトやプロフィールで見つかったメールアドレス、LinkedIn、GitHub、DM受信可否)に加えて、フォロワー数、アカウント開設からの期間、週あたりの投稿数、ウェブサイトなどの情報が含まれます。メールアドレスは実際に見つかった場合のみ報告され、推測されることはありません。入力:username(必須)。使用例:x_person username="naval"。
X402_MAX_PRICEを少なくとも0.15に設定する必要があります(セットアップを参照)。
x_leads_deep — $0.20
検索からプロフィール確認、連絡先取得までの一連の処理を1回の呼び出しで実行します。最大4ページを検索し、投稿を投稿者ごとにまとめ、上位10〜15人について本人のウェブサイトから情報(メールアドレス、LinkedIn、GitHub)を取得します。また、各候補者が適合する理由を1行で示しながら分類します:
{
"pages_fetched": 4, "lead_count": 10, "enriched_count": 7,
"clusters": [{ "theme": "Solidity engineers", "lead_usernames": ["someone"] }],
"leads": [{ "username": "someone", "emails": [], "web": { "emails": [], "links": {}, "title": "..." }, "card": { "why_they_match": "..." } }]
}
入力:query(必須、x_searchと同じ構文)、max(任意、"1"〜"15"、デフォルトは"10")。
見つからなかった場合、料金は発生しません。X402_MAX_PRICEを少なくとも0.20に設定する必要があります(セットアップを参照)。より安価にまず確認するには、x_leadsを使用します。
クエリ構文(x_search、x_digest、x_leads、x_find_accounts、x_watch)
どちらのツールも、1つのquery文字列を受け取ります:
| パターン | 例 |
|---|---|
| キーワード/フレーズ | "rate cut" inflation |
| アカウント | from:elonmusk starship |
| ハッシュタグ/キャッシュタグ | #bitcoin · $NVDA |
| エンゲージメントの下限 | min_faves:100 · min_retweets:50 |
| 言語/日付 | lang:en since:2026-08-01 until:2026-08-09 |
| 除外 | airdrop -giveaway |
クイックスタート(コピー&ペースト)
examples/ にすぐに使えるファイルが4つあります。
examples/claude-desktop.json— Claude Desktop の設定ブロックexamples/claude-code.md—claude mcp addのワンライナーと Cursor のmcp.jsonexamples/x402-fetch.mjs— MCP を使わないプレーンな Node スクリプト。秘密鍵ウォレットから支払いますexamples/credits-curl.sh— ウォレット不要。カードで購入する前払いクレジットと Bearer キーを使用します
セットアップ
少額の USDC を Base 上でチャージした Coinbase CDP ウォレットが必要です。このウォレットから呼び出しごとに支払います。 portal.cdp.coinbase.com で作成してください(API キーとウォレットシークレットが必要です)。
Claude Desktop — claude_desktop_config.json に追加します。
{
"mcpServers": {
"twitter-signal": {
"command": "npx",
"args": ["-y", "twitter-signal-mcp"],
"env": {
"CDP_API_KEY_ID": "your-key-id",
"CDP_API_KEY_SECRET": "your-key-secret",
"CDP_WALLET_SECRET": "your-wallet-secret",
"X402_MAX_PRICE": "0.05"
}
}
}
}
X402_MAX_PRICE は、呼び出しごとの USD 上限値です。エンドポイントがこれを超える金額を提示した場合、リクエストは署名される前に拒否されるため、課金されません。デフォルトの 0.05 では、2つのプレミアムツール(x_person($0.15)と x_leads_deep($0.20))以外のすべてのツールを利用できます。これらも利用するには、X402_MAX_PRICE を 0.25 に設定してください(エージェントが予想以上に支出できないよう、デフォルトは意図的に 0.05 のままにしています)。
コストと安全性
- 成功した応答に対してのみ課金されます。無効なクエリは支払い前に拒否されます(HTTP 400、決済なし)。
- 結果が見つからなければ課金されません。
x_search/x_digest/x_leads/x_pain_points/x_watchの結果が空の場合は、charged: falseを伴うno_resultsが返され、支払いは決済されません。 - 10分以内の同じ呼び出しは無料です。 同じウォレットからまったく同じ呼び出しを繰り返すと、保存された回答(
meta.charged: false)が無料で返されます。 - 支払い後に上流のツイートソースで障害が発生した場合、API は明示的な
errorを返し、成功したかのように装うのではなく、返金対象として呼び出しを記録します。 - ガス代はファシリテーターが負担するため、USDC のみを使用します。
- 60秒以内の同一クエリはキャッシュから返されます。
仕組み
MCP client → twitter-signal-mcp → 402 challenge → sign USDC authorization
→ facilitator settles on Base → data returned
プロトコル:x402 v2(CAIP-2 ネットワーク、PAYMENT-REQUIRED チャレンジヘッダー)。v1 クライアントではこの API と通信できません。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。