Skip to main content
Glama

See what the reader is looking at

folio_presence
Read-onlyIdempotent

Shows what the reader is viewing now: the open page in each browser tab and the block under their pointer, with the start of its text, newest first.

Instructions

Show what the reader is looking at now: the page open in each browser tab and the block under their pointer with the start of its text, the most recent first. Use it when the reader means what is on their screen - this page, this paragraph; for what they read before use folio_reads. It reveals the reader's screen; a hidden tab shows nothing. While the reader pauses sharing in Folio, it answers only {paused: true, message}. Answers {paused: false, looking: [{page, block: {source, id, text}, at: ISO time}]}. A list cut to fit one answer adds omitted, the entries each list left out, and narrow, how to ask for less.

Input Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare this a read-only, idempotent, non-destructive, closed-world call, so the safety profile is covered. The description adds genuinely new behavior: hidden tabs yield nothing, and while the reader pauses sharing it returns only {paused: true, message} rather than failing. It also discloses that a list cut to fit one answer adds 'omitted' and 'narrow' fields. Minor gap: no mention of whether this requires the reader to be actively connected.

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?

Everything is front-loaded: what it returns, then when to use it versus folio_reads, then the paused case, then the exact response shape, then truncation metadata. Sentences are dense but each carries distinct information, and the two response shapes are spelled out compactly.

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 carry return semantics - and it does, giving both the paused envelope and the normal {paused, looking: [{page, block: {source, id, text}, at}]} structure. For a zero-parameter tool with full annotation coverage, nothing an agent needs in order to call or interpret it 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?

The tool takes zero parameters, which is the baseline-4 case; there is nothing for the description to disambiguate. The only notable point is that it advertises a 'narrow' hint in the response for asking for less, without a parameter to do so - a small source of ambiguity about whether the call can be tuned.

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 gives a specific verb and resource - what the reader is looking at now - and enumerates the payload: page per browser tab, block under the pointer with leading text, ordered most recent first. It then explicitly contrasts with folio_reads, so an agent can separate it from a sibling that returns reading history without opening either schema.

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?

It states the selecting condition plainly ('when the reader means what is on their screen - this page, this paragraph') and names the alternative for the other case ('for what they read before use folio_reads'). It also gives a negative condition - a hidden tab shows nothing - so the agent knows when a result will come back empty.

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