Skip to main content
Glama
adyoi
by adyoi

webfetch

Fetch public HTTP/HTTPS pages and return their title plus readable text, refusing private or loopback hosts; optionally store the page in the knowledge base.

Instructions

Fetch a public http/https URL and return its title + readable text. Private/loopback hosts are refused. Use ingest: true to also store the page in the knowledge base.

Input Schema

NameRequiredDescriptionDefault
urlYesAbsolute http/https URL.
ingestNoAlso store the page in the knowledge base.
sourceNoweb
max_charsNo
timeout_msNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.1.0

TDQS

B3.2/5.0
Behavior3/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 disclose two important traits: private/loopback hosts are refused, and ingest:true writes the page into the knowledge base. It omits other behavior an agent needs – what happens on timeout, that output is truncated by max_chars, and how fetch failures are surfaced.

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?

Three short sentences with no filler; the verb and return shape are front-loaded, and the constraint and the ingest flag follow in a sensible order. Minor loss only because the private-host rule could have been folded more tightly with the URL eligibility.

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?

There is no output schema, and the description does name the return fields, which is the most important gap filled. Still, for a 5-parameter network tool with no annotations and 40% schema coverage, the missing max_chars/timeout semantics and failure behavior leave it short of fully sufficient.

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 only 40%, so the description needs to compensate and does not: it explains url and ingest (both already documented in the schema) but says nothing about source, max_chars, or timeout_ms. The truncation default of 2000 chars in particular is invisible without reading the schema.

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 states a specific verb ('Fetch') plus resource ('public http/https URL') and the return payload ('title + readable text'). It is clear on its own, but it never distinguishes itself from the sibling browser_fetch or webfetch_validate, leaving an agent to guess which fetch tool applies.

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?

It gives one real usage signal – 'Use `ingest: true` to also store the page in the knowledge base' – and an implicit eligibility rule (public only, private/loopback refused). It offers no indication of when to prefer this over browser_fetch or when to validate first with webfetch_validate.

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