Skip to main content
Glama
@writerslogic/ai-agents-mcp

@writerslogic/ai-agents-mcp

Official

page_contents

Fetches a public web page and converts its main content into clean GitHub-flavored Markdown or plain text for AI agents to feed to models.

Instructions

Page contents: URL to clean Markdown or text. Fetches one public web page and returns its main content as clean GitHub-flavored Markdown or plain text, with title, canonical URL, language, absolute links and content hashes, for agents that feed pages to a model. Deterministic, no model. Does not run JavaScript (client-rendered pages come back sparse), does not follow links, does not consult robots.txt, and drops navigation, footers, sidebars and forms.

Cost: 0.01 USDC per call, paid automatically over x402 on Base when AGENT_PRIVATE_KEY is configured and the price is within MAX_USDC_PER_CALL.

Input Schema

NameRequiredDescriptionDefault
urlYesPublic http(s) URL.
formatNomarkdown
max_charsNoContent is cut to this many characters; truncated says whether it was.
include_linksNoKeep Markdown links and return a links list (at most 200).
include_tablesNoConvert data tables to GFM tables; false drops them.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.1/5.0
Behavior5/5

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

With annotations present, the description still adds substantial context the annotations don't convey: determinism ('no model'), content pruning (navigation, footers, sidebars, forms dropped), robots.txt not consulted, and the 0.01 USDC per-call cost paid via x402 requiring AGENT_PRIVATE_KEY and bounded by MAX_USDC_PER_CALL. That payment/auth requirement also explains why readOnlyHint is false despite this being a fetch, so there is no contradiction.

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?

The definition is front-loaded: purpose first, then behavioral limits, then cost. Every clause carries information, though the closing cost paragraph is long and the title merely restates the opening sentence, adding a little redundancy for a tool description of this length.

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, and the description compensates by enumerating the return shape: title, canonical URL, language, absolute links and content hashes, plus the truncation signal. Combined with the disclosed JS/robots limitations and the payment prerequisite, an agent has everything needed to call it and interpret results.

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 already 80%, covering url, max_chars, include_links and include_tables, so the baseline of 3 applies. The description mentions 'plain text' vs Markdown and a links list, but adds no format, default, or boundary detail beyond what the schema already documents.

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?

The description leads with a specific verb and resource: 'Fetches one public web page and returns its main content as clean GitHub-flavored Markdown or plain text.' It also implicitly separates itself from crawler/search siblings by stating 'does not follow links' and 'does not run JavaScript.' However, it never names a concrete sibling (e.g., page_capture, doc_to_markdown, web_search), so routing between the many similar fetch/convert tools is still left partly to inference.

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 target audience and use case are explicit: 'for agents that feed pages to a model,' and it warns that client-rendered pages come back sparse, which tells the agent when results will be poor. What's missing is a named alternative for those cases (no 'use X for JS-heavy pages'), so the guidance is clear but not fully prescriptive.

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