Skip to main content
Glama

AIsa Web Search & Research

Sonar Pro

post_perplexity_sonar_pro
Destructive

Ask a question that needs more than one search pass and get a written answer with citations. Same request and response shape as post_perplexity_sonar — model (required, sonar-pro) and messages in, choices[0].message.content, citations, search_results[] and usage out. Use it for questions with several parts or follow-ups. For a single lookup sonar answers in a third of the time at the same price; when the difficulty is reasoning rather than retrieval, post_perplexity_sonar_reasoning_pro shows its working.

Usage-based billing; Default request estimate: $0.11273 USD (not a fixed price). Account-specific pricing and final settlement may differ.

Input Schema

NameRequiredDescriptionDefault
bodyYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed16 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / body
      Added value: +{
      +  "properties": {
      +    "frequency_penalty": {
      +      "default": 1,
      +      "description": "Penalizes new tokens based on their existing frequency in the text so far. Positive values decrease the likelihood of repeating the same line verbatim.",
      +      "maximum": 2,
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "max_tokens": {
      +      "description": "The maximum number of tokens to generate in the response.",
      +      "type": "integer"
      +    },
      +    "messages": {
      +      "description": "A list of messages comprising the conversation so far.",
      +      "items": {
      +        "properties": {
      +          "content": {
      +            "description": "The content of the message.",
      +            "type": "string"
      +          },
      +          "role": {
      +            "description": "The role of the message author.",
      +            "enum": [
      +              "system",
      +              "user",
      +              "assistant"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "role",
      +          "content"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "model": {
      +      "description": "The Sonar model to use.",
      +      "enum": [
      +        "sonar",
      +        "sonar-pro",
      +        "sonar-reasoning-pro",
      +        "sonar-deep-research"
      +      ],
      +      "type": "string"
      +    },
      +    "presence_penalty": {
      +      "default": 0,
      +      "description": "Penalizes new tokens based on whether they appear in the text so far. Positive values increase the likelihood of talking about new topics.",
      +      "maximum": 2,
      +      "minimum": -2,
      +      "type": "number"
      +    },
      +    "return_citations": {
      +      "default": true,
      +      "description": "Whether to return citations and search results in the response.",
      +      "type": "boolean"
      +    },
      +    "search_context": {
      +      "default": "low",
      +      "description": "Controls how much search context to use. Affects per-request cost.",
      +      "enum": [
      +        "low",
      +        "medium",
      +        "high"
      +      ],
      +      "type": "string"
      +    },
      +    "search_domain_filter": {
      +      "description": "Limit search to specific domains.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "search_recency_filter": {
      +      "description": "Filter search results by recency.",
      +      "enum": [
      +        "month",
      +        "week",
      +        "day",
      +        "hour"
      +      ],
      +      "type": "string"
      +    },
      +    "stream": {
      +      "default": false,
      +      "description": "Whether to stream the response using server-sent events.",
      +      "type": "boolean"
      +    },
      +    "temperature": {
      +      "default": 0.2,
      +      "description": "Sampling temperature between 0 and 2. Lower values make output more focused and deterministic.",
      +      "maximum": 2,
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "top_k": {
      +      "default": 0,
      +      "description": "The number of tokens to keep for top-k filtering.",
      +      "maximum": 2048,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    "top_p": {
      +      "default": 0.9,
      +      "description": "Nucleus sampling parameter. The model considers tokens with top_p probability mass.",
      +      "maximum": 1,
      +      "minimum": 0,
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "model",
      +    "messages"
      +  ],
      +  "type": "object"
      +}
    • removedInput schema / properties / frequency_penalty
      Removed value: -{
      -  "default": 1,
      -  "description": "Penalizes new tokens based on their existing frequency in the text so far. Positive values decrease the likelihood of repeating the same line verbatim.",
      -  "maximum": 2,
      -  "minimum": 0,
      -  "type": "number"
      -}
    • removedInput schema / properties / max_tokens
      Removed value: -{
      -  "description": "The maximum number of tokens to generate in the response.",
      -  "type": "integer"
      -}
    • removedInput schema / properties / messages
      Removed value: -{
      -  "description": "A list of messages comprising the conversation so far.",
      -  "items": {
      -    "properties": {
      -      "content": {
      -        "description": "The content of the message.",
      -        "type": "string"
      -      },
      -      "role": {
      -        "description": "The role of the message author.",
      -        "enum": [
      -          "system",
      -          "user",
      -          "assistant"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "role",
      -      "content"
      -    ],
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / model
      Removed value: -{
      -  "description": "The Sonar model to use.",
      -  "enum": [
      -    "sonar",
      -    "sonar-pro",
      -    "sonar-reasoning-pro",
      -    "sonar-deep-research"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / presence_penalty
      Removed value: -{
      -  "default": 0,
      -  "description": "Penalizes new tokens based on whether they appear in the text so far. Positive values increase the likelihood of talking about new topics.",
      -  "maximum": 2,
      -  "minimum": -2,
      -  "type": "number"
      -}
    • removedInput schema / properties / return_citations
      Removed value: -{
      -  "default": true,
      -  "description": "Whether to return citations and search results in the response.",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / search_context
      Removed value: -{
      -  "default": "low",
      -  "description": "Controls how much search context to use. Affects per-request cost.",
      -  "enum": [
      -    "low",
      -    "medium",
      -    "high"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / search_domain_filter
      Removed value: -{
      -  "description": "Limit search to specific domains.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / search_recency_filter
      Removed value: -{
      -  "description": "Filter search results by recency.",
      -  "enum": [
      -    "month",
      -    "week",
      -    "day",
      -    "hour"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / stream
      Removed value: -{
      -  "default": false,
      -  "description": "Whether to stream the response using server-sent events.",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / temperature
      Removed value: -{
      -  "default": 0.2,
      -  "description": "Sampling temperature between 0 and 2. Lower values make output more focused and deterministic.",
      -  "maximum": 2,
      -  "minimum": 0,
      -  "type": "number"
      -}
    • removedInput schema / properties / top_k
      Removed value: -{
      -  "default": 0,
      -  "description": "The number of tokens to keep for top-k filtering.",
      -  "maximum": 2048,
      -  "minimum": 0,
      -  "type": "integer"
      -}
    • removedInput schema / properties / top_p
      Removed value: -{
      -  "default": 0.9,
      -  "description": "Nucleus sampling parameter. The model considers tokens with top_p probability mass.",
      -  "maximum": 1,
      -  "minimum": 0,
      -  "type": "number"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "model",
      -  "messages"
      -]New value: +[
      +  "body"
      +]
  2. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Adds real context beyond annotations: a per-request cost estimate, a latency comparison against the sibling, and the required model value. Annotations declare openWorldHint=true and destructiveHint=true, which the description never explains, so the odd safety profile is left unexplained — but the description does not claim the operation is read-only, so this is an omission rather than a contradiction.

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-loads the purpose, then the request/response contract, then the selection criteria — three dense sentences with no filler. The pricing block is machine-generated boilerplate rather than authorial 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 fields need not be explained, yet the description still names choices[0].message.content, citations, search_results[] and usage, which helps the agent consume the result. Cost and routing are covered; streaming behavior and the missing param guidance are the residual gaps.

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?

The description usefully pins down `model` as required and `sonar-pro`, which the enum of four models in the schema does not. However with schema description coverage reported at 0% for the request, the remaining fields (search_context, return_citations, stream, filters) get no guidance from either source, so the description only partially compensates.

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 ('Ask a question that needs more than one search pass and get a written answer with citations') and explicitly positions it against two named siblings, post_perplexity_sonar and post_perplexity_sonar_reasoning_pro. An agent can route 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 ('questions with several parts or follow-ups'), names the cheaper/faster alternative for single lookups ('sonar answers in a third of the time at the same price'), and names the alternative for reasoning-heavy work. Conditions for each branch are spelled out.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources