Python client, CLI, MCP server, and OpenAI-compatible REST API for Perplexity's WebUI.
Three tools with complete input schemas and descriptions, but significant gaps in output documentation and error handling. Tool names lack action verbs (pplx_web, pplx_writing, pplx_custom are noun-heavy). Parameters are well-typed with enums for constrained fields (search_focus, source_focus, time_range, citation_mode), but descriptions are generic and lack actionable guidance. No documented output schemas, pagination support, or error recovery patterns. Parameter descriptions average ~40 chars, below the 72-char baseline for A+ tools. Missing guidance on when to use each tool variant and how outputs chain to downstream operations.
Chat with Perplexity AI using a custom model identifier
Chat with Perplexity AI using web search mode
Chat with Perplexity AI using writing mode (no web search)
Tool names lack action verbs. 'pplx_web', 'pplx_writing', 'pplx_custom' are noun-heavy abbreviations. Should be 'chat_with_perplexity_web', 'chat_with_perplexity_writing', 'chat_with_perplexity_custom' to signal intent.
No output schema documented. LLMs cannot plan downstream operations or extract response fields. Must document: response structure, field types, pagination info, citation format, and any error fields.
Parameter descriptions are generic and lack actionable constraints. E.g., 'Response language (BCP-47 tag, e.g. 'en-US', 'pt-BR')' includes example values that LLMs may reuse literally. Replace with formal constraints and remove examples.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
No error handling guidance. Tool descriptions do not explain failure modes, retryability, or recovery steps. E.g., what happens if model is unavailable? If file attachment fails? If API rate limit is hit?
Tool selection ambiguity. Descriptions do not explain when to use pplx_web vs pplx_writing vs pplx_custom. LLMs cannot distinguish use cases without explicit guidance (e.g., 'Use pplx_web for queries requiring current information; use pplx_writing for creative/analytical tasks without web search').