Skip to main content
Glama

Page weight report

page_weight_report
Read-only

Weighs a public page from its delivered HTML. Pass url. Reports HTML bytes (uncompressed, plus the server's reported transfer length when given), element count, link count and distinct link targets, image count with lazy-loaded and no-dimension counts, iframes, media, inline style and script bytes, and the number and uncompressed size of linked stylesheets and scripts (up to 10 stylesheets and 20 subresources are fetched, each up to 3 MB). Warns on thousands of links, large HTML, large DOM, many images or scripts. Reads up to 5 MB of HTML; if it stops early it says so, states how many bytes it read and what share of the page that is when the size is known, and treats every count as a minimum. Does not run script, so content added at runtime, images, fonts and media sizes are not included.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "url": "<url>"
    },
    "name": "page_weight_report"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlYesA public page URL to fetch.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.1/5.0
Behavior5/5

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

Annotations only cover safety (readOnly/openWorld/no destruct). The description goes far beyond: it discloses fetch budgets (10 stylesheets, 20 subresources, 3 MB each), the 5 MB HTML read cap, truncation behaviour (states bytes read and share of page, treats counts as minimums), warning thresholds, and the critical caveat that JS is not executed so runtime images/fonts/media sizes are excluded. This is exactly the operational context an agent needs and cannot get from 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 the core action, and nearly every clause carries substantive detail (limits, thresholds, truncation semantics). It is a dense single block rather than structured bullets, so it is slightly harder to scan, but there is little true padding — only the parenthetical about 'server's reported transfer length' is arguably optional.

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?

There is no output schema, so the description must describe return values itself — and it does comprehensively, listing every reported metric, the warning conditions, and the degraded/truncated return case. For a one-parameter read tool, nothing an agent needs in order to call it or interpret the result is missing.

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?

With one parameter at 100% schema coverage, the schema already carries the baseline. The description adds one meaningful constraint beyond it: the URL must be a *public* page (no auth wall), which affects whether the call will succeed. That is real added semantic value, though it is the only addition.

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 uses a specific verb and resource ('Weighs a public page from its delivered HTML') and then enumerates exactly which metrics are reported (HTML bytes, element/link/image counts, inline script/style bytes, subresource sizes). An agent can identify the tool's output shape immediately. It never names a sibling (e.g. site_performance_hints) to explicitly delineate scope, which is the only thing separating it from a 5.

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?

Usage is only implied: the phrase 'public page' and 'Does not run script' tell the agent it is for static-HTML analysis of unauthenticated URLs, so an agent can infer the situation. But there is no explicit when-to-use statement, no exclusions, and no routing to alternatives among the many audit_*/site_* siblings.

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