Skip to main content
Glama

read_tab

Read a browser tab's content as markdown, text, or HTML, optionally limiting to a specific element and character budget for focused, cost-efficient extraction.

Instructions

Read a tab's content, converted to markdown and capped in size.

Args: tab_id: Exact tab id from list_tabs. Prefer url_pattern. url_pattern: Regex matched against tab URLs. mode: 'readable' (markdown, boilerplate stripped), 'text', or 'html'. selector: Read only this element's subtree. Use it — it is the cheapest way to keep a read small and on-topic. max_chars: Character budget. Defaults to the server's --max-chars. include_links: Keep links as markdown in 'readable' mode.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNoreadable
tab_idNo
selectorNo
max_charsNo
url_patternNo
include_linksNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/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 key behaviors: conversion to markdown, size capping, mode-specific output (readable strips boilerplate, text, html), and link handling. It also mentions the max_chars default. It does not cover error cases or permissions, but for a read-only operation, this is reasonably transparent.

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?

The description is compact and well-structured: a one-sentence purpose followed by a clean list of arguments with brief but informative explanations. Every sentence contributes value, and the most important usage guidance (selector use) is embedded in the parameter list without bloat.

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?

Given that an output schema exists, the description does not need to detail return values. It covers all six parameters, gives selection guidance between tab_id and url_pattern, and explains the mode and capping behavior. It could mention prerequisites like needing an active tab or what happens if no tab matches, but overall it is quite complete for a read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description fully compensates by explaining each parameter: tab_id, url_pattern, mode, selector, max_chars, and include_links. It adds semantics beyond the schema, such as 'Prefer url_pattern', 'Defaults to the server's --max-chars', and what 'readable' mode does. This is thorough parameter documentation.

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 opens with a clear verb and resource: 'Read a tab's content, converted to markdown and capped in size.' This distinguishes it from siblings like list_tabs, query_dom, and eval_js, which have different purposes. It is specific enough that an agent can immediately understand what the tool does.

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?

The description offers internal usage tips, such as 'Prefer url_pattern' for selecting between tab_id and url_pattern, and advises using the selector because it is 'the cheapest way to keep a read small and on-topic.' However, it does not explicitly contrast with sibling tools like query_dom or eval_js, leaving the when-not-to-use-this-tool guidance implied rather than explicit.

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