Skip to main content
Glama
jacob-bd

Perplexity Web MCP

by jacob-bd

Perplexity Web MCP & CLI

PyPI version PyPI downloads Total downloads Python License

MCP server, CLI, and API-compatible interface for Perplexity AI's web interface.

Use your Perplexity Pro/Max subscription to access premium models (Sonar 2, GPT-6 Sol, GPT-5.6 Terra, Gemini 3.8 Flash, Claude Sonnet 5, Claude Opus 5.5, Kimi K3, GLM 5.3, Grok 4.7, and Nemotron 3 Ultra) from the terminal, through MCP tools, or as an API endpoint.

Features

  • CLI: Query Perplexity models directly from the terminal (pwm ask, pwm chat, pwm council, pwm research, pwm config)

  • MCP Server: MCP tools for AI agents with citations, rate limit checking, and multi-turn context

  • API Server: Drop-in Anthropic Messages API and OpenAI Chat Completions API

  • 10 Models: Sonar 2, GPT-5.6 Terra, GPT-5.6 Sol, Gemini 3.1 Pro, Claude Sonnet 5, Claude Opus 4.8, GLM 5.2, Kimi K2.6, Grok 4.5, and Nemotron 3 Ultra

  • Thinking Mode: Extended thinking support for all compatible models

  • Deep Research: Full support for Perplexity's Deep Research mode

  • Multi-Turn Conversations: State-preserved threaded conversations for both MCP and CLI REPL

  • Model Council: Query multiple models in parallel and get a synthesized consensus

  • Setup & Skill Management: Auto-configure MCP for Claude Code, Cursor, Windsurf, Gemini CLI, Codex, Cline, Antigravity; install Agent Skills across 9 platforms

  • Doctor: Diagnose installation, auth, config, rate limits, and skill status

Related MCP server: perplexity-mcp-server

Vibe Coding Alert

Full transparency: this project was built by a non-developer using AI coding assistants. If you're an experienced Python developer, you might look at this codebase and wince. That's okay.

The goal here was to learn — both about building CLI tools in Python and about how modern web applications work under the hood. The code works, but it's very much a learning project released solely for the purpose of research and education, not a polished product.

WARNING

Unofficial & Unsupported — This project is not affiliated with, endorsed by, or supported by Perplexity AI. It interacts with Perplexity's web interface through unofficial, undocumented methods that may break at any time without notice if Perplexity changes their internal APIs or RPCs. Use at your own risk. The author(s) accept no responsibility for any consequences to your Perplexity account, including but not limited to rate limiting, suspension, or termination. This project is released strictly for educational and research purposes only.

If you know better, teach us. PRs, issues, and architectural advice are all welcome. This is open source specifically because human expertise is irreplaceable.


Installation

Using uv:

uv tool install perplexity-web-mcp-cli

Using pipx:

pipx install perplexity-web-mcp-cli

Using pip:

pip install perplexity-web-mcp-cli

Note: Requires Python 3.10-3.13.

From source (for development)

git clone https://github.com/jacob-bd/perplexity-web-mcp.git
cd perplexity-web-mcp
uv venv && source .venv/bin/activate
uv pip install -e .

Upgrading

pip install --upgrade perplexity-web-mcp-cli

After upgrading, restart your MCP client (Claude Code, Cursor, etc.) to reload the server.


Quick Start

# 1. Authenticate
pwm login

# 2. Ask a question
pwm ask "What is quantum computing?"

# 3. Chat interactively (keeps one thread across turns)
pwm chat

# 4. Deep research
pwm research "agentic AI trends 2026"

# 5. Check your remaining quotas
pwm usage

# 6. Set up MCP for your AI tools
pwm setup add all           # Interactive setup for all detected tools
pwm setup add cursor        # Or add individually

# 7. Install the Agent Skill
pwm skill install claude-code

# 8. Diagnose any issues
pwm doctor

CLI Reference

Querying

Ask Perplexity a question. By default, Perplexity auto-selects the best model.

pwm ask "What is quantum computing?"

Choose a specific model with -m (see Models for the full list):

pwm ask "Compare React and Vue" -m gpt56_terra
pwm ask "Explain the attention mechanism" -m claude_sonnet

Enable extended thinking with -t for deeper reasoning (available on models with Toggle thinking):

pwm ask "Prove that the square root of 2 is irrational" -m claude_sonnet --thinking

Focus on specific sources with -s to control where Perplexity searches:

# Search only academic papers and scholarly articles
pwm ask "transformer architecture improvements 2025" -s academic

# Search only social media (Reddit, Twitter, etc.)
pwm ask "best mechanical keyboard 2026" -s social

# Search SEC EDGAR financial filings
pwm ask "Apple revenue Q4 2025" -s finance

# Search all source types at once
pwm ask "latest AI news" -s all

# Search an account connector source, when your Perplexity account exposes one
pwm connectors list
pwm ask "recent funding for Stripe" -s pitchbook_mcp_cashmere

Output options:

# JSON output (for piping to other tools)
pwm ask "What is Rust?" --json

# Suppress citation URLs (answer text only)
pwm ask "What is Rust?" --no-citations

Combine flags for full control:

pwm ask "recent advances in protein folding" -m gemini_pro -s academic --json

Long prompts and attachments:

# Read the prompt from stdin
cat question.txt | pwm ask -

# Or from a UTF-8 file
pwm ask --prompt-file question.txt

# Attach PDFs or images (repeatable)
pwm ask "Summarize the key risks" --file report.pdf

Interactive Chat

pwm chat keeps one Perplexity thread across turns, so follow-up questions stay in context. It defaults to the free Sonar model; use -m auto for quota-aware routing, or pin a model with -m.

pwm chat                                  # defaults to Sonar, web sources
pwm chat -m auto                          # quota-aware model routing
pwm chat -m claude_sonnet --thinking      # start with a specific model

In-session commands: /new starts a fresh thread, /model [NAME] shows or switches the model, /source [NAME] switches the source focus (stays set), /thinking [on|off] toggles extended thinking (stays set), /attach PATH attaches a file to your next message only, and /exit (or /quit, or Ctrl-D) quits.

Saved Defaults

Save a preferred model, thinking mode, and source once; pwm ask, pwm chat, and the MCP pplx_query tool apply them whenever the matching option is omitted. Explicit flags always win.

pwm config set --model grok47 --thinking --source web
pwm config show
pwm config clear            # or clear one key: pwm config clear model

Deep Research

Run Perplexity's Deep Research mode for in-depth reports with extensive sources. Uses a separate monthly quota.

pwm research "agentic AI trends 2026"
pwm research "climate policy impact on renewable energy" -s academic
pwm research "NVIDIA competitive landscape" -s finance --json

Model Council

Query multiple models in parallel and get a synthesized consensus. Each model costs 1 Pro Search. Default synthesis uses Sonar 2 (also 1 Pro Search).

# Default: GPT-5.6 Terra, Claude Sonnet, Gemini Pro + Sonar 2 synthesis (4 Pro Searches)
pwm council "What are best practices for microservices?"
# Custom model selection
pwm council "Compare Rust and Go" -m gpt56_terra,claude_sonnet
# Enable extended thinking for all council models
pwm council "Prove the Pythagorean theorem" --thinking
# Skip synthesis, output as JSON
pwm council "React vs Vue" --no-synthesis --json

Authentication

pwm login                                    # Interactive login (email + OTP)
pwm login --check                            # Check if authenticated
pwm login --email user@example.com           # Send verification code (non-interactive)
pwm login --email user@example.com --code 123456  # Complete auth with code
pwm login --email user@example.com --code 123456 --totp-code 654321  # Account with TOTP enabled

Set PWM_SAVE_TO_LIBRARY=1 to save shared CLI and MCP queries to the Perplexity thread library. Queries are incognito by default.

Usage & Limits

pwm usage                  # Check remaining rate limits
pwm usage --refresh        # Force-refresh from Perplexity servers

Models

pwm models                 # List the live model catalog (free, no query quota)
pwm models --refresh       # Force a fresh fetch from Perplexity
pwm models --json          # Machine-readable output

The catalog mirrors the website model picker with identifiers, tier labels, and "New" flags, and is cached for 24 hours. Any identifier it lists works with pwm ask -m, pwm council -m, and pplx_query(model=...).

Hack

Seamlessly launch external AI tools connected to the Perplexity API server. This automatically starts the local pwm api server in the background, sets the required environment variables, and launches the tool.

pwm hack claude            # Launch Claude Code
pwm hack claude -m gpt56_terra   # Launch Claude Code with a specific model

MCP Setup

pwm setup list             # Show supported tools and MCP configuration status
pwm setup add all          # Interactive: detect and configure all tools
pwm setup add claude-code  # Add MCP server to Claude Code
pwm setup add cursor       # Add MCP server to Cursor
pwm setup add codex        # Add MCP server to Codex CLI
pwm setup add gemini       # Add MCP server to Gemini CLI
pwm setup add windsurf     # Add MCP server to Windsurf
pwm setup add cline        # Add MCP server to Cline CLI
pwm setup add antigravity  # Add MCP server to Antigravity
pwm setup remove all       # Remove from all configured tools
pwm setup remove cursor    # Remove MCP server from a tool

For clients that support HTTP/SSE, or when multiple sessions should share one MCP process, run the local daemon:

pwm serve-mcp --transport streamable-http  # Start HTTP MCP on 127.0.0.1:8000/mcp
pwm serve-mcp --status                # Check daemon status
pwm serve-mcp --stop                  # Stop the daemon
pwm setup add codex --http            # Configure Codex for Streamable HTTP
pwm serve-mcp --transport sse         # Start the legacy SSE transport

The HTTP transports bind to loopback by default. Keep the daemon on a loopback address unless you put an authenticated reverse proxy in front of it.

Skill Management

pwm skill list                            # Show installation status per platform
pwm skill install claude-code             # Install skill for Claude Code
pwm skill install cursor --level project  # Install at project level
pwm skill uninstall gemini-cli            # Remove skill
pwm skill update                          # Update all outdated skills
pwm skill show                            # Display skill content

Doctor

pwm doctor                 # Diagnose installation, auth, config, limits
pwm doctor -v              # Verbose (includes security + per-platform skill status)

AI Documentation

pwm --ai                   # Print comprehensive AI-optimized reference

Models

CLI Name

Provider

Thinking

Notes

auto

Perplexity

No

Auto-selects best model

sonar

Perplexity

No

Sonar 2 (latest in-house; API id experimental)

deep_research

Perplexity

No

Monthly quota, in-depth reports

gpt56_terra

OpenAI

Toggle

GPT-5.6 Terra

gpt56_sol

OpenAI

Toggle

GPT-5.6 Sol (Max tier required)

gpt6_sol

OpenAI

Toggle

GPT-6 Sol

grok45

xAI

Toggle

Grok 4.5

grok47

xAI

Toggle

Grok 4.7

claude_sonnet

Anthropic

Toggle

Claude Sonnet 5

claude_opus

Anthropic

Toggle

Claude Opus 4.8 (Max tier required)

claude_opus55

Anthropic

Toggle

Claude Opus 5.5 (Max tier required)

gemini_pro

Google

Always

Gemini 3.1 Pro

gemini38

Google

Toggle

Gemini 3.8 Flash

nemotron

NVIDIA

Always

Nemotron 3 Ultra 550B

glm52

Z.ai

Always

GLM 5.2

glm53

Z.ai

Always

GLM 5.3

kimi_k26

Moonshot

Toggle

Kimi K2.6

kimi_k3

Moonshot

Always

Kimi K3

The catalog is server-driven: run pwm models to see the live model list (free, no query quota), and any identifier it shows can be passed to pwm ask -m <identifier>.

Source Focus

Control where Perplexity searches using -s (CLI) or source_focus (MCP):

Option

Description

Example Use Case

web

General web search (default)

News, general questions

academic

Academic papers, journals

Research, citations, scientific topics

social

Reddit, Twitter, forums

Opinions, recommendations, community sentiment

finance

SEC EDGAR filings

Company financials, regulatory filings

all

Web + Academic + Social combined

Broad coverage across all sources

Account Connector Sources

Accounts with Perplexity connectors may expose additional source IDs such as pitchbook_mcp_cashmere or cbinsights_mcp_cashmere. List IDs before using them:

pwm connectors list
pwm ask "recent funding for Stripe" -s pitchbook_mcp_cashmere

MCP clients should call pplx_connectors() first, then pass the returned ID as source_focus.

Connector access inherits the authenticated Perplexity account's permissions and may expose private organization or cloud data to whichever local agent can call this tool. Unknown and unreported connector values fail instead of falling back to web search. Administrators can set PWM_CONNECTORS_ENABLED=0 to disable connector queries or set PWM_CONNECTOR_ALLOWLIST to a comma-separated list of exact connector IDs. When these variables are unset, reported connectors remain available for backward compatibility. See Account Connector Sources for the full trust-boundary guidance.


MCP Server

Setup

The easiest way to configure MCP:

pwm setup add claude-code

Or configure manually for any MCP client:

Claude Code CLI:

claude mcp add perplexity pwm-mcp

Claude Desktop — Download the .mcpb extension from the latest release and open it with Claude Desktop. Or configure manually:

{
  "mcpServers": {
    "perplexity": {
      "command": "pwm-mcp"
    }
  }
}

Cursor (~/.cursor/mcp.json):

{
  "mcpServers": {
    "perplexity": {
      "command": "pwm-mcp"
    }
  }
}

Available MCP Tools

Query tools:

Tool

Description

pplx_query

Flexible: model selection + thinking toggle

pplx_ask

Quick Q&A (auto-selects best model)

pplx_deep_research

In-depth reports with sources

pplx_sonar

Perplexity Sonar 2 (1 Pro Search)

pplx_gpt56_terra / pplx_gpt56_terra_thinking

GPT-5.6 Terra

pplx_gpt56_sol / pplx_gpt56_sol_thinking

GPT-5.6 Sol (Max tier)

pplx_grok45 / pplx_grok45_thinking

Grok 4.5

pplx_claude_sonnet / pplx_claude_sonnet_think

Claude Sonnet 5

pplx_claude_opus / pplx_claude_opus_think

Claude Opus 4.8 (Max tier)

pplx_gemini_pro_think

Gemini 3.1 Pro (thinking always on)

pplx_nemotron_thinking

Nemotron 3 Ultra (thinking always on)

pplx_glm52

GLM 5.2 (thinking always on)

pplx_kimi_k26 / pplx_kimi_k26_thinking

Kimi K2.6

Smart routing (1):

Tool

Description

pplx_smart_query

Quota-aware routing — auto-selects best model based on limits

Council (1):

Tool

Description

pplx_council

Query multiple models in parallel with optional synthesis

Usage, connectors & auth tools (5):

Tool

Description

pplx_usage

Check remaining quotas

pplx_connectors

List connector source IDs

pplx_auth_status

Check authentication status

pplx_auth_request_code

Send verification code to email

pplx_auth_complete

Complete email and TOTP authentication

All query tools support source_focus: none, web, academic, social, finance, all, or a connector source ID returned by pplx_connectors().


API Server

Use Perplexity models through Anthropic or OpenAI compatible API endpoints.

Start the server

pwm api

The server binds to 127.0.0.1 by default. A non-loopback --host or HOST value is rejected unless PWM_API_KEY (or the legacy ANTHROPIC_API_KEY) contains a non-empty secret. Remote use should also be protected by a trusted TLS reverse proxy and firewall rules because the built-in server serves plain HTTP. Clients may send the configured secret as x-api-key or Authorization: Bearer <secret>.

When an API key is configured, the same authentication applies to every API endpoint, including the /v1/responses WebSocket route. The server rejects unauthenticated WebSocket connections before accepting the connection.

Anthropic API (Claude Code)

export ANTHROPIC_BASE_URL=http://localhost:8080
export ANTHROPIC_API_KEY=perplexity
claude --model gpt-5.6-terra

Alternatively, launch Claude Code seamlessly using the hack command, which automatically starts the API server and configures the environment for you:

pwm hack claude

OpenAI API

export OPENAI_BASE_URL=http://localhost:8080/v1
export OPENAI_API_KEY=anything

Codex CLI Integration

Codex CLI performs strict client-side model validation. By default, it will reject any model name that isn't a recognized OpenAI ChatGPT account model (e.g., rejecting sonar).

To bypass this client-side block and use arbitrary Perplexity models natively, start Codex with the --local-provider lmstudio flag (or --oss). This instructs Codex to treat the backend as a local proxy:

export OPENAI_API_BASE=http://localhost:8080/v1
export OPENAI_API_KEY=dummy

codex -m sonar --local-provider lmstudio

Our server's MODEL_MAP will seamlessly intercept sonar (or any other mapped names like gemini-pro, nemotron, glm-5.2, claude-sonnet-5) and correctly route it to Perplexity's API. You can also create an alias in your shell to make this easier: alias codex-pplx="codex --local-provider lmstudio".

API Model Names

API Name

Perplexity Model

Thinking

perplexity-auto

Best (auto-select)

No

gpt-5.6-terra

GPT-5.6 Terra

Toggle

gpt-5.6-sol

GPT-5.6 Sol

Toggle

grok-4.5

Grok 4.5

Toggle

claude-sonnet-5

Claude Sonnet 5

Toggle

claude-opus-4-8

Claude Opus 4.8

Toggle

gemini-3.1-pro

Gemini 3.1 Pro

Always

glm-5.2 / glm52

GLM 5.2

Always

nemotron-3-ultra / nemotron

Nemotron 3 Ultra

Always

Legacy aliases (claude-3-5-sonnet, claude-3-opus) are supported for compatibility.


Python API

from perplexity_web_mcp import Perplexity, ConversationConfig, Models

client = Perplexity(session_token="your_token")
conversation = client.create_conversation(
    ConversationConfig(model=Models.CLAUDE_45_SONNET)
)

conversation.ask("What is quantum computing?")
print(conversation.answer)

for result in conversation.search_results:
    print(f"Source: {result.url}")

# Follow-up (context preserved)
conversation.ask("Explain it simpler")
print(conversation.answer)

Subscription Tiers & Rate Limits

Tier

Cost

Pro Search

Deep Research

Labs

Free

$0

3/day

1/month

No

Pro

$20/mo

Weekly pool

Monthly pool

Monthly pool

Max

$200/mo

Weekly pool

Monthly pool

Monthly pool

The MCP server checks quotas before each query. Use pwm usage or pplx_usage to check your limits.


Troubleshooting

Authentication Errors (403)

Session tokens are long-lived, but Perplexity can invalidate them at any time. Re-authenticate when expired or when pwm usage reports a rejected session:

pwm login

Non-interactive (for AI agents):

pwm login --email your@email.com
pwm login --email your@email.com --code 123456

Via MCP tools (for AI agents without shell):

  1. Call pplx_auth_request_code(email="your@email.com")

  2. Check email for 6-digit code

  3. Call pplx_auth_complete(email="your@email.com", code="123456")

If the tool returns TOTP_REQUIRED, call it again with pplx_auth_complete(email="your@email.com", totp_code="654321").

Session Expired or Zeroed Limits

If quotas suddenly show all zeros or thread listings come back empty, the saved session may have been invalidated. pwm usage detects this case and prints SESSION EXPIRED with a re-login hint instead of anonymous zeros:

pwm login

pwm doctor also verifies the stored session and reports token invalid or expired when a fresh login is needed.

Blank or Truncated Answers

Perplexity can return answer chunks without the older text field. If pwm ask returns No answer received or only part of the answer, upgrade to the latest patch release:

uv tool upgrade perplexity-web-mcp-cli
pwm --version

Diagnose Issues

pwm doctor

This checks installation, authentication, rate limits, MCP configuration, and skill installation -- with fix suggestions for every issue found.

Rate Limiting

  • CLI/MCP: Auto-checks quotas before each query, blocks if exhausted

  • API server: Enforces 5-second minimum between requests


Agent Skill

This project includes a portable Agent Skill (SKILL.md) that teaches AI agents how to use the CLI and MCP tools. Install it for your platform:

pwm skill install all              # Install for all detected tools
pwm skill install claude-code      # Or install individually
pwm skill install cursor
pwm skill install codex
pwm skill install gemini-cli
pwm skill install antigravity
pwm skill install cline
pwm skill install opencode
pwm skill install openclaw
pwm skill install alef-agent

The skill follows Anthropic's Agent Skills open standard and works across any compliant AI platform.


Credits

Originally forked from perplexity-webui-scraper by henrique-coder.

Support

If Perplexity Web MCP saves you time or money, you can help cover the AI bills that go into building and testing it. Any support is hugely appreciated. 🙏

License

MIT

Available Tools

30 tools
pplx_askA

Quick Q&A with auto model. COSTS 1 PRO SEARCH QUERY. Prefer pplx_smart_query(intent='quick') for simple lookups (Sonar 2 first).

An omitted source_focus falls back to your saved default (set with pwm config), then web.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_focusNo
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it delivers two non-obvious behaviors: the per-call cost (1 Pro Search Query) and the source_focus resolution chain (saved default from `pwm config`, then web). It omits return shape and whether conversation_id threads state, but the cost and fallback precedence are exactly the kind of context annotations would otherwise supply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The cost warning is front-loaded, the alternative is given next, and the source_focus default rule follows. Three short lines with no filler; every sentence carries decision-relevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. The description covers purpose, cost, the preferred alternative, and the source_focus fallback; the only meaningful gap is conversation_id semantics (whether the Q&A continues an existing thread).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for 3 parameters, so the description must compensate. It does so for source_focus (a genuinely non-obvious default-resolution rule) while query is self-evident from the Q&A framing, but conversation_id is left entirely undefined in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Quick Q&A') plus the model-selection behavior ('auto model'), and it names the sibling pplx_smart_query as the preferred path for simple lookups. It is clearly distinguishable from the deep-research and single-model siblings, though it doesn't fully contrast against pplx_query/pplx_sonar.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: 'Prefer pplx_smart_query(intent='quick') for simple lookups (Sonar 2 first)', with a concrete cost signal ('COSTS 1 PRO SEARCH QUERY') to shape selection. It gives when-to-use and a named alternative, but no explicit when-not or prerequisite conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_auth_completeA

Complete Perplexity authentication with the verification code.

Use the 6-digit code received via email after calling pplx_auth_request_code. On success, the session token is saved and all pplx_* tools will work.

Args: email: Your Perplexity account email (same as used in pplx_auth_request_code) code: The 6-digit verification code from your email totp_code: The 6-digit authenticator code when TOTP is enabled

Returns: Status message with authentication result and subscription tier

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNo
emailYes
totp_codeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that on success the session token is saved and all pplx_* tools will work. It does not detail failure modes or rate limits, but the behavioral outcome is sufficiently described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose, then structured with Args/Returns. It is concise overall, though the Args/Returns section is somewhat verbose but standard for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (not shown), the description appropriately does not detail return values beyond status message and subscription tier. It covers the prerequisite, parameters, and post-condition. Slightly more detail on failure would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining each parameter: email is the account email from the prior step, code is the 6-digit verification code, totp_code is for TOTP authentication. This provides context beyond the schema's raw definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Complete') and resource ('Perplexity authentication with the verification code'), clearly distinguishing it from the sibling tool pplx_auth_request_code by referencing the prerequisite step. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: after calling pplx_auth_request_code with the received 6-digit code. It implies the alternative (requesting the code if not done), though it does not explicitly say when not to use it. The context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_auth_request_codeA

Request a verification code for Perplexity authentication.

Sends a 6-digit verification code to the provided email address. After calling this, check the email inbox and use pplx_auth_complete with the code to finish authentication.

Args: email: Your Perplexity account email address

Returns: Status message indicating if the code was sent successfully

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry full burden. It discloses that a 6-digit code is sent and the return is a status message. It doesn't mention rate limits or code expiration, but for a simple auth request, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with a clear two-paragraph structure: purpose and next step, then Args and Returns. Every sentence adds value, and the most important information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and an output schema, the description covers all necessary aspects: what it does, how to use it (including next step), parameter explanation, and return value. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It does so with an Args section that explains 'email: Your Perplexity account email address', adding meaning beyond the bare type. The parameter is well-described.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool requests a verification code for Perplexity authentication and sends it to the provided email. It is a specific verb ('request') on a specific resource ('verification code'), and its role is distinct from siblings like pplx_auth_complete and pplx_auth_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs to check email inbox and use pplx_auth_complete with the code, providing a clear next step. However, it does not explicitly contrast with pplx_auth_status or mention when to avoid this tool, though the context makes its purpose clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_auth_statusA

Check if Perplexity is authenticated.

Returns the current authentication status and subscription tier if authenticated. Use this to check if re-authentication is needed before making queries.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description discloses returns and that it is a status check. No side effects mentioned; adequate for a simple read operation with no parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences: action, returns, usage guidance. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists and description explains returns. No parameters. Tool is simple and description covers all necessary context for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist (0 params, schema coverage 100%), so baseline score is 4. Description adds no extra param info, but none needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Check if Perplexity is authenticated' and specifies returns (auth status, subscription tier). Distinguishes from sibling tools like pplx_auth_complete and pplx_auth_request_code by mentioning re-authentication check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this to check if re-authentication is needed before making queries.' Provides clear context for when to use, though does not mention alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_claude_opusC

Claude Opus 4.8 — Anthropic's most advanced reasoning model. COSTS 1 PRO SEARCH QUERY. Requires Max subscription.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_focusNoweb
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavior. It only covers cost and subscription requirements, omitting details like return format, conversation continuity (hinted by conversation_id parameter), or any side effects. The behavioral profile is incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (two brief parts), but it sacrifices essential information for brevity. It is not well-structured; the key action is missing. Adequate conciseness but poor completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 3 parameters, no schema descriptions, an output schema present but unmentioned, and a notable cost/subscription context, the description is severely incomplete. It fails to provide enough context for correct tool usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain parameters. It provides no meaning for 'query', 'source_focus', or 'conversation_id'. The agent receives no guidance on parameter values or their significance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the model as 'Claude Opus 4.8 — Anthropic's most advanced reasoning model' and mentions cost and subscription, implying it is a query tool. However, it does not explicitly state the tool's action (e.g., 'Ask a question to Claude Opus'). The model name and capabilities provide sufficient clarity for a knowledgeable agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'COSTS 1 PRO SEARCH QUERY' and 'Requires Max subscription', providing context on constraints. However, it does not specify when to use this tool versus siblings like pplx_claude_sonnet or pplx_claude_opus_think, nor does it offer exclusion criteria or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_claude_opus_thinkC

Claude Opus 4.8 Thinking — Anthropic's most advanced reasoning model with extended thinking. COSTS 1 PRO SEARCH QUERY. Requires Max subscription.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_focusNoweb
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It reveals that usage costs 1 Pro Search query and requires a Max subscription, which is useful. However, it does not describe what happens upon invocation (e.g., response format, latency, or whether it is read-only or mutates state). No annotation contradiction detected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, front-loading the model identity and key constraints. No unnecessary words. However, it could be more structured (e.g., separate lines for model, cost, requirements).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of 3 parameters (1 required) and an output schema, the description should cover parameter usage and output expectations. It mentions cost and subscription but omits how the parameters affect behavior or what the response contains. The output schema exists but is not referenced.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no information about the three parameters (query, source_focus, conversation_id). The agent must infer that 'query' is the input prompt, but no guidance on valid values or defaults is given. This is a critical gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as 'Claude Opus 4.8 Thinking', specifying it as the most advanced reasoning model with extended thinking. This distinguishes it from sibling tools like pplx_claude_opus (non-thinking) and pplx_claude_sonnet_think (different model). However, it does not explicitly state the action (e.g., 'ask a query using this model'), relying on the tool name to imply usage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool vs. alternatives. It mentions cost and subscription requirements but does not advise on scenarios where extended thinking is beneficial or when simpler models suffice. No alternative tools are referenced.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_claude_sonnetD

Claude Sonnet 5 — Anthropic's fast model. COSTS 1 PRO SEARCH QUERY.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_focusNoweb
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should fully disclose behavior. It only mentions cost ('COSTS 1 PRO SEARCH QUERY'), but omits whether it is read-only, what it returns, or if it has side effects. A score of 2 due to minimal disclosure beyond cost.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short but fails to be effectively informative. Every sentence should add value, but this one omits critical details. It is under-specified rather than concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and there are many sibling tools, the description is severely inadequate. It does not explain the tool's output, how it differs from other model-specific tools, or how to use the parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It provides no information about any of the 3 parameters (query, source_focus, conversation_id), leaving the agent with no understanding of what values to provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only states 'Claude Sonnet 5 — Anthropic's fast model. COSTS 1 PRO SEARCH QUERY.' It does not include a verb or specify what the tool does (e.g., search, query, generate). Among many sibling tools with model names, it fails to distinguish its action or purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like pplx_claude_opus or pplx_grok45. It does not mention use cases, prerequisites, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_claude_sonnet_thinkC

Claude Sonnet 5 Thinking — Anthropic's newest reasoning model. COSTS 1 PRO SEARCH QUERY.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_focusNoweb
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only mentions the cost (1 PRO SEARCH QUERY) but does not disclose safety, side effects, read/write nature, or any other behavioral traits. Agent cannot assess risk or idempotency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is short (two clauses) but wastes the opportunity to include crucial details. While concise, it sacrifices clarity and completeness. It could easily be expanded without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (3 parameters, some optional, with output schema) and many siblings, the description is far from complete. It omits parameter explanations, behavioral context, and usage scenarios. The output schema exists but does not compensate for the lack of operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the three parameters (query, source_focus, conversation_id). The agent receives no guidance on what values to provide, default behaviors, or parameter relationships.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description identifies the model as 'Claude Sonnet 5 Thinking' and mentions it costs a PRO SEARCH QUERY, but lacks an action verb (e.g., 'query', 'ask'). It vaguely indicates a reasoning model but does not clearly state what the tool does or how it differs from similar siblings like pplx_claude_sonnet or pplx_claude_opus_think.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. With over 20 sibling tools offering different models, the description provides no context for selecting this particular model over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_connectorsA

List account connector source IDs that can be passed as source_focus.

Returns source IDs from the Perplexity rate-limit API. Use these IDs as source_focus values, for example source_focus="pitchbook_mcp_cashmere".

ParametersJSON Schema
NameRequiredDescriptionDefault
refreshNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Discloses it 'Returns source IDs from the Perplexity rate-limit API' and explains output usage. Good transparency for a read-only listing tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences: first states action, second provides an example. No wasted words, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Explains output and usage, but missing explanation of the 'refresh' parameter. With only one parameter, this gap reduces completeness despite existing output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has one parameter 'refresh' with 0% description coverage, yet the description does not explain it. This leaves the agent guessing about its behavior, failing to add meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List account connector source IDs' with a specific verb and resource, and explains the purpose (to be used as source_focus). It distinguishes from siblings by focusing on connector source ID listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context for use (obtain source_focus values) with an example, but lacks explicit guidance on when not to use or alternatives among sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_councilA

Model Council — query multiple models in parallel, get synthesized consensus.

IMPORTANT — BEFORE calling this tool, you MUST:

  1. Tell the user the available models: sonar, gpt56_terra, gpt56_sol, gpt6_sol, grok45, grok47, claude_sonnet, claude_opus, claude_opus55, gemini_pro, gemini38, nemotron, glm52, glm53, kimi_k26, kimi_k3

  2. Check pplx_usage() first. If Subscription is Pro, do not include Max-only models: gpt56_sol, claude_opus, claude_opus55

  3. Ask the user WHICH models they want in their council and HOW MANY

  4. Inform them of the cost: each council model = 1 Pro Search query, plus synthesis (default chairman sonar = Sonar 2 pass — still counts as a normal query toward limits)

  5. Get explicit confirmation before executing

Default council: GPT-5.6 Terra, Claude Sonnet 5, Gemini 3.1 Pro (Pro-compatible, 3 diverse providers).

Args: query: The question to ask all council models source_focus: Source type for all models (none/web/academic/social/finance/all or connector source ID) models: Comma-separated model names to use as council members. Available: sonar, gpt56_terra, gpt56_sol, gpt6_sol, grok45, grok47, claude_sonnet, claude_opus, claude_opus55, gemini_pro, gemini38, nemotron, glm52, glm53, kimi_k26, kimi_k3. Default: "gpt56_terra,claude_sonnet,gemini_pro" (3 models + synthesis = 4 Pro Searches) Max-only: gpt56_sol, claude_opus, claude_opus55. Exclude these when pplx_usage shows a Pro subscription. synthesize: Whether to synthesize a consensus from all responses. Set false to get only individual responses (saves 1 Sonar 2 call). thinking: Enable extended thinking for council models (gpt56_terra, gpt56_sol, gpt6_sol, grok45, grok47, claude_sonnet, claude_opus, claude_opus55, gemini38, kimi_k26 support toggle; gemini_pro, nemotron, glm52, and glm53 are always thinking). chairman: Model to use for synthesis (default: "sonar" / Sonar 2). Non-sonar chairmen cost 1 extra Pro Search query.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
modelsNogpt56_terra,claude_sonnet,gemini_pro
chairmanNosonar
thinkingNo
synthesizeNo
source_focusNoweb

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the cost model (each council member = 1 Pro Search query, synthesis an extra Sonar 2 call), the Max-only model restrictions tied to subscription tier, the per-model chairman surcharge, and which models support the thinking toggle. It does not spell out rate limits or return shape, and the read-only nature is only implied, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded and well-organized with an IMPORTANT block, but there is real redundancy: the 16-model list appears three times (step 1, the models arg, and elsewhere) and the cost rule is restated. The Args section also repeats schema content the agent can already read, so a nontrivial share of the text does not earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be described. Combined with the cost/subscription gating, required confirmation workflow, and per-parameter notes, this is close to complete for a 6-parameter orchestration tool; only the missing guidance on choosing council vs. sibling research tools leaves a small gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate — and it largely does, explaining models (full list, default, Max-only exclusions), synthesize (false skips synthesis and saves a Sonar 2 call), thinking (which models toggle vs. always-on), chairman (default sonar, surcharge for non-sonar), and source_focus. Gaps remain: the chairman enum's 'auto' and 'deep_research' values are undocumented, and source_focus values are only parenthetically listed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line states a specific verb+resource+mechanism: 'query multiple models in parallel, get synthesized consensus.' That cleanly distinguishes it from siblings like pplx_sonar, pplx_smart_query, and the single-model pplx_<model> tools, which return one model's answer rather than a synthesized council.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an unusually explicit precondition workflow (list models, check pplx_usage for subscription gating, confirm model count, disclose cost, get confirmation) and names the dependency tool pplx_usage. It is weaker on positional guidance against sibling alternatives (e.g., when to prefer pplx_deep_research or pplx_smart_query over a council), but the multi-model-consensus context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_deep_researchB

Deep Research — in-depth reports. COSTS 1 DEEP RESEARCH QUERY (limited monthly pool, typically 5-10 total). Only use when the user explicitly requests deep research.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_focusNoweb

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses the cost (1 deep research query from a limited pool) which is critical. However, it does not mention other behavioral traits like authentication needs, destructiveness, or async behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words, front-loaded with essential information (purpose and cost). Perfectly concise for the information provided.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool consumes a limited resource and has an output schema, the description fails to describe return values, async nature, or relation to companion tools like pplx_deep_research_start and pplx_research_status. Incomplete for a high-cost tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, meaning no descriptions in the schema. The description does not explain the two parameters (query and source_focus) at all, leaving the agent to infer from names only. This is a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it produces in-depth reports via deep research, and explicitly limits usage to when the user requests deep research. However, it does not differentiate from related siblings like pplx_deep_research_start or pplx_research_status, which may cause confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear directive 'Only use when the user explicitly requests deep research' and mentions cost constraints. Lacks explicit alternatives or when-not-to-use scenarios, but the instruction is strong enough for most cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_deep_research_startA

Start a deep research task asynchronously. COSTS 1 DEEP RESEARCH QUERY.

Use this instead of pplx_deep_research for complex queries to avoid connection timeouts. Returns a task_id immediately. Poll pplx_research_status with the task_id to get the result.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_focusNoweb

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses asynchronous behavior, immediate return of task_id, and cost of 1 deep research query. It does not mention error handling, permissions, or rate limits, but the core behavioral traits are covered for a simple async start tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each carrying essential information: action, cost/alternative, and follow-up. No unnecessary words. Key points are front-loaded. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (2 params, no nested objects, has output schema). The description covers purpose, async return, and cost. It lacks details on the source_focus parameter and any limits on concurrent tasks, but for an async start tool, the core information is present. Output schema existence reduces the need to describe return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has two parameters (query, source_focus) with 0% description coverage. The description does not add any meaning beyond the parameter names. The parameter names are self-explanatory, but the description fails to provide context like valid values for source_focus or example queries, leaving a gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it starts a deep research task asynchronously, distinguishes from sibling pplx_deep_research by noting this avoids timeouts for complex queries, and specifies it returns a task_id immediately. The verb 'start' and resource 'deep research task' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this instead of pplx_deep_research for complex queries to avoid connection timeouts.' Provides clear guidance on when to use this tool vs the alternative. Also tells the agent to poll pplx_research_status with the task_id to get the result, which is direct usage help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_gemini_pro_thinkC

Gemini 3.1 Pro Thinking — Google's most advanced model with extended thinking. COSTS 1 PRO SEARCH QUERY.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_focusNoweb
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must convey behavioral traits. It mentions 'extended thinking' and the cost, but does not disclose whether the tool is read-only, destructive, what happens during execution, or potential side effects. The behavioral insight is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (one sentence), which is concise, but at the expense of completeness. It lacks necessary details about functionality and parameters, so conciseness trades off against clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters with no schema descriptions and an output schema exists, the description should provide context on how to use the tool and what to expect. It only mentions the model and cost, leaving users uninformed about return values, parameter usage, or any special behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not explain any of the three parameters (query, source_focus, conversation_id). Since schema description coverage is 0%, the description must compensate, but it adds zero semantic value for parameters. No parameter meanings, formats, or examples are given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the model (Gemini 3.1 Pro Thinking) and mentions it is Google's most advanced model with extended thinking, which distinguishes it from siblings. However, it does not explicitly state the action (e.g., 'perform a search' or 'generate a response'), leaving the primary function implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage hint is 'COSTS 1 PRO SEARCH QUERY,' which implies a premium cost but provides no direct guidance on when to use this tool over alternatives like pplx_gpt54_thinking or pplx_claude_sonnet_think. No comparisons, prerequisites, or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_get_threadA

Fetch the full conversation history for a Perplexity thread. FREE — zero quota cost.

Returns the complete Q&A turns, sources, and related queries for any past thread. Get the slug from pplx_list_threads, or from the [Conversation ID: ...] footer returned by any pplx_* query tool.

RESUME PATTERN — to continue a past conversation:

  1. pplx_list_threads(search_term="topic") — find the thread and its slug

  2. pplx_get_thread(slug) — read the full history for context

  3. pplx_smart_query("follow-up question", conversation_id=slug) — continue it

Args: slug: Thread UUID / slug. Obtain from pplx_list_threads or a previous [Conversation ID: ...] response footer.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavioral traits. It mentions 'FREE — zero quota cost' and states it returns data, implying a read-only operation. However, it does not disclose authentication requirements, rate limits, or potential side effects. The description is adequate but lacks completeness regarding behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with clear sections: tool purpose, cost, output, slug source, and a resume pattern. Every sentence adds value, though the resume pattern could be more concise. Overall, it balances completeness with readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, output schema exists), the description covers all necessary context: what it does, how to get the slug, and a usage pattern. The presence of an output schema reduces the need to describe return values, and the description still mentions key return elements (Q&A turns, sources, related queries).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides no description for the slug parameter (0% coverage). The description compensates fully by explaining the slug's purpose, how to obtain it from other tools, and its format (UUID/slug). This adds essential meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the full conversation history for a Perplexity thread, specifying verb ('Fetch') and resource ('full conversation history'). It distinguishes from sibling tools by detailing the output content (Q&A turns, sources, related queries) and providing a usage pattern to obtain the slug.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use the tool, including how to obtain the slug from pplx_list_threads or previous query footers. It includes a step-by-step RESUME PATTERN for continuing past conversations. However, it does not explicitly state when not to use it or name alternative tools for different needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_glm52C

GLM 5.2 — Z.ai's advanced model with thinking always enabled. COSTS 1 PRO SEARCH QUERY.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_focusNoweb
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully explain behavior. It only notes 'thinking always enabled' and cost, omitting details like required permissions, side effects, response format, or error conditions. Insufficient for safe use.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short but fails to convey essential information. Conciseness should not come at the expense of completeness; here it is under-specified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (3 params, no annotations, output schema present), the description is far from complete. It lacks usage context, parameter explanations, and behavioral details, making it inadequate for proper tool invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, and the description provides zero information about the three parameters (query, source_focus, conversation_id). The agent gets no help beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the model (GLM 5.2) and mentions 'advanced model with thinking always enabled', but lacks a clear verb like 'query' or 'ask'. It implies the tool is for submitting queries to this model, but doesn't explicitly state the action, making it only somewhat clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus siblings like pplx_ask, pplx_query, or pplx_smart_query. The only hint is the model name and cost, which is insufficient for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_gpt56_solD

GPT-5.6 Sol — OpenAI's most powerful model. COSTS 1 PRO SEARCH QUERY. Requires Max subscription.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_focusNoweb
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should disclose behavioral traits (e.g., whether it mutates state, triggers side effects). It only mentions cost and subscription, leaving the behavioral profile largely unknown.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, but it sacrifices necessary detail for brevity. It is not front-loaded with useful guidance; instead, it states basic facts that could be inferred from the name and annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the tool lacks context on how input parameters affect behavior, making it incomplete for an AI agent to use correctly among many similar sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides no information about the parameters (query, source_focus, conversation_id). Since schema description coverage is 0%, the entire burden is on the description, which it fails to meet.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the model but does not specify the tool's function, such as performing a search or generating a response. It reads like a label rather than a functional description, making it unclear what the tool actually does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions subscription and cost requirements but provides no guidance on when to use this tool over siblings like pplx_sonar or pplx_ask. No context on appropriate scenarios or exclusions is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_gpt56_sol_thinkingC

GPT-5.6 Sol Thinking — OpenAI's most powerful model with thinking. COSTS 1 PRO SEARCH QUERY. Requires Max subscription.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_focusNoweb
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It mentions cost (1 PRO SEARCH QUERY) and subscription requirement, which is useful, but does not disclose other behavioral traits like rate limits, side effects, or whether it reads or writes data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (two lines). While it front-loads the model name, it is too brief to convey necessary information. Conciseness is positive, but it sacrifices completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 3 parameters and exists among many model-specific siblings. The description does not explain how to use the tool, what 'thinking' entails, or how to structure queries. An output schema exists but its contents are unknown; the description still lacks context for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 3 parameters with 0% description coverage, and the tool description does not mention any parameter. The meaning of 'query', 'source_focus', and 'conversation_id' remains completely unexplained, failing to compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the model (GPT-5.6 Sol Thinking) but lacks a verb specifying the tool's action. It is unclear whether the tool executes a query, generates text, or performs a search. Compared to siblings like pplx_query, the purpose is vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like pplx_gpt56_sol (without thinking) or other models. The description implies it's for complex reasoning ('most powerful model with thinking') but does not state exclusions or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_gpt56_terraD

GPT-5.6 Terra — OpenAI's versatile model. COSTS 1 PRO SEARCH QUERY.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_focusNoweb
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full burden for behavioral disclosure. Only the cost ('COSTS 1 PRO SEARCH QUERY') is mentioned, but other critical traits like statelessness, streaming support, or rate limits are absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short, which is concise, but it lacks any structured detail about the tool's function or usage. It earns its place minimally.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema and three parameters, the description provides almost no context about the tool's role, return value, or parameter handling, making it inadequate for an AI agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has three parameters with zero description coverage, and the tool description adds no information about their meaning, usage, or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'OpenAI's versatile model' does not include a specific verb or action, leaving it unclear whether the tool is for answering queries, generating text, or another purpose. It fails to distinguish from siblings with similar model names.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives like pplx_gpt56_sol or pplx_sonar. The only hint is the cost mention, which is not a usage guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_gpt56_terra_thinkingC

GPT-5.6 Terra Thinking — OpenAI's versatile model with thinking. COSTS 1 PRO SEARCH QUERY.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_focusNoweb
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior. It only mentions cost, omitting traits like whether it's read-only, rate limits, or side effects. The 'thinking' trait is name-inferred, not explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very short and front-loaded with model name and cost, but it sacrifices essential information. Could be expanded without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite an output schema, the description fails to explain what the tool returns or how to use its parameters. For a tool with 0% schema coverage and no annotations, this is inadequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, meaning description provides no parameter details. The three parameters (query, source_focus, conversation_id) are completely unexplained, leaving the agent with no guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as GPT-5.6 Terra with thinking, distinguishing it from the non-thinking sibling pplx_gpt56_terra. However, it lacks a verb stating what the tool does (e.g., generates, answers), relying on context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The cost hint ('COSTS 1 PRO SEARCH QUERY') implies usage when thinking is needed and budget allows, but no explicit guidance on when to choose this vs alternatives like pplx_sonar or other thinking models.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_grok45D

Grok 4.5 — xAI's most advanced model. COSTS 1 PRO SEARCH QUERY.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_focusNoweb
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The only behavioral trait disclosed is cost ('COSTS 1 PRO SEARCH QUERY'). No annotations exist to supplement, so the description falls short on rate limits, auth needs, or operational details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences) but lacks substantive content. It earns no penalties for verbosity, but brevity here comes at the cost of clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters, an output schema, and many siblings, the description is severely incomplete. It omits the tool's purpose, parameter details, and any usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (no parameter descriptions) and the description adds no meaning to the three parameters (query, source_focus, conversation_id). The agent learns nothing about argument expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the model as 'Grok 4.5 — xAI's most advanced model' and mentions cost, but does not state the tool's action or operation (e.g., query, generate). It fails to differentiate from sibling tools like pplx_grok45_thinking or pplx_query.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. With many similar sibling tools, the agent receives no help in selecting this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_grok45_thinkingC

Grok 4.5 Thinking — xAI's most advanced model with thinking. COSTS 1 PRO SEARCH QUERY.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_focusNoweb
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses a key behavioral trait: 'COSTS 1 PRO SEARCH QUERY,' which is useful for cost-aware agents. However, with no annotations provided, additional details like idempotency, error handling, or output format are missing, leaving the behavioral profile incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (one sentence), which is concise, but it sacrifices essential information. It front-loads the model name but does not structure the content to aid quick comprehension; it feels incomplete rather than efficiently minimal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has three parameters and an output schema, the description should provide enough context for correct invocation. It omits parameter meanings, usage scenarios, and result behavior, making it insufficient for an agent to use effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description offers no explanation for any of the three parameters (query, source_focus, conversation_id). The description is expected to compensate for low coverage but fails entirely, providing zero parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description names the model 'Grok 4.5 Thinking' and states it is 'xAI's most advanced model with thinking,' which conveys the tool's purpose as a reasoning-capable search model. However, it lacks an explicit verb like 'search' or 'query' to describe the action, leaving some ambiguity compared to sibling tools like pplx_grok45.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool over its many siblings (e.g., pplx_grok45, pplx_sonar, pplx_deep_research). The description does not specify contexts or alternatives, making it difficult for an agent to choose appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_kimi_k26C

Kimi K2.6 — Moonshot's advanced model. COSTS 1 PRO SEARCH QUERY.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_focusNoweb
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description provides a behavioral note on cost ('COSTS 1 PRO SEARCH QUERY') but no other disclosures (e.g., rate limits, output format, data handling). With no annotations, more context is expected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (two sentences) and front-loaded with the model name and cost. Every word serves a purpose, but the brevity sacrifices comprehensiveness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description omits crucial details about parameter usage, return values, and how this tool differs from many similar siblings. It is insufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the three parameters (query, source_focus, conversation_id). The agent has no additional meaning beyond the schema names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as an advanced model (Kimi K2.6) but lacks a verb indicating the action (e.g., query, ask). It vaguely implies a query function via the sibling tools context, but does not explicitly state what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like pplx_query or pplx_ask. The description merely mentions the model name and cost without clarifying the use case or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_kimi_k26_thinkingC

Kimi K2.6 Thinking — Moonshot's advanced model with extended thinking. COSTS 1 PRO SEARCH QUERY.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_focusNoweb
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions a cost of 1 Pro search query, which is a behavioral trait. However, no annotations are provided, and the description does not disclose other traits such as read/write nature, authentication needs, or side effects, leaving significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (two sentences) and front-loaded with key info (model name and cost). While concise, it omits critical details, so it is not fully effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (3 parameters, no schema descriptions) and no annotations, the description is incomplete. It lacks parameter explanations and usage context, even though an output schema is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has three parameters with no descriptions, and the tool description adds no information about them. With 0% schema description coverage, the agent receives no semantic help for parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as Kimi K2.6 Thinking, Moonshot's advanced model with extended thinking, which clearly indicates its purpose. However, it does not explicitly state that the tool sends a query and returns a response, making it less direct than ideal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like pplx_kimi_k26 or other thinking models. There is no context about preferred use cases or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_list_threadsA

Browse your Perplexity thread library. FREE — zero quota cost.

Returns a paginated list of your past Perplexity conversations with their slugs, titles, models used, and answer previews.

PRIMARY USE CASES:

  1. "Did I already research X?" — search before spending a Pro query: pplx_list_threads(search_term="quantum computing")

  2. Find a conversation to resume — get its slug, then pass it as conversation_id to any pplx_* query tool to continue right where it left off.

  3. Retrieve full history — call pplx_get_thread(slug) with any slug from this list.

Args: limit: Max threads to return (default 20, max 100). offset: Skip this many threads — use for pagination (e.g. offset=20 for page 2). search_term: Optional keyword to filter threads by title or content.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
search_termNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that the tool is free (zero quota cost), returns a paginated list, and lists the fields returned. While no annotations exist, the description covers key behavioral aspects without contradictions. Could have mentioned rate limits or error handling, but overall strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with a clear one-liner, followed by structured sections (primary use cases, parameters). Every sentence adds value, no redundancy. Efficient and well-organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the presence of an output schema, the description covers all necessary aspects: purpose, usage, parameters, and output fields. Explains how to use results (e.g., slug for pplx_get_thread), making it self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Adds complete meaning for all three parameters (limit, offset, search_term) beyond the empty schema descriptions. Includes defaults, maximums, and practical usage context such as pagination and filtering. Fully compensates for 0% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool browses the Perplexity thread library, returns a paginated list with specific fields, and distinguishes from sibling tools like pplx_get_thread by providing use cases and alternative guidance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly lists primary use cases with examples: searching before spending a Pro query, finding a conversation to resume, and retrieving full history via pplx_get_thread. Provides explicit when-to-use and when-not-to-use scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_nemotron_thinkingC

Nemotron 3 Ultra — NVIDIA's Nemotron 3 Ultra 550B model with extended thinking. COSTS 1 PRO SEARCH QUERY.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_focusNoweb
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must cover behavioral traits. It mentions extended thinking (implying deeper reasoning) and cost, but lacks details on response format, side effects, permissions, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short, but it omits critical information. It is not a model of conciseness if it fails to adequately describe the tool; however, it does front-load the key differentiator (model and cost).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters with no schema descriptions and no annotation support, the description is insufficient for an agent to use the tool correctly. Output schema exists but is not described, and parameters are not explained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, yet the description adds no explanation for the three parameters (query, source_focus, conversation_id). Users must infer their meaning from names alone, which is insufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool uses NVIDIA's Nemotron 3 Ultra 550B model with extended thinking and notes it costs one Pro Search query. This distinguishes it from sibling tools like pplx_query or pplx_claude_opus by specifying the model and thinking feature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like pplx_gpt55_thinking or pplx_smart_query. The only hint is the cost implication, but no exclusion criteria or context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_queryA

Query Perplexity AI with explicit model selection. COSTS 1 PRO SEARCH QUERY per call.

Prefer pplx_smart_query for automatic quota-aware routing. Use this only when you need a specific model or thinking mode. Omitted model, thinking, and source_focus fall back to saved defaults (set with pwm config in the CLI), then to auto/web/off.

Args: query: The question to ask model: Model to use - auto, sonar, deep_research, gpt56_terra, gpt56_sol, gpt6_sol, grok45, grok47, claude_sonnet, claude_opus, claude_opus55, gemini_pro, gemini38, nemotron, glm52, glm53, kimi_k26, kimi_k3 (any live catalog identifier is also accepted). An unknown name returns an error with close-match suggestions. thinking: Enable extended thinking mode (available for gpt56_terra, gpt56_sol, gpt6_sol, grok45, grok47, claude_sonnet, claude_opus, claude_opus55, gemini38, kimi_k26; always on for gemini_pro, nemotron, glm52, glm53, and kimi_k3) source_focus: Source type - none (model only, no search), web, academic, social, finance, all, or connector source ID from pplx_connectors() files: Local file paths to attach (PDF or image). On Free-tier accounts an attachment can make the query count as a Pro Search.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNo
modelNo
queryYes
thinkingNo
source_focusNo
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does well: it discloses per-call cost ('COSTS 1 PRO SEARCH QUERY'), that Free-tier attachments can upgrade a query to Pro Search, that omitted params fall back to saved defaults then auto/web/off, and that unknown model names return an error with close-match suggestions. It omits auth/permission requirements, but cost, defaults, and error behavior are strong disclosures beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and the cost warning before routing guidance and the arg list. The Args block is long but each line carries information not present in the schema, so it is justified rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. For a 6-param tool the description covers cost, routing, defaults, error behavior, and most parameters; the only missing piece is any meaning for conversation_id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it largely does: model enum values are annotated with which ones support thinking, source_focus options are explained semantically ('none (model only, no search), web, academic...'), and files notes accepted types and tier effects. conversation_id, however, is left entirely undocumented, which is the one gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Query Perplexity AI') plus the differentiating scope ('with explicit model selection'). It explicitly separates itself from pplx_smart_query, so an agent can choose between them without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit alternative ('Prefer pplx_smart_query for automatic quota-aware routing') and the precise condition that selects this tool instead ('only when you need a specific model or thinking mode'). When-to-use and when-not-to-use are both covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_research_statusA

Check the status of an asynchronous deep research task.

Returns 'in_progress' if the task is still running, the final research report if completed, or an error message if it failed.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must fully disclose behavior. It explains return types but does not mention read-only nature, idempotency, rate limits, or polling safety. Adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with purpose, no wasted words. Highly efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple status polling tool with one parameter and output schema present, description explains all possible return types. No gaps for its intended use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage and description does not explain the sole parameter 'task_id' beyond its name. No guidance on format or source (e.g., from start tool). Fails to add meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Check' and resource 'status of an asynchronous deep research task', with explicit return values (in_progress, report, error). It distinguishes from sibling tools like pplx_deep_research_start.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies use after starting a deep research task but does not explicitly mention when to use or not use, nor name alternatives. Context is clear but lacks explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_smart_queryA

RECOMMENDED DEFAULT TOOL. Quota-aware query — checks limits and picks the best model automatically.

USE THIS FOR EVERY QUERY unless the user explicitly requests a specific model. Default to intent='quick' for most lookups — it routes to Sonar 2 when appropriate. Only escalate intent when the question genuinely requires it.

Intent guide (choose the LOWEST sufficient level):

  • quick: Facts, definitions, simple lookups, 'what is X' → Sonar 2 (check pplx_usage)

  • standard: How-to, comparisons, explanations needing web sources → 1 Pro Search

  • detailed: Complex multi-source analysis, technical deep-dives → 1 Pro Search (premium model)

  • research: Comprehensive report → 1 Deep Research (scarce monthly quota, user must request)

Response includes a metadata block showing the model used, routing reason, and current quota snapshot.

Args: query: The question to ask intent: Query complexity — quick (default for most), standard, detailed, research source_focus: Source type — none (model only, no search), web, academic, social, finance, all, or connector source ID from pplx_connectors(). Omit it to use your saved default (set with pwm config), then web. conversation_id: Pass the ID from a previous response to continue that thread files: Local file paths to attach (PDF or image). On Free-tier accounts an attachment can make the query count as a Pro Search.

ParametersJSON Schema
NameRequiredDescriptionDefault
filesNo
queryYes
intentNostandard
source_focusNo
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden, and it does disclose notable behavior: automatic quota checks and model selection, a response metadata block with model/routing reason/quota snapshot, and a tier-dependent side effect ('On Free-tier accounts an attachment can make the query count as a Pro Search'). Minor inconsistency: it instructs 'Default to intent=quick' while the schema default is 'standard', which adds a small amount of ambiguity about actual default behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded and sectioned with a clear intent guide, and the argument list is scannable. There is some redundancy ('RECOMMENDED DEFAULT TOOL' / 'USE THIS FOR EVERY QUERY' / 'default for most' repeat the same point), so it is slightly longer than strictly necessary, but every section still earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter routing tool with an output schema (so return values need no explanation), the definition covers the gaps that matter: routing policy, quota scarcity per intent level, enum semantics for the two string params, conversation continuation, and tier side effects. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate and does: it documents all five parameters including enum values absent from the schema (intent: quick/standard/detailed/research with routing targets; source_focus: none/web/academic/social/finance/all/connector IDs), the default-resolution chain for source_focus ('omit it to use your saved default, then web'), conversation_id threading behavior, and accepted file types plus tier consequences.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource framing ('Quota-aware query — checks limits and picks the best model automatically') and explicitly positions itself as the default against the many model-specific siblings ('RECOMMENDED DEFAULT TOOL', 'USE THIS FOR EVERY QUERY unless the user explicitly requests a specific model'). An agent can distinguish this from pplx_query, pplx_sonar, or pplx_claude_opus without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use ('USE THIS FOR EVERY QUERY unless the user explicitly requests a specific model'), when-to-escalate ('Only escalate intent when the question genuinely requires it'), and a per-level intent guide tied to concrete question types. The 'choose the LOWEST sufficient level' rule and the 'user must request' gate on research are exactly the routing guidance an agent needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_sonarC

Sonar 2 — Perplexity's latest in-house model. Subject to your plan and Perplexity usage counters (see pplx_usage).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
source_focusNoweb
conversation_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only mentions plan/usage counters, but does not disclose whether the tool is read-only, requires authentication, has rate limits, or what happens when limits are exceeded. Behavioral traits are largely undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short (two sentences) and front-loaded with the model name, but it is under-specified. While concise in length, it lacks informative content. It earns its place minimally by noting usage constraints, but fails to convey the tool's core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters and an output schema, the description is incomplete. It does not explain what the tool does, how parameters affect behavior, or what the output represents. The reference to plan/usage counters is useful but insufficient for complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must explain parameters, but it does not. The parameters query, source_focus, and conversation_id are not mentioned or described in the description text. No additional meaning is provided beyond the schema field names and types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description only identifies the model as 'Sonar 2 — Perplexity's latest in-house model' but does not specify the tool's action (e.g., search, answer, chat). The name suggests it's a query tool, but the description lacks a verb and resource, making the purpose vague. Among siblings like pplx_query and pplx_ask, no differentiation is provided.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions plan and usage counters with a reference to pplx_usage, but does not provide any guidance on when to use this tool versus other sibling models or tools. There is no explicit context about appropriate use cases or when to avoid it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pplx_usageA

Check current Perplexity usage limits and remaining quotas.

CALL THIS AT THE START OF EVERY SESSION before making any queries. Shows remaining Pro Search (weekly), Deep Research (monthly), and other quotas. Use the results to decide whether to conserve Pro quota (e.g. quick intent before premium models).

Args: refresh: Force refresh from Perplexity (ignores cache). Default False.

ParametersJSON Schema
NameRequiredDescriptionDefault
refreshNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description covers behavior well: shows quotas (Pro Search weekly, Deep Research monthly), and explains refresh parameter. Could mention if calling this counts toward usage, but overall strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences plus args section, front-loaded with purpose and critical usage instruction. Every sentence adds value, no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema likely defines return values, so description need not repeat. Parameter count is 1, well explained. Siblings are many but tool is clearly distinct.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but description defines the 'refresh' parameter: 'Force refresh from Perplexity (ignores cache). Default False.' Adds clear meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it checks usage limits and remaining quotas, specifying the resource and action. It distinguishes itself from siblings like pplx_ask by focusing on usage information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'CALL THIS AT THE START OF EVERY SESSION' and explains how to use results to decide about conserving Pro quota. Provides clear when-to-use and implied when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.16.0
    • Changedpplx_ask3 fields changed
      • addedInput schema / properties / source_focus / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / source_focus / default
        Previous value: -"web"New value: +null
      • removedInput schema / properties / source_focus / type
        Removed value: -"string"
    • Changedpplx_council1 field changed
      • changedInput schema / properties / chairman / enum
        Previous value: -[
        -  "auto",
        -  "sonar",
        -  "deep_research",
        -  "gpt56_terra",
        -  "gpt56_sol",
        -  "grok45",
        -  "claude_sonnet",
        -  "claude_opus",
        -  "gemini_pro",
        -  "nemotron",
        -  "glm52",
        -  "kimi_k26"
        -]New value: +[
        +  "auto",
        +  "sonar",
        +  "deep_research",
        +  "gpt56_terra",
        +  "gpt56_sol",
        +  "gpt6_sol",
        +  "grok45",
        +  "grok47",
        +  "claude_sonnet",
        +  "claude_opus",
        +  "claude_opus55",
        +  "gemini_pro",
        +  "gemini38",
        +  "nemotron",
        +  "glm52",
        +  "glm53",
        +  "kimi_k26",
        +  "kimi_k3"
        +]
    • Changedpplx_query11 fields changed
      • addedInput schema / properties / files
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • addedInput schema / properties / model / anyOf
        Added value: +[
        +  {
        +    "enum": [
        +      "auto",
        +      "sonar",
        +      "deep_research",
        +      "gpt56_terra",
        +      "gpt56_sol",
        +      "gpt6_sol",
        +      "grok45",
        +      "grok47",
        +      "claude_sonnet",
        +      "claude_opus",
        +      "claude_opus55",
        +      "gemini_pro",
        +      "gemini38",
        +      "nemotron",
        +      "glm52",
        +      "glm53",
        +      "kimi_k26",
        +      "kimi_k3"
        +    ],
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / model / default
        Previous value: -"auto"New value: +null
      • removedInput schema / properties / model / enum
        Removed value: -[
        -  "auto",
        -  "sonar",
        -  "deep_research",
        -  "gpt56_terra",
        -  "gpt56_sol",
        -  "grok45",
        -  "claude_sonnet",
        -  "claude_opus",
        -  "gemini_pro",
        -  "nemotron",
        -  "glm52",
        -  "kimi_k26"
        -]
      • removedInput schema / properties / model / type
        Removed value: -"string"
      • addedInput schema / properties / source_focus / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / source_focus / default
        Previous value: -"web"New value: +null
      • removedInput schema / properties / source_focus / type
        Removed value: -"string"
      • addedInput schema / properties / thinking / anyOf
        Added value: +[
        +  {
        +    "type": "boolean"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / thinking / default
        Previous value: -falseNew value: +null
      • removedInput schema / properties / thinking / type
        Removed value: -"boolean"
    • Changedpplx_smart_query4 fields changed
      • addedInput schema / properties / files
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • addedInput schema / properties / source_focus / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / source_focus / default
        Previous value: -"web"New value: +null
      • removedInput schema / properties / source_focus / type
        Removed value: -"string"
  2. 13 tool updatesv0.14.7
    • Changedpplx_auth_complete3 fields changed
      • addedInput schema / properties / code / default
        Added value: +""
      • addedInput schema / properties / totp_code
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null
        +}
      • changedInput schema / required
        Previous value: -[
        -  "email",
        -  "code"
        -]New value: +[
        +  "email"
        +]
    • Changedpplx_council2 fields changed
      • changedInput schema / properties / chairman / enum
        Previous value: -[
        -  "auto",
        -  "sonar",
        -  "deep_research",
        -  "gpt54",
        -  "gpt55",
        -  "claude_sonnet",
        -  "claude_opus",
        -  "gemini_pro",
        -  "nemotron",
        -  "glm52",
        -  "kimi_k26"
        -]New value: +[
        +  "auto",
        +  "sonar",
        +  "deep_research",
        +  "gpt56_terra",
        +  "gpt56_sol",
        +  "grok45",
        +  "claude_sonnet",
        +  "claude_opus",
        +  "gemini_pro",
        +  "nemotron",
        +  "glm52",
        +  "kimi_k26"
        +]
      • changedInput schema / properties / models / default
        Previous value: -"gpt54,claude_sonnet,gemini_pro"New value: +"gpt56_terra,claude_sonnet,gemini_pro"
    • Removedpplx_gpt54
    • Removedpplx_gpt54_thinking
    • Removedpplx_gpt55
    • Removedpplx_gpt55_thinking
    • Addedpplx_gpt56_sol
    • Addedpplx_gpt56_sol_thinking
    • Addedpplx_gpt56_terra
    • Addedpplx_gpt56_terra_thinking
    • Addedpplx_grok45
    • Addedpplx_grok45_thinking
    • Changedpplx_query1 field changed
      • changedInput schema / properties / model / enum
        Previous value: -[
        -  "auto",
        -  "sonar",
        -  "deep_research",
        -  "gpt54",
        -  "gpt55",
        -  "claude_sonnet",
        -  "claude_opus",
        -  "gemini_pro",
        -  "nemotron",
        -  "glm52",
        -  "kimi_k26"
        -]New value: +[
        +  "auto",
        +  "sonar",
        +  "deep_research",
        +  "gpt56_terra",
        +  "gpt56_sol",
        +  "grok45",
        +  "claude_sonnet",
        +  "claude_opus",
        +  "gemini_pro",
        +  "nemotron",
        +  "glm52",
        +  "kimi_k26"
        +]
  3. 28 tool updatesv0.14.0
    • First observedpplx_ask
    • First observedpplx_auth_complete
    • First observedpplx_auth_request_code
    • First observedpplx_auth_status
    • First observedpplx_claude_opus
    • First observedpplx_claude_opus_think
    • First observedpplx_claude_sonnet
    • First observedpplx_claude_sonnet_think
    • First observedpplx_connectors
    • First observedpplx_council
    • First observedpplx_deep_research
    • First observedpplx_deep_research_start
    • First observedpplx_gemini_pro_think
    • First observedpplx_get_thread
    • First observedpplx_glm52
    • First observedpplx_gpt54
    • First observedpplx_gpt54_thinking
    • First observedpplx_gpt55
    • First observedpplx_gpt55_thinking
    • First observedpplx_kimi_k26
    • First observedpplx_kimi_k26_thinking
    • First observedpplx_list_threads
    • First observedpplx_nemotron_thinking
    • First observedpplx_query
    • First observedpplx_research_status
    • First observedpplx_smart_query
    • First observedpplx_sonar
    • First observedpplx_usage

TDQS

C2.7/5.0

Scored across 30 tools

Disambiguation2/5

Massive overlap among query tools: pplx_query, pplx_ask, pplx_smart_query, pplx_sonar, and ~14 model-specific tools (pplx_gpt56_terra, pplx_grok45, pplx_claude_sonnet, etc.) all essentially perform web queries, with the model-specific ones duplicating pplx_query(model=...). Descriptions steer toward pplx_smart_query, which helps somewhat, but an agent still faces many near-identical choices and redundant model tools like pplx_kimi_k26 vs pplx_kimi_k26_thinking.

Naming Consistency4/5

Names consistently use the pplx_ prefix with snake_case verbs/nouns, which is largely predictable. Minor deviations: 'think' (pplx_claude_sonnet_think, pplx_claude_opus_think, pplx_gemini_pro_think) versus 'thinking' (pplx_gpt56_terra_thinking, pplx_nemotron_thinking), and pplx_glm52 omits a thinking suffix despite always thinking.

Tool Count2/5

30 tools exceeds the typical well-scoped range and is inflated by 14+ per-model tools that largely duplicate pplx_query's model parameter, plus three auth tools and three deep-research tools. Many tools do not independently earn their place, making the surface heavier than the domain requires.

Completeness4/5

Coverage of the web-query domain is strong: querying, quota-aware routing, deep research (sync and async with status polling), thread browsing/retrieval, connectors, usage, and full auth lifecycle are all present. Only minor gaps like thread deletion or management operations are absent, which agents can work around.

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive MCP server that provides intelligent access to Perplexity AI's search and reasoning models with automatic model selection, conversation management, and project-aware storage. Supports real-time search, deep research, chat sessions, and async operations for complex queries.
    32 npm
    3
    MIT
  • A
    license
    C
    quality
    F
    maintenance
    MCP server providing 22 tools to query Perplexity AI's premium models (GPT-5.4, Claude 4.7 Opus, etc.) with citations, source discovery, and rate limit checking for AI agents.
    23
    17
    MIT