MCP Server that gives Claude Code superpowers with Perplexity Comet browser - agentic web browsing, deep research, and real-time monitoring
Comet MCP has six tools with complete JSON Schema definitions and descriptions present in src/index.ts. However, the server exhibits significant quality gaps across the definition rubric. Tool names lack clear action verbs (e.g., 'comet_ask' is vague, 'send_prompt' or 'query_comet' would be clearer). Parameter descriptions are sparse or missing entirely: comet_ask has good descriptions for its three parameters, but comet_connect, comet_poll, comet_stop, and comet_screenshot have empty input schemas with no properties to describe. Output schemas are entirely undocumented, the LLM cannot infer what these tools return, forcing it to guess at downstream usage. Error handling is not visible in the provided source, and no recovery guidance is documented. The tool definitions are statically declared and directly visible, so they are not inferred, avoiding the 50-cap penalty. However, sparse parameter coverage and missing output documentation significantly depress the score.
Send a prompt to Comet/Perplexity and wait for the complete response (blocking). Ideal for tasks requiring real browser interaction (login walls, dynamic content, filling forms) or deep research with agentic browsing.
Connect to Comet browser (auto-starts if needed)
Switch Perplexity search mode. Modes: 'search' (basic), 'research' (deep research), 'labs' (analytics/visualization), 'learn' (educational). Call without mode to see current mode.
Check agent status and progress. Call repeatedly to monitor agentic tasks.
Capture a screenshot of current page
Stop the current agent task if it's going off track
Output schemas completely undocumented for all six tools. LLM cannot infer what each tool returns, forcing runtime guessing and breaking composition patterns (tool A output → tool B input).
Four tools have empty input schemas (no properties defined): comet_connect, comet_poll, comet_stop, comet_screenshot. While they legitimately take no parameters, this creates ambiguity, are they truly parameter-less or is the definition incomplete?
Tool names lack clear action verbs. 'comet_ask', 'comet_poll', 'comet_mode' are vague. Per pattern:tool, LLMs rely on verb_noun naming (send_, get_, set_, start_) to infer intent before reading descriptions. This naming ambiguity increases tool selection errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Parameter 'timeout' in comet_ask lacks bounds. No minimum or maximum specified. LLMs may pass absurd values (0 ms, 999999 ms) without guidance. Rubric: 'Specify minimum and maximum for numeric parameters.'
No error handling documentation visible. How does comet_ask fail if Perplexity is unreachable? What should the LLM do if comet_stop is called with no active task? No recovery guidance provided.
Tool composition documentation missing. comet_mode changes search modes, does comet_ask immediately use the new mode, or must the agent reconnect? This dependency is undocumented, risking incorrect agent sequencing.