MCP Server for Perplexity AI search integration. Exposes Perplexity search capabilities as a tool that Claude can call during conversations, with secure error handling and structured responses.
Single tool server with a clearly named action verb ('perplexity_search'), good parameter schema with enums and descriptions, and functional security practices (URL sanitization, error handling). However, output schema is undocumented (returns plain string), descriptions are adequate but not optimized for LLM comprehension, and parameter descriptions lack format/constraint details. No composition, pagination, or result limiting patterns. Error handling is present but generic. Serviceable for a simple read-only integration, but falls short of production-grade baselines on output documentation and LLM-optimized descriptions.
Search Perplexity AI for current information and receive responses with inline citations.
Output schema completely undocumented. Tool returns a plain string (answer_text) but LLM has no explicit specification of what that string contains, its encoding, or how to parse inline markdown citations. This forces LLMs to infer structure from trial and error.
Parameter descriptions lack actionable constraints. 'search_focus' lists valid values inline ('web', 'academic', or 'sec') but doesn't explain the semantic difference, when should an LLM pick 'academic' vs 'web'? 'recency' similarly lacks guidance on use cases (when to use 'hour' vs 'day').
No result limits or pagination. Even though Perplexity returns a single answer, the citations list could grow large. Tool description does not document expected response size or mention any truncation/pagination strategy.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 45 | - | v1 |
Tool description (84 chars) is too terse to guide LLM selection vs similar tools. It does not answer: What domains does Perplexity excel at (news, research, current events)? When should an LLM call perplexity_search vs a local knowledge base or web search? What is the latency/cost profile?
Error handling is present but generic. Sanitized errors like 'An error occurred: <ErrorType>. Please try again.' do not guide LLM recovery. Missing: is this retryable? Should the LLM ask the user? Is a configuration fix needed?