{
  "markdown": "# twitter-signal-mcp\n\nLive **X/Twitter search** and **AI trend digests** inside Claude, Cursor, or any MCP client —\n**no Twitter/X API key, no subscription, no monthly minimum.** Your agent pays a fraction of a\ncent per call in USDC on Base using [x402](https://x402.org).\n\n```\nx_search   $0.006/call   up to 20 newest matching tweets + engagement\nx_digest   $0.02/call    the same tweets + an AI-written trend summary\n```\n\n## Why this exists\n\nThe official X API starts at a monthly subscription and a developer-account approval. If an agent\njust needs to know *what people are saying right now*, that's a lot of setup for a handful of\nqueries. This server charges per request instead — a hundred searches costs about sixty cents,\nand there is nothing to cancel.\n\n## Tools\n\n### `x_search` — $0.006\nFull advanced-search syntax. Returns up to 20 newest matches with author handle, follower count,\ntext, timestamp, permalink, likes, retweets, replies, and views.\n\n### `x_digest` — $0.02\nEverything above **plus** an AI-written digest generated only from the returned tweets:\n\n```json\n{\n  \"summary\": \"3-5 sentences on what's actually being said\",\n  \"sentiment\": \"positive | negative | mixed | neutral\",\n  \"sentiment_note\": \"why it leans that way\",\n  \"key_themes\": [\"...\"],\n  \"driving_accounts\": [\"@handle\", \"...\"],\n  \"notable_post_urls\": [\"https://x.com/...\"]\n}\n```\n\nUse `x_digest` when you want the takeaway; `x_search` when you want the raw posts.\n\n### Query syntax\nBoth tools take one `query` string:\n\n| Pattern | Example |\n|---|---|\n| Keywords / phrases | `\"rate cut\" inflation` |\n| Account | `from:elonmusk starship` |\n| Hashtag / cashtag | `#bitcoin` · `$NVDA` |\n| Engagement floor | `min_faves:100` · `min_retweets:50` |\n| Language / dates | `lang:en since:2026-08-01 until:2026-08-09` |\n| Exclusions | `airdrop -giveaway` |\n\n## Setup\n\nYou need a Coinbase CDP wallet funded with a little USDC on Base — that wallet pays per call.\nCreate one at [portal.cdp.coinbase.com](https://portal.cdp.coinbase.com) (API key + wallet secret).\n\n**Claude Desktop** — add to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"twitter-signal\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"twitter-signal-mcp\"],\n      \"env\": {\n        \"CDP_API_KEY_ID\": \"your-key-id\",\n        \"CDP_API_KEY_SECRET\": \"your-key-secret\",\n        \"CDP_WALLET_SECRET\": \"your-wallet-secret\",\n        \"X402_MAX_PRICE\": \"0.05\"\n      }\n    }\n  }\n}\n```\n\n`X402_MAX_PRICE` is a hard per-call ceiling in USD. If the endpoint ever quotes more than this,\nthe request is refused **before** anything is signed — no charge.\n\n## Cost & safety\n\n- You are only ever charged for a successful response. Invalid queries are rejected **before**\n  payment (HTTP 400, no settlement).\n- If the upstream tweet source fails after payment, the API returns an explicit `error` and logs\n  the call for refund rather than pretending it worked.\n- Gas is covered by the facilitator — you spend USDC only.\n- Identical queries within 60 seconds are served from cache.\n\n## How it works\n\n```\nMCP client → twitter-signal-mcp → 402 challenge → sign USDC authorization\n           → facilitator settles on Base → data returned\n```\n\nProtocol: **x402 v2** (CAIP-2 networks, `PAYMENT-REQUIRED` challenge header). A v1 client cannot\ntalk to this API.\n\n## License\n\nMIT\n",
  "bytes": 3303,
  "sha": "78604b0e922a6fe1769abeb2321d9cd1cc4e1532f966ed42d9622a75034ae3a4",
  "repo_slug": "ciinkwia/twitter-signal-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_ciinkwia_twitter_signal_mcp_ccd89051/readme"
}