TwitterAPI.io MCP Server for AI assistant access to Twitter data
All 12 tools have basic verb-noun naming (get_*, search_*) and descriptions present. However, descriptions are minimal (10-50 chars), falling below the 50-200 char LLM-optimized baseline. Input schemas are visible and properly typed, but lack depth: no enums for constrained values (e.g., query_type accepts 'Latest'|'Top' but not declared as enum), no min/max bounds on numeric parameters (count, cursor pagination), and no guidance on parameter relationships or dependencies. Output schemas are not documented, LLMs cannot predict response structure for chaining. Error handling is absent from tool definitions. Parameter descriptions are generic ('The Twitter username') without format hints or constraints. No tool declares idempotency, permissions, or rate-limit guidance.
Get multiple user profiles by their user IDs.
Get a tweet by ID.
Get tweets that quote the specified tweet.
Get replies to a tweet.
Get users who retweeted the specified tweet.
Get the thread context of a tweet (parent tweets and replies).
Get a user profile by username.
Descriptions are too brief (10-50 chars vs. 50-200 char baseline). LLMs cannot determine when to select tools or understand prerequisites. E.g., 'Get a tweet by ID' lacks context on what data is returned or when to use it vs. get_tweet_thread_context.
No output schemas documented. LLMs cannot predict response structure (fields, types, pagination tokens) needed for chaining tools or extracting data. E.g., does get_user return follower_count, is_verified, created_at?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Get followers of a user.
Get accounts a user is following.
Get tweets that mention a specific user.
Get recent tweets from a user.
Search for tweets.
Numeric parameters (count, since_time, until_time) lack min/max bounds. LLMs may pass absurd values (count=999999, since_time=-1). No guidance on pagination limits or defaults.
Constrained parameters not declared as enums. query_type accepts 'Latest'|'Top' but is a free-form string, LLMs may hallucinate 'Trending', 'Popular', etc. Should be enum.
No error handling guidance in tool definitions. If API returns 404 (user not found), 429 (rate limited), or 401 (invalid key), LLMs have no recovery path. Definitions should hint at retryability and next steps.