MCP server that integrates with Perplexity AI for intelligent coding assistance
The 'search' tool has a complete input schema with proper typing and descriptions, but the server suffers from critical gaps in output documentation, error recovery guidance, and minimal parameter validation. The tool description is adequate (56 chars) but lacks clarity on when to use it vs alternatives, what it returns, and prerequisites. The schema includes proper types (string) and descriptions for all three parameters (query, code, language), meeting baseline requirements. However, there is NO documented output schema, LLMs cannot infer what fields to expect from the response. The implementation shows a Perplexity API integration that returns text content, but this structure is never formally declared. Error handling exists (McpError for unknown tools) but provides no recovery guidance. The code analysis feature is hardcoded and not exposed to the LLM as a discoverable capability. Parameter descriptions lack format constraints (e.g., no guidance on query length, code snippet size limits, or valid language values). The single tool also lacks any mention of idempotency, state modification, or destructive hints, critical for agent planning. Compared to production baselines (avg param annotation 72 chars, 100% of A+ tools have output docs), this server falls short on composability and token efficiency.
Search Perplexity for coding help
No output schema documented. LLMs cannot determine what fields or structure the tool returns, forcing them to guess at downstream field references and chaining.
Error responses lack recovery guidance. When the Perplexity API fails (401 unauthorized, rate limit, service down), users see raw API errors with no actionable next steps for the LLM.
Tool description does not explain when to use 'search' vs what the user could do manually, what prerequisites exist (API key required), or what the response contains. At 56 chars, it lacks context for LLM tool selection.
Parameter descriptions lack format constraints. 'language' accepts 'auto' by default but has no enum of valid languages or guidance on how to handle invalid language strings. 'query' has no length limits or format hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Hardcoded code analysis feature is not exposed as a tool or documented in the 'search' description. The logic (analyzeCode function) is called conditionally but users/LLMs cannot discover or control it.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). The 'search' tool is read-only and idempotent, but this is never declared to the client, limiting agent planning optimizations.