MCP server that wraps Hermes Agent's x_search behind structured tools — replicates ConnectC2X-compatible features via X Premium Plus subscription quota.
X-HERMES-MCP demonstrates solid naming conventions (verb_noun pattern: x_search, fetch_tweet, search_tweets) and comprehensive parameter descriptions. However, output schemas are not explicitly documented in the source code, descriptions reference 'normalized JSON' and 'structured list' but do not specify field names, types, or structure. Error handling guidance is minimal. Tool descriptions are strong (100-250 chars, well above the 10-char minimum), but lack explicit WHEN-to-use guidance that disambiguates overlapping tools (e.g., x_search vs search_tweets). Parameters are well-typed with clear constraints (e.g., max_quotes, aspect_ratio enums), but output schema documentation is the critical gap preventing a higher score.
Get a single X (Twitter) post's full details in normalized JSON. Use when you have a SPECIFIC URL and want named fields (author, metrics, etc.). Backend: P7 V4 — calls xAI's x_search once with a JSON-output query, then Python parses and maps to the schema.
Get a single X post's full details plus its quoted posts up to a specified depth (max 2). Expands the quote tree recursively with parallel fetching.
Generate an image from a text prompt via xAI's grok-imagine-image. Returns three content blocks: compressed inline JPEG, user-facing text with permanent URL, and machine-readable JSON metadata.
Get 5-10 recent posts that quote-tweet a specific source post. Use when you have a SOURCE TWEET and want to see who QUOTED it. Returns quote samples plus total quote count.
Get current X trending topics for a region in ranked order with evidence URLs. Use when you want to know what's TRENDING right now in a region.
Output schemas not documented. Descriptions reference 'normalized JSON', 'structured list', and 'three content blocks' but do not specify field names, types, or structure. LLMs cannot plan downstream tool calls or extract data without knowing what fields to expect.
Tool selection guidance incomplete. The server provides a selection guide in comments, but tool descriptions do not explicitly state WHEN to use each tool vs. alternatives. For example, x_search and search_tweets both find tweets, the distinction (free-form vs. keyword) is in the guide, not in the tool descriptions themselves.
Error handling guidance absent. No tool description explains what to do if a query fails, if a URL is invalid, or if rate limits are hit. Descriptions state what the tool does but not how to recover from failure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | <=2025-11-25 | v2 |
Search recent X posts by keyword and get a structured list of 5-10 results. Use when you want to find tweets MATCHING A KEYWORD or from a specific user, or when you want a LIST of candidate tweets to inspect / pick from.
Free-form X research via xAI's `/responses` API — the flexible primitive. Use this when no specific wrapper fits, or when you want to combine multiple angles in one query. The response is xAI's native shape (natural language `answer` plus inline citation URLs), not a normalized schema.
Result limits not enforced or documented. search_tweets and get_quote_tweets mention '5-10 results' in descriptions, but no parameter enforces this. get_trends defaults to 10 but no maximum is stated. Without explicit limits, LLMs may expect unbounded results.
Pagination not supported. Tools return fixed result counts (5-10, 10) with no offset, cursor, or page parameter. Large result sets cannot be iterated; agents cannot fetch 'next page' of trends or search results.