Skip to main content
Glama

get_page_text

Extract clean article text from a Firefox tab, stripping navigation, banners, and sidebars for easy reading or quoting. Returns up to 200,000 characters of plain prose.

Instructions

Read a page as prose: plain text, no markup, no element handles. The extractor takes the article bodies when the page has real ones, otherwise , otherwise the block with the best text-to-markup ratio, falling back to the body, and throws away navigation, banners, footers, sidebars, toolbars, select menus, iframes and anything marked hidden or aria-hidden, so a long post arrives as paragraphs rather than as the furniture around them. Reach for it when the goal is to read or quote; reach for read_page or find when you need something clickable, since nothing here carries a ref. Output stops at 200000 characters, cut on a line break, and the closing note reports how long the page actually was - only a pathological page ever hits that. tabId is required, must name a tab this session owns, and has to be spelled out on a browser_batch step. A modal alert or confirm blocks the read until firefox_dialog answers it; no site approval is asked for, since the browser runs in its own profile.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tabIdYesRequired: the tab whose readable text you want. Valid ids come from tabs_context_mcp or firefox_status; tabs outside this session's group cannot be read, and a browser_batch step has to name the id itself.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden. It discloses extraction priorities, content filtering, truncation at 200000 characters, the closing note about actual length, modal blocking until firefox_dialog answers, and that no site approval is requested due to the browser profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with a clear first sentence, but it contains some stylistic redundancy and filler, such as 'so a long post arrives as paragraphs rather than as the furniture around them' and 'only a pathological page ever hits that.' These phrases add color but do not strictly earn their place.

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?

There is no output schema, but the description adequately explains the output format ('plain text, no markup'), the 200000-character truncation, and the closing note reporting actual length. It also describes extraction priorities and error-relevant behavior like modal blocking, though exact error formats are not specified.

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?

The only parameter, tabId, already has 100% schema coverage, but the description adds meaningful constraints beyond the schema: 'Valid ids come from tabs_context_mcp or firefox_status', 'tabs outside this session's group cannot be read', and 'a browser_batch step has to name the id itself.'

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 tool's purpose: 'Read a page as prose: plain text, no markup, no element handles.' It also explicitly distinguishes itself from sibling tools: 'Reach for it when the goal is to read or quote; reach for read_page or find when you need something clickable, since nothing here carries a ref.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

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

The description gives explicit when-to-use guidance and names alternatives: 'Reach for it when the goal is to read or quote; reach for read_page or find when you need something clickable.' It also notes important usage constraints like tab ownership, browser_batch self-naming, and modal-dialog blocking behavior.

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