Twitter Signal Mcp

io.github.ciinkwiaPublished by GitHub account ciinkwiav0.5.0Updated Oct 24, 2026

Live X/Twitter search, profiles, leads, pain points, bot checks, AI digests. Paid per call, x402.

Overview

AI-generated overview

A local MCP server that gives an assistant live X/Twitter search, profile, lead and trend-digest tools, paid per call in USDC via x402.

What you can do
Search posts with advanced X query syntax, paging back through older matches, and get AI-written trend digests of the results. Pull one account's timeline, profile, followers, following, mentions, replies and engagers, or look up a single tweet by ID. Find accounts by topic, get an AI verdict on whether an account is worth engaging, and poll a query for only-new posts. Mine a product's complaints, feature requests and praise, or build enriched lead lists with bios, websites and found emails. Check a watchlist of handles in one call, or get factual activity counts and keyword flags for a US stock ticker.
When to use it
Useful when an assistant needs current X/Twitter chatter without an official X API key or subscription: brand and reputation monitoring, competitor and product research, lead or influencer discovery, and scheduled watchlist polling. Also suited to trading agents that want factual ticker activity counts rather than sentiment calls.
Requirements
Runs locally via npx (Node.js). Needs a Coinbase CDP wallet funded with USDC on Base, configured through CDP_API_KEY_ID, CDP_API_KEY_SECRET and CDP_WALLET_SECRET; CDP_ACCOUNT_NAME and X402_MAX_PRICE are optional. Network access to the paid endpoint is required. The two premium tools need X402_MAX_PRICE raised to at least 0.15 and 0.20.
Before you install
Every call spends real USDC from your CDP wallet, so costs accrue per request; the default X402_MAX_PRICE of 0.05 blocks the premium tools unless raised. Three wallet credentials are stored in the client config. Queries and handles go to a third-party paid endpoint, and lead tools return personal data such as emails found in bios and websites.

Installation

In SourceWeft

  1. Open Twitter Signal Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

twitter-signal-mcp

Live X/Twitter search and AI trend digests inside Claude, Cursor, or any MCP client — no Twitter/X API key, no subscription, no monthly minimum. Your agent pays a fraction of a cent per call in USDC on Base using x402.

x_search           $0.02/call    up to 20 newest matching tweets + engagementx_digest           $0.05/call    the same tweets + an AI-written trend summaryx_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 quotesx_user_timeline    $0.02/call    one account's own recent postsx_profile          $0.02/call    one account's bio, stats, and linksx_tweet            $0.01/call    one tweet by ID, full text + engagementx_replies          $0.02/call    the reply thread under one tweetx_find_accounts    $0.02/call    accounts matching a name/topic, not postsx_account_verdict  $0.02/call    AI read on whether an account is worth engagingx_watch            $0.05/call    only the posts newer than your last checkx_ticker_pulse     $0.02/call    facts about a US stock ticker's X activity — no sentiment/advicex_list             $0.05/call    2-50 handles' combined recent posts, one call, no OR-splittingx_followers        $0.02/call    one page of an account's followersx_following        $0.02/call    one page of who an account followsx_mentions         $0.02/call    one page of posts mentioning a handlex_engagers         $0.05/call    who quoted / who retweeted one postx_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

Why this exists

The official X API starts at a monthly subscription and a developer-account approval. If an agent just needs to know what people are saying right now, that's a lot of setup for a handful of queries. This server charges per request instead — a hundred searches costs about sixty cents, and there is nothing to cancel.

Tools

x_search — $0.02

Full advanced-search syntax. Returns up to 20 newest matches with author handle, follower count, text, timestamp, permalink, likes, retweets, replies, and views. Need more than 20? A full answer ends with next.older — pass its cursor value back (same query) for the next 20 older matches, $0.02 a page. No slicing dates by hand.

x_digest — $0.05

Everything above plus an AI-written digest generated only from the returned tweets:

json
{  "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/..."]}

Use x_digest when you want the takeaway; x_search when you want the raw posts.

x_leads — $0.05

Same advanced-search syntax as x_search, but returns the PEOPLE behind the matching posts instead of the posts themselves — enriched with bio, website, emails found in the bio, follower count, location, a DM-open flag, and every matching post per person:

json
{  "result_count": 20,  "lead_count": 8,  "leads": [{ "username": "someone", "followers": 5000, "emails": [], "matched_posts": [] }]}

Inputs: query (required, same syntax as x_search), max (optional, "20" or "40" — default 20). Use for recruiting, cofounder search, B2B lead generation, influencer discovery, community sourcing.

x_pain_points — $0.05

Pass a product or brand name/handle, get clustered complaints, feature requests, and praise mined from live X posts, with verbatim quotes and URLs:

json
{  "product": "Cursor",  "analysis": { "summary": "...", "pain_points": [{ "theme": "...", "count": 4, "severity": "medium" }] }}

Input: product (required — a name or an X handle). Use for product research, competitor research, churn signals, roadmap input.

x_user_timeline — $0.02

An account's own recent posts (originals, replies, retweets), newest first. Input: username (required). Use: x_user_timeline username="elonmusk" to track a competitor's or founder's own feed.

x_profile — $0.02

One account's bio, website, location, join date, follower/following counts, and verified status. Input: username (required). Use: x_profile username="cursor_ai" to qualify a lead before you reach out.

x_tweet — $0.01

One tweet by numeric ID: full text, author, timestamp, permalink, engagement. Input: id (required). Use: x_tweet id="1859012345678901234" to re-check a specific post you already found.

x_replies — $0.02

The reply thread under one tweet, newest first. Input: id (required, same as x_tweet). Use: x_replies id="1859012345678901234" to see how people reacted to a specific post.

x_find_accounts — $0.02

Search for ACCOUNTS matching a name, keyword, or topic — not posts. Input: query (required, same syntax as x_search). Use: x_find_accounts query="solar installer hawaii" to build a shortlist of accounts to follow up on.

x_account_verdict — $0.02

A short AI-written read on one account: what it's about, how active/engaged it is, and whether it's worth following up with. Input: username (required). Use: x_account_verdict username="someone" to triage a lead fast without reading the profile yourself.

x_watch — $0.05

Same search as x_search, but only returns posts newer than a cursor you supply. Inputs: query (required), since (optional — an ISO timestamp or the cursor.newest_id from your last x_watch call). Use: poll a brand/ticker/hashtag on a schedule without re-paying for posts you've already seen. A check that finds nothing new is not charged — you only pay when there is news.

x_ticker_pulse — $0.02

Facts about one US stock ticker's X/Twitter activity, built for trading agents: post volume vs the prior window, top posts by likes, most active accounts, and keyword topic flags (earnings, guidance, lawsuit, SEC investigation, recall, M&A, layoffs, upgrade/downgrade, short report, dividend, buyback, CEO). Inputs: ticker (required, 1-6 letters, with or without a leading $), window (optional, 24h default or 7d). Use: x_ticker_pulse ticker="TSLA" window="24h". FACTS ONLY — counts and keyword matches, never a sentiment verdict, price target, or buy/sell/hold signal.

x_list — $0.05

A watchlist of 2-50 handles' combined recent posts in ONE call, newest first, deduped, with a per-handle post count and a since-cursor for only-what's-new next time — instead of splitting a watchlist into several from:a OR from:b x_search calls (X caps how many OR terms one search can carry):

json
{  "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 }]}

Inputs: handles (required — comma or space separated, @ optional, 2-50 handles), since (optional — ISO timestamp or a tweet ID from cursor.newest_id), limit (optional, 1-100, default 40). Use: x_list handles="elonmusk,naval,balajis" to check a watchlist in one call.

x_followers — $0.02

One page (up to 20 shown) of an account's followers: handle, name, bio, follower/following counts, verified status, DM-open flag. Inputs: username (required), cursor (optional, from a prior call's next.older). Use: x_followers username="elonmusk" for audience research or lead sourcing.

x_following — $0.02

One page (up to 20 shown) of who an account follows — same shape as x_followers. Inputs: username (required), cursor (optional). Use: x_following username="elonmusk" to map an account's network.

x_mentions — $0.02

One page (up to 20 shown) of posts mentioning a handle: author, follower count, text, timestamp, permalink, engagement. Inputs: username (required), cursor (optional). Use: x_mentions username="cursor_ai" for brand monitoring or reputation tracking.

x_engagers — $0.05

Who quoted and who retweeted one post (up to 20 each): handle, name, bio, follower count, verified status:

json
{ "id": "1878000000000000000", "quote_count": 5, "retweeter_count": 40, "quotes": [], "retweeters": [] }

Input: id (required, same as x_tweet). Use: x_engagers id="1878000000000000000" to find amplifiers or source leads from a viral post's audience.

x_person — $0.15

Send a handle, get an enriched person card: name, role, company, what they work on, topics, seniority guess, and contact routes (emails found on their own site or bio, LinkedIn, GitHub, DM-open flag), plus facts (followers, account age, posts/week, website). An email is only reported if it was actually found, never guessed. Input: username (required). Use: x_person username="naval". Needs X402_MAX_PRICE of at least 0.15 (see Setup).

x_leads_deep — $0.20

The whole search → profile → contact chain in one call. Searches up to 4 pages, groups the posts by author, enriches the top 10-15 people with their own website (emails, LinkedIn, GitHub), and clusters them with a one-line why-they-match each:

json
{  "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": "..." } }]}

Inputs: query (required, same syntax as x_search), max (optional, "1" to "15", default "10"). Nothing found = nothing charged. Needs X402_MAX_PRICE of at least 0.20 (see Setup). Cheaper first look: x_leads.

Query syntax (x_search, x_digest, x_leads, x_find_accounts, x_watch)

Both tools take one query string:

PatternExample
Keywords / phrases"rate cut" inflation
Accountfrom:elonmusk starship
Hashtag / cashtag#bitcoin · $NVDA
Engagement floormin_faves:100 · min_retweets:50
Language / dateslang:en since:2026-08-01 until:2026-08-09
Exclusionsairdrop -giveaway

Quick start (copy-paste)

Four ready-made files in examples/:

Setup

You need a Coinbase CDP wallet funded with a little USDC on Base — that wallet pays per call. Create one at portal.cdp.coinbase.com (API key + wallet secret).

Claude Desktop — add to claude_desktop_config.json:

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 is a hard per-call ceiling in USD. If the endpoint ever quotes more than this, the request is refused before anything is signed — no charge. The default 0.05 covers every tool except the two premium ones: x_person ($0.15) and x_leads_deep ($0.20). Set X402_MAX_PRICE to 0.25 to unlock them (the default stays 0.05 on purpose, so an agent can't spend more than you expect).

Cost & safety

  • You are only ever charged for a successful response. Invalid queries are rejected before payment (HTTP 400, no settlement).
  • Nothing found = nothing charged. An empty x_search / x_digest / x_leads / x_pain_points / x_watch comes back as no_results with charged: false — the payment is never settled.
  • Same call within 10 minutes = free. Repeat the exact call from the same wallet and you get the saved answer (meta.charged: false) at no cost.
  • If the upstream tweet source fails after payment, the API returns an explicit error and logs the call for refund rather than pretending it worked.
  • Gas is covered by the facilitator — you spend USDC only.
  • Identical queries within 60 seconds are served from cache.

How it works

MCP client → twitter-signal-mcp → 402 challenge → sign USDC authorization           → facilitator settles on Base → data returned

Protocol: x402 v2 (CAIP-2 networks, PAYMENT-REQUIRED challenge header). A v1 client cannot talk to this API.

License

MIT

Source: README.md at commit 3bc19d6

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

3
  1. v0.5.0LatestSep 26, 2026
  2. v0.4.0Sep 20, 2026
  3. v0.1.0Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts