An MCP server that provides research capabilities through Perplexity.ai's API, allowing clients to search the internet and get up-to-date information on topics
ResearchMCP provides a single tool 'research' with minimal definition quality. The tool has a basic description (66 chars) that lacks LLM-optimization guidance on WHEN to use it versus alternatives. The input schema is present but extremely sparse: only a 'query' parameter with minimal description. No output schema is documented anywhere in the source code. The tool lacks parameter validation guidance, constraints, error recovery patterns, and clear categorization of what the tool returns. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present. Error handling is absent from the tool definition, no guidance for the LLM on how to recover from API failures, timeout, rate limits, or invalid queries.
Search the internet and provide up-to-date information about a topic using Perplexity.ai's Sonar Pro model
No output schema documented. The tool returns Perplexity API responses but provides no schema definition to the LLM. Agents cannot plan downstream operations or extract structured fields. This forces the LLM to guess at response structure.
Tool description is 66 characters and lacks LLM-optimization guidance. It states WHAT (search the internet) but omits WHEN to use it (vs. other search tools?), prerequisite conditions (API key setup), and expected output format. Baseline for A+ tools is 194 chars with full context.
No error handling guidance in tool definition. The tool can fail due to missing API key, network timeout (90s), rate limits (Perplexity), or invalid queries, but the tool schema provides no recovery hints. The LLM has no guidance on retryability, whether to ask the user, or alternative actions.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 34 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 29 | - | v1 |
Parameter 'query' lacks constraints and detailed description. No guidance on minimum/maximum length, format requirements, or examples of valid queries. LLMs may pass empty strings, extremely long inputs, or malformed queries that fail at the Perplexity API.
No tool annotations present. The tool lacks readOnlyHint (true, it only searches, does not modify), destructiveHint (false), or idempotentHint (true). Agents cannot determine safety properties from the definition and may misplan retry logic.
Tool name 'research' is generic and does not follow verb_noun convention. Better names: 'search_internet', 'query_perplexity', or 'get_research_results'. Generic names make it harder for LLMs to distinguish from other search tools.