MCP server for X/Twitter API v2 — read-only access to search, timelines, posts, users, trends, and more
Strong foundation with 16 well-named, read-only tools covering X API v2 comprehensively. All tools have descriptions (avg ~80 chars, within baseline 34-392 range) and explicit input schemas with types. Naming follows verb_noun pattern consistently (search_x, get_post_counts, get_user, etc.). However, several parameter descriptions lack actionable constraints (e.g., query params don't specify operator syntax limits, max_results ranges stated but not enforced in schema). Output schemas are partially documented in code but not formally declared in tool definitions. Error handling is minimal, no recovery guidance or categorization. Security is solid (read-only, no secrets exposed), but composition could be tighter (e.g., get_thread + get_replies overlap; no batch variants for common loops).
Get recent tweets from a public X list.
Get recent tweets mentioning a user.
Get a single news story by ID.
Get tweet volume counts for a query over time (last 7 days). Useful for gauging buzz, detecting spikes, and comparing topic volumes.
Get quote tweets of a specific tweet.
Get replies to a specific tweet.
Output schemas not formally declared in tool definitions. Code shows format_tweet(), format_response(), format_news() but these are not exposed as documented return types in the MCP tool registration. LLMs cannot plan downstream calls without knowing response structure.
Parameter descriptions lack actionable constraints. 'query' params reference X API operators (from:, to:, @, etc.) but do not specify length limits, character restrictions, or operator precedence rules. LLMs cannot validate input without explicit constraints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Get users who retweeted a tweet.
Get a tweet and its full conversation thread. Fetches the root tweet first, then all replies in the conversation.
Get trending topics for a location. Common WOEID values: 1 = Worldwide, 23424977 = United States, 23424975 = United Kingdom, 44418 = London, 2459115 = New York, 2487956 = San Francisco, 2487889 = Los Angeles, 2514815 = Washington DC, 615702 = Paris, 1118370 = Tokyo
Get a single tweet by ID or URL.
Look up an X user profile by username. Returns profile info including bio, follower counts, verification status, and more.
Get recent tweets from a user's timeline.
Search for X communities by keyword.
Search news articles on X.
Search for X users by name or keyword.
Search recent tweets (last 7 days) using X API v2.
No error handling or recovery guidance. Tools return raw API errors without categorization (retryable vs user-fixable vs fatal). No guidance on what to do if a user is not found, a tweet is deleted, or rate limits are hit.
Overlapping tool responsibilities. get_thread and get_replies both fetch conversation data; get_user_tweets and search_x with 'from:' operator both retrieve user posts. No clear guidance on when to use each. Increases LLM reasoning overhead.
Pagination tokens returned but no batch variants. Agents calling get_user_tweets in a loop for 10 users generate 10+ sequential calls. A batch_get_user_tweets(usernames: []) would reduce latency and token waste.