Skip to main content
Glama

Read a public page

well_get_public_page
Read-only

Read one public web page (a product page, a parcel tracking page) for its price, its stock state and its parcel state. It draws no card. Use it to answer "how much is this now", to check a watched product in a routine, or to read a parcel's state from a tracking link the person gave.

It reads only what the page publishes for machines (schema.org product and offer data, Open Graph price tags), with no browser and no sign-in, so a page that hides its price behind a script or a login returns no price. price is the amount and its ISO currency as the page states them; availability is in_stock, out_of_stock, pre_order, limited or discontinued; parcel_state is in_transit, out_for_delivery, delivered or problem. Each is null when the page does not state it.

Each call counts as one read of the day: at most 10 per member and 50 per workspace each UTC day. status: "refused" comes with refusal: member_daily_cap_reached or workspace_daily_cap_reached (try again tomorrow), cap_store_unavailable (nothing was read, try again later), not_a_public_page (not a public http(s) page) or page_unreachable. Never read the same page twice in one turn.

When the token authorizes one workspace, call this directly — no workspace call is needed first. When it authorizes several, this read will not guess which one you mean: pass workspace_id on the call.

Input Schema

NameRequiredDescriptionDefault
urlYesThe page to read, as the person gave it.
workspace_idNoTarget workspace. Omit when the token authorizes one workspace. Required when it authorizes several: this read reports one workspace's own figures and will not choose which.
conversation_idNoThe conversation id returned by the previous Well result, in its meta under well/conversation_id, in its structuredContent, or in its JSON text block. Pass it back on every call in the same conversation, including a call a card makes, so the chosen workspace and the earlier answers still apply. It decides the conversation on its own: nothing the host states about the session replaces it. Omit it only on the first call of a conversation.
workspace_scopeNoRestrict this call to the family: the token's primary workspace plus the company workspaces under it that you are a member of. Unrelated authorized workspaces drop out of the read; row reads merge across the family, while a per-workspace figure still reports exactly one workspace.

Output Schema

NameRequiredDescriptionDefault
urlYes
nameYes
errorNo
priceYes
statusYes
refusalYes
successYes
availabilityYes
parcel_stateYes
conversation_idNoThe conversation this result belongs to. Pass it back as the conversation_id argument on every later Well call in the same conversation.
newly_connectedNoTools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. The connected-line rule says when to tell an entry; when it does, one line per entry, in the person's language: "<name> is connected.". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later.
resolved_workspaceNoThe workspace that answered, when the caller named none and the token authorizes several.
conversation_id_noteNoPresent only when the server opened a fresh lane, stating that no choice recorded earlier was read.
conversation_id_sourceNoWhere the conversation id came from: the host's own request meta, the caller's argument, or a fresh lane the server opened.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

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

Goes well past readOnlyHint/openWorldHint: discloses that only machine-published data (schema.org, Open Graph) is read, that script- or login-hidden prices return null, and enumerates the daily quotas (10 per member, 50 per workspace per UTC day) with every refusal code explained, including that cap_store_unavailable read nothing. This is the behavioral detail an agent needs before spending a call.

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 purpose and the answerable questions, then scoping, then return shape, then quotas and refusals, then workspace handling. Dense and mostly waste-free, though the enumeration of availability and parcel_state values partly duplicates what the output schema already carries.

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?

For a read-only, open-world fetch with an output schema, the description covers the remaining risk surface: what cannot be read, what null means, quota consumption and every terminal refusal. Nothing needed to call it correctly or interpret a failure is missing.

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%, so the schema already documents url, workspace_id, conversation_id and workspace_scope. The description adds one genuinely new workflow fact — with a single-workspace token you call directly with no prior workspace call — but otherwise restates the schema's workspace and conversation rules, 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?

States a specific verb and resource ('Read one public web page') plus the exact data it returns (price, stock state, parcel state) and the exclusion 'It draws no card', which separates it from card-rendering siblings. An agent can tell what it is for without opening the schema.

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?

Gives concrete triggering situations ('how much is this now', checking a watched product in a routine, reading a parcel state from a tracking link) and a usage constraint ('Never read the same page twice in one turn'). It never names the alternative tools (e.g. the web-search or browser-run siblings), so the agent must infer which one to prefer when a page needs a script or login.

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