MCP Server for xAI Grok and Perplexity AI Search providing tools for LLM inference, image generation, X search, and real-time web search with citations
Server provides 4 tools with complete input schemas and descriptions. Naming follows verb_noun pattern (ask_*, search_*, generate_*). However, descriptions are generic and lack LLM-optimized guidance on WHEN to use each tool vs alternatives. Parameter descriptions exist but lack constraints (e.g., temperature ranges stated in text but not as JSON Schema min/max). No output schemas documented. Error handling returns raw API errors without recovery guidance. Missing tool annotations (readOnlyHint, idempotentHint). Composition is sound, each tool has one responsibility, but no pagination support for search_x despite potentially large result sets.
Handle xAI Grok queries
Handle Perplexity AI search queries
Handle xAI Grok image generation
Search X (Twitter) posts via xAI's server-side X Search
No output schemas documented. LLMs cannot plan downstream operations or extract structured data from responses. ask_grok and ask_perplexity return formatted text blocks; generate_image_grok returns image URLs/base64; search_x returns posts. None are formally specified.
Error handling returns raw API errors without recovery guidance. E.g., 'xAI Grok API Error: ...' or 'Perplexity API HTTP Error: 401' gives LLM no actionable next step. Should categorize as retryable/user-fixable/fatal and suggest remediation.
Parameter constraints (temperature 0.0-2.0, max_tokens, n 1-10) stated in descriptions as text, not enforced in JSON Schema. LLMs cannot parse text constraints reliably. Use JSON Schema min/max/enum.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | <=2025-11-25 | v2 |
search_x lacks pagination (limit, offset, next_cursor). If X search returns 100+ posts, response will bloat context window. Tool description does not mention result limits or pagination strategy.
Tool descriptions do not explain WHEN to use each tool vs alternatives. E.g., ask_grok vs ask_perplexity, when should LLM pick one over the other? Grok has 2M context; Perplexity does web search. This guidance is missing, forcing LLM to guess.