Skip to main content
Glama

fetch

Fetch full content from a MeteoSwiss webpage and convert to markdown or plain text. Use the search tool first to discover valid page URLs, then pass the full URL as the id parameter.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesIdentifier of a MeteoSwiss page to fetch. For this server the id is a full URL returned by the search tool. Example: https://www.meteoschweiz.admin.ch/klima/klimawandel/steigende-temperaturen.html
formatNoThe output format for the contentmarkdown
includeMetadataNoWhether to include metadata in the response

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesThe id the content was fetched for (the page URL)
urlYesCanonical URL field (matches ChatGPT Deep Research spec). For this server `url === id`.
textYesCanonical body field (matches ChatGPT Deep Research spec)
titleNoPage title
formatYesFormat of `text`
metadataNoPage metadata (present when includeMetadata is true)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / id / maxLength
      Added value: +2048
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "format": {
      +      "description": "Format of `text`",
      +      "enum": [
      +        "markdown",
      +        "text"
      +      ],
      +      "type": "string"
      +    },
      +    "id": {
      +      "description": "The id the content was fetched for (the page URL)",
      +      "type": "string"
      +    },
      +    "metadata": {
      +      "additionalProperties": false,
      +      "description": "Page metadata (present when includeMetadata is true)",
      +      "properties": {
      +        "contentType": {
      +          "type": "string"
      +        },
      +        "description": {
      +          "type": "string"
      +        },
      +        "keywords": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "language": {
      +          "type": "string"
      +        },
      +        "lastModified": {
      +          "type": "string"
      +        },
      +        "url": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "url"
      +      ],
      +      "type": "object"
      +    },
      +    "text": {
      +      "description": "Canonical body field (matches ChatGPT Deep Research spec)",
      +      "type": "string"
      +    },
      +    "title": {
      +      "description": "Page title",
      +      "type": "string"
      +    },
      +    "url": {
      +      "description": "Canonical URL field (matches ChatGPT Deep Research spec). For this server `url === id`.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "text",
      +    "format",
      +    "url"
      +  ],
      +  "type": "object"
      +}
  2. Changed3 schema fields changed
    • addedInput schema / properties / id
      Added value: +{
      +  "description": "Identifier of a MeteoSwiss page to fetch. For this server the id is a full URL returned by the search tool. Example: https://www.meteoschweiz.admin.ch/klima/klimawandel/steigende-temperaturen.html",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • removedInput schema / properties / url
      Removed value: -{
      -  "description": "Full URL of a MeteoSwiss page to fetch. Use the search tool first to discover valid URLs. Example: https://www.meteoschweiz.admin.ch/klima/klimawandel/steigende-temperaturen.html",
      -  "minLength": 1,
      -  "type": "string"
      -}
    • changedInput schema / required
      Previous value: -[
      -  "url"
      -]New value: +[
      +  "id"
      +]
  3. Changed3 schema fields changed
    • removedInput schema / properties / id
      Removed value: -{
      -  "description": "Full URL of a MeteoSwiss page to fetch. Use the search tool first to discover valid URLs. Example: https://www.meteoschweiz.admin.ch/klima/klimawandel/steigende-temperaturen.html",
      -  "minLength": 1,
      -  "type": "string"
      -}
    • addedInput schema / properties / url
      Added value: +{
      +  "description": "Full URL of a MeteoSwiss page to fetch. Use the search tool first to discover valid URLs. Example: https://www.meteoschweiz.admin.ch/klima/klimawandel/steigende-temperaturen.html",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "id"
      -]New value: +[
      +  "url"
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / id / description
      Previous value: -"The content ID or path to fetch"New value: +"Full URL of a MeteoSwiss page to fetch. Use the search tool first to discover valid URLs. Example: https://www.meteoschweiz.admin.ch/klima/klimawandel/steigende-temperaturen.html"
  5. First observed

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. It discloses that the id must be a full URL discovered via the search tool, that the tool converts content to markdown or plain text, and that it retrieves 'full content'. It does not mention side effects, but for a fetch operation the read-only nature is implicit and sufficient given the output schema.

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: the first states the purpose and output, the second provides the prerequisite workflow. No filler words, front-loaded with the actionable verb.

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 a simple fetch with an output schema and fully documented parameters. The description covers the core operation and the critical workflow constraint, but does not elaborate on error handling or rate limits, which are less essential given the schema richness.

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 input schema already documents all three parameters with descriptions, reaching 100% coverage, so the description is not required to elaborate. It does reinforce the id requirement (full URL from search tool), but adds no new semantics 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 uses specific verbs ('Fetch', 'convert') and identifies the resource ('MeteoSwiss webpage') and output formats (markdown/plain text). It clearly distinguishes this tool from the data-specific sibling tools (climate, weather, forecast, pollen, stations) and the search tool.

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 use the search tool first to discover valid page URLs before calling fetch, establishing a clear workflow. It does not explicitly state exclusions for using data tools, but the workflow guidance is strong enough for an agent to select this tool appropriately.

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.