PageWatch - page-to-data extraction and change monitoring
Server Details
Extract prices, lists, tables, events from static pages and watch them for changes.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: extract_page for one-off extraction, watch_page for creating a monitor, and get_changes for reading a monitor's state and history. There is no overlap in resource or action, so an agent can select unambiguously.
All three tools follow a consistent snake_case verb_noun pattern (extract_page, get_changes, watch_page). The convention is predictable and readable throughout.
Three tools is a reasonable, focused surface for a narrow extract-and-monitor service, and each tool clearly earns its place. It is on the thin side, but not so minimal as to feel arbitrary.
The surface covers creation (watch_page), extraction (extract_page), and reading changes (get_changes), but omits monitor lifecycle management: there is no list, delete, pause, or update tool despite watch_page returning a manage token and mentioning limits. Agents will be unable to manage or clean up monitors they create.
Available Tools
3 toolsextract_pageARead-onlyInspect
Fetch one public static web page and extract structured data from it (text, attr, list, table, price, events, page, links, json). Free tier: 30 calls per day per client. No JavaScript rendering.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | ||
| url | Yes | ||
| attr | No | Attribute name for mode=attr. | |
| mode | No | What to extract. Default text for extract_page, page for watch_page. | |
| paid | No | true: use the paid endpoint (x402). The result is the payment requirements unless a payment header is sent. | |
| match | No | mode=links: regular expression filter. | |
| fields | No | mode=list: {"name": "css" or "css@attr"}. | |
| jsonpath | No | mode=json: JSONPath-lite such as $.a.b[0]. | |
| sameHost | No | ||
| selector | No | CSS selector (required for text, attr, list). | |
| tableIndex | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, and the description goes further by disclosing the free-tier rate limit (30 calls/day per client) and the no-JS-rendering limitation, both of which materially affect invocation decisions. It stays silent on failure/empty-extraction behavior, which keeps it out of the top score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and tightly packed with the mode list, rate limit and rendering constraint. No sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter tool with no output schema and only 64% schema documentation, the description covers the essentials but leaves gaps: several extraction modes (table, events, price, json) are named without clarifying their behavior, and the paid/x402 path is not explained beyond what the schema says.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 64% and the schema already documents the enum values, selector requirements, match, jsonpath and paid behavior. The description's mode list largely restates the enum and adds nothing about all, sameHost, tableIndex, or how fields/tableIndex interact. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('fetch') and resource ('one public static web page') plus the extraction outcome, and the word 'static' plus the enumerated modes signals a one-shot scrape. It does not explicitly name watch_page, which is the closest sibling, so differentiation from it is left to the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states useful operating constraints ('no JavaScript rendering', 30 free calls/day) that imply when this tool fits, but never says when to prefer watch_page or get_changes instead, nor what to do when the page requires JS.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_changesBRead-onlyInspect
Read the latest state and the change log of a monitor by id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds some behavioral context by specifying that the tool returns both latest state and change log, but it omits pagination behavior, whether the result is bounded by the limit parameter, and any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. It states the operation and object efficiently, making it easy for an agent to parse at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with no output schema and no parameter descriptions in the schema, the description is too thin. It never explains the limit parameter, does not clarify what a monitor is relative to the page-focused siblings, and provides no guidance on return size or pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the semantic burden. It only indicates that an id identifies the monitor; the limit parameter, including its 1–50 range and meaning as a change-log count, is entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Read) and resource (latest state and change log of a monitor by id), so the tool's function is clear. However, it does not explicitly differentiate itself from the sibling tools extract_page and watch_page, leaving resource boundaries implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no when-to-use guidance, no exclusions, and no comparison to alternatives such as extract_page or watch_page. Usage is only implied by the verb and resource, which is insufficient for an agent choosing among three tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
watch_pageBInspect
Create a monitor that checks a public page on a schedule and records changes. Returns monitor id, manage token (shown once), feed and events URLs. Free plan: checks every 60 minutes or slower, 3 active monitors per client, 30 days.
| Name | Required | Description | Default |
|---|---|---|---|
| all | No | ||
| url | Yes | ||
| attr | No | Attribute name for mode=attr. | |
| mode | No | What to extract. Default text for extract_page, page for watch_page. | |
| paid | No | true: use the paid endpoint (x402). The result is the payment requirements unless a payment header is sent. | |
| match | No | mode=links: regular expression filter. | |
| fields | No | mode=list: {"name": "css" or "css@attr"}. | |
| jsonpath | No | mode=json: JSONPath-lite such as $.a.b[0]. | |
| sameHost | No | ||
| selector | No | CSS selector (required for text, attr, list). | |
| tableIndex | No | ||
| webhook_url | No | https URL for signed change notifications. | |
| interval_minutes | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false and openWorldHint=true, so the description carries real weight here and delivers: it discloses the returned monitor id, a manage token that is shown only once, feed/events URLs, and concrete free-plan limits (60-minute minimum interval, 3 active monitors, 30-day retention). It still omits auth requirements and what happens when a check fails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the action, then the return values, then the plan limits. Every clause carries information; the 'Free plan: ...' fragment is terse but readable and earns its place as quota context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter, nested-object, no-output-schema tool, the description usefully covers the return shape and plan limits, but leaves most parameter behavior and the paid/x402 flow unexplained. An agent could invoke it with just url, but could not confidently use modes or webhooks from this text alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 13 parameters and only 62% schema description coverage, the description should compensate, but it explains none of them — no mention of mode, selector, jsonpath, fields, webhook_url, or paid. The single hint is indirect: the free-plan '60 minutes or slower' note maps to interval_minutes. That is far short of what 13 params at moderate coverage require.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — 'Create a monitor that checks a public page on a schedule and records changes' — which is unambiguous and clearly distinct from a one-shot extraction. It does not explicitly name extract_page or get_changes as siblings, so an agent must infer the recurring-vs-once distinction rather than being told.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The scheduled/recording nature implies when this tool is appropriate versus extract_page, but no alternative is named and no when-not-to-use condition is given. The plan-tier constraints are stated, which is useful context, but they are quota facts rather than routing guidance.
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.
3 tool updates
- First observed
extract_page - First observed
get_changes - First observed
watch_page
Related MCP Connectors
Recurring webpage change, price, inventory and metadata monitoring for autonomous agents.
Detect what changed on a page, sitemap or feed since the last check, with a diff and email alert
Track page and price changes over time: diffs, history, and alerts through simple tracking
Watch a public web page for changes when your agent cannot stay running. Hourly checks, signed diffs
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables tracking webpage content and price changes over time, including diffs, historical records, and alerts. Supports protected pages with automated browser rendering and anti-bot handling.-
- FlicenseNot gradedqualityCmaintenanceEnables monitoring of website changes through contracts, with automatic extraction, semantic diffing, and healing, triggering alerts and actions via email, Slack, or Telegram.-
- AlicenseAqualityDmaintenanceEnables monitoring web pages for changes using Playwright, storing snapshots in SQLite, and optionally analyzing changes with an LLM for business impact assessment.5MIT
- AlicenseNot gradedqualityDmaintenanceAPI-first website change detection with native MCP supportMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.