Skip to main content
Glama

Faceabot Web page reader

Server Details

Read any public web page as clean text, and files of public GitHub repositories. Free, no key.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.9/5.0

Scored across 2 tools

Disambiguation4/5

The two tools have clearly distinct inputs and purposes: read_github_file targets repository files by repo+path, while read_web_page targets arbitrary public URLs. There is minor conceptual overlap since a GitHub file is also reachable as a web page, but the descriptions make the intended use of each clear.

Naming Consistency5/5

Both tools follow the same consistent verb_noun snake_case pattern (read_github_file, read_web_page). There is no deviation in style or convention across the set.

Tool Count3/5

With only 2 tools the surface is thin, though it matches a narrowly scoped content-reading purpose. A couple more complementary readers (e.g. pagination handling or search) would make the set feel complete rather than minimal.

Completeness4/5

For reading public content the surface covers the core needs, and the tools clearly delegate out-of-scope cases (login-required pages, PDFs) to other Faceabot tools. Minor gaps remain, such as no explicit way to fetch subsequent pages of long content.

Available Tools

2 tools
read_github_fileRead a file from a public GitHub repositoryA
Read-onlyIdempotent
Inspect

Returns a file from a public GitHub repository (default: its README). Use when: you need a project's README, documentation or source file. Example: {"repo":"cloudflare/workers-sdk","path":"README.md"}

ParametersJSON Schema
NameRequiredDescriptionDefault
refNoBranch, tag or commit. Default: the default branch
pathNoFile path. Default: the README
repoYesowner/name, e.g. cloudflare/workers-sdk
startNo
max_charsNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description usefully adds that the repo must be 'public' (no private/auth path) and that README is the default target. It says nothing about rate limits, truncation via max_chars, or behavior when the file/repo does not exist.

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?

Three short lines: the operation, the when-to-use trigger, and a literal invocation example. Front-loaded and free of filler, and the example directly aids correct calling.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter read tool with no output schema, the description leaves important behavior unspecified: what the return value looks like, whether long files are truncated and how max_chars/start interact, and error behavior for missing repos or paths. Annotations cover the safety aspects, so what remains is a moderate but real gap.

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 coverage is 60%: ref, path and repo are documented in the schema, while start and max_chars carry only constraints and defaults. The description restates the path default and supplies a concrete example, but does not explain the windowing/truncation semantics of start and max_chars, so it only partially compensates for the gap.

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?

States a specific verb and resource ('Returns a file from a public GitHub repository') and adds the default-readme behavior, so the purpose is unambiguous. It never names the sibling read_web_page or contrasts the two, so an agent gets no help distinguishing them from the description alone.

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?

The 'Use when: you need a project's README, documentation or source file' line gives a clear triggering context. There are no exclusions or named alternatives (e.g., when to prefer read_web_page for non-GitHub URLs), which keeps it below a 5.

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

read_web_pageRead a web pageA
Read-onlyIdempotent
Inspect

Reads a public web page and returns its title and main text as clean plain text (menus, scripts and ads removed), in pages of up to 50,000 characters. Use when: you need the content of an article, a documentation page, a blog post or any public page. Not for: pages that need a login; PDFs (use the Faceabot PDF tool). Example: {"url":"https://example.com"}

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPublic https address of the page
startNo
max_charsNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered structurally. The description adds genuinely useful behavior beyond that: it strips menus/scripts/ads, returns clean plain text, and chunks output into pages of up to 50,000 characters, which signals truncation. It stops short of stating rate limits, retry behavior, or how to detect that more pages remain.

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?

Three front-loaded sentences using 'Use when:' / 'Not for:' / 'Example:' scaffolding, with zero filler. The leading sentence carries the core purpose and return format before any qualifications.

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?

With no output schema, the description correctly takes on the job of describing the return value (title + main text, plain text, paginated). Combined with the usage boundaries this is nearly complete for a three-parameter read tool; the only shortfall is that pagination mechanics ('start') are implied rather than spelled out.

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 only 33%: 'url' is documented in the schema, but 'start' and 'max_chars' have no descriptions there. The description partially compensates by revealing the 50,000-character page ceiling (which maps to max_chars' maximum) and by implying multi-page retrieval, but it never explains 'start' or the default 15000, so the compensation is incomplete.

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 states a concrete verb and resource ('Reads a public web page') and specifies exactly what comes back ('its title and main text as clean plain text'). The 'public web page' scope plus the article/docs/blog framing cleanly separates it from the sibling read_github_file, which targets repository files rather than arbitrary public URLs.

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 gives explicit positive triggers ('you need the content of an article, a documentation page, a blog post or any public page') and explicit exclusions ('Not for: pages that need a login; PDFs (use the Faceabot PDF tool)'), routing the agent to an alternative tool for the excluded case. Nothing about when to select this tool is left to inference.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • First observedread_github_file
    • First observedread_web_page

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Read any web page and search the web for free. Routes each page across 28 web tools cheapest first (plain HTTP, Jina Reader, Chromium, stealth browsers) and checks it's the page you asked for before returning it. Paid tools stay off unless you add keys.
    3,554 PyPI
    88
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to read web pages reliably, returning clean markdown content, hyperlinks, and metadata without navigation or ad noise.
    3
    6 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to fetch public web pages and return their main content as clean Markdown, including JavaScript-rendered pages with navigation, ads, and boilerplate stripped. Supports OAuth sign-in and a read-only tool for pulling docs, articles, and product pages into chat or knowledge bases.
    221 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Read any public web page as a clean AIDocument: Markdown plus title, description, and structure, with navigation and boilerplate stripped. Reads resolve through Lyrenth's shared cache, so it is far fewer tokens than raw HTML and origin-friendly.
    3
    59 npm
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources