Skip to main content
Glama
yoloyash

web-basics-mcp

by yoloyash

web_search

Read-onlyIdempotent

Execute a web search query to retrieve source URLs and provider answers, with configurable result limits, recency filters, and provider options.

Instructions

Run one web query through the first available search provider and return formatted source URLs plus the provider response.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoResult limit
queryYesSearch query
recencyNoRelative time filter
max_tokensNoProvider answer token cap when supported
temperatureNoProvider sampling temperature when supported
num_search_resultsNoRequested search breadth or local result cap

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNo
responseYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.5.0
    • addedInput schema / properties / max_tokens
      Added value: +{
      +  "description": "Provider answer token cap when supported",
      +  "exclusiveMinimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / num_search_results
      Added value: +{
      +  "description": "Requested search breadth or local result cap",
      +  "maximum": 10,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / recency
      Added value: +{
      +  "description": "Relative time filter",
      +  "enum": [
      +    "day",
      +    "week",
      +    "month",
      +    "year"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / temperature
      Added value: +{
      +  "description": "Provider sampling temperature when supported",
      +  "type": "number"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "error": {
      +      "type": "string"
      +    },
      +    "response": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "answer": {
      +          "type": "string"
      +        },
      +        "authMode": {
      +          "type": "string"
      +        },
      +        "citations": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "citedText": {
      +                "type": "string"
      +              },
      +              "title": {
      +                "type": "string"
      +              },
      +              "url": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "url",
      +              "title"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "model": {
      +          "type": "string"
      +        },
      +        "provider": {
      +          "enum": [
      +            "brave",
      +            "duckduckgo",
      +            "exa",
      +            "firecrawl",
      +            "none",
      +            "searxng"
      +          ],
      +          "type": "string"
      +        },
      +        "relatedQuestions": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "requestId": {
      +          "type": "string"
      +        },
      +        "searchQueries": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "sources": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "ageSeconds": {
      +                "type": "number"
      +              },
      +              "author": {
      +                "type": "string"
      +              },
      +              "publishedDate": {
      +                "type": "string"
      +              },
      +              "snippet": {
      +                "type": "string"
      +              },
      +              "title": {
      +                "type": "string"
      +              },
      +              "url": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "url",
      +              "title"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "usage": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "inputTokens": {
      +              "type": "number"
      +            },
      +            "outputTokens": {
      +              "type": "number"
      +            },
      +            "searchRequests": {
      +              "type": "number"
      +            },
      +            "totalTokens": {
      +              "type": "number"
      +            }
      +          },
      +          "type": "object"
      +        }
      +      },
      +      "required": [
      +        "provider",
      +        "sources"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "response"
      +  ],
      +  "type": "object"
      +}
  2. First observedv1.0.0

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering safety and side-effect profiles. The description adds context about selecting the 'first available search provider' and returning both source URLs and provider response, but it doesn't disclose potential variability or failure modes. This modest additional context earns a 3 given the annotations carry the main behavioral load.

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 a single, front-loaded sentence that states the action, provider-selection behavior, and return format without any redundant words. It is concise and well-structured, earning a top score.

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 output schema exists (not shown but indicated), so return-value details are presumably covered there. The description covers the core operation and return format, and annotations address safety. It could mention the implication of 'first available provider' (e.g., result variability) but this is a minor gap. Overall, it is sufficiently complete for an agent to call the tool correctly.

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 100%, with all six parameters (query, limit, recency, max_tokens, temperature, num_search_results) having descriptions in the schema. The description adds no parameter-specific detail beyond what the schema provides, so the baseline of 3 applies.

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 action (run one web query), the resource (through a search provider), and the outputs (formatted source URLs plus provider response). This is distinct from the sibling fetch_url, which implies fetching a specific URL, so 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 Guidelines3/5

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

The description implies this tool is for searching, but it does not explicitly state when to use it vs. alternatives like fetch_url, nor does it mention exclusions or prerequisites. The context is clear enough that an agent would infer usage, but no explicit guidance is provided.

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

Deploy Server

Other Tools