pagewatch-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pagewatch-mcpRead https://example.com and return as markdown"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-name: dev.pagelens/pagewatch
pagewatch-mcp
An MCP server that gives an agent a real browser. Three tools:
read_pageturns any url into clean markdownscreenshotreturns a png of the rendered pagepdfturns a url or raw html into a pdf
Plus register and balance for managing your key.
It runs javascript, so it works on pages that a plain http fetch returns empty. It respects robots.txt and refuses sites that block automation instead of trying to defeat them.
This is the Node build. There is an identical Python one on PyPI, also called
pagewatch-mcp.
No signup
Your first call mints a free trial key and returns real content. There is no form for your agent to get stuck on. When the trial runs out, one email confirmation by a human unlocks 200 more free credits, still free.
Billing is metered, but there is no payment processor connected right now, so nothing is ever charged.
Related MCP server: WebScrape MCP Server
Install
Add this to your MCP client config:
{
"mcpServers": {
"pagewatch": {
"command": "npx",
"args": ["-y", "pagewatch-mcp"]
}
}
}That is it. npm fetches the package on first run, and your first tool call returns real content. Node 18 or newer.
Or install it yourself:
npm install -g pagewatch-mcp{
"mcpServers": {
"pagewatch": { "command": "pagewatch-mcp" }
}
}Already hosted
If you would rather not run anything, the same tools are live at
https://pagelens.dev/mcp as a remote MCP server.
Configuration
Everything is optional.
Variable | Default | What it does |
| none | An existing key. Without one, the first call mints a free trial key and hands it back. |
|
| Point at a different pagewatch deployment. |
|
| Attribution tag recorded when a key is registered. |
What is in this package
It is deliberately thin. Every tool is one https call to a documented /v1 route
on the pagewatch API. There is no browser, no scraping logic and no credential
store in this package. The whole server is one file, index.js. You can read it in
a couple of minutes and know exactly what it sends and where. The only dependency
is the official MCP SDK.
License
MIT
Available Tools
5 toolsbalanceA
Check the remaining free credits on your pagewatch key, plus the per-call prices and, if the key is not switched on yet, the free activation link to give your human. Pass api_key if you did not set PAGEWATCH_API_KEY.
api_key: an existing pagewatch bearer token, optional.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that it returns credits, prices, and an activation link if needed. It does not mention side effects or idempotency, but the read-only nature is implied.
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?
The description is two sentences plus a parameter line, concise and front-loaded with the main action. Every sentence adds essential information.
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?
Given the simple tool with a single optional parameter and no output schema, the description adequately covers what the tool does and how to use it. It explains the return values (credits, prices, activation link) sufficiently.
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 0% schema description coverage, the description fully compensates by explaining the api_key parameter's purpose and when to provide it (if environment variable is not set), adding significant value beyond the schema.
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 clearly states that the tool checks remaining free credits, per-call prices, and provides an activation link if the key is not activated. It uses specific verbs and resource, and is distinct from sibling tools which operate on pages.
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 explains when to use the tool (to check balance info) and how to pass the api_key if the environment variable is not set. However, it does not explicitly mention when not to use it or provide alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pdfA
Render a web page (by url) or raw html into a pdf and return it as base64 pdf data. Provide exactly one of url or html. Respects robots.txt for url input. Pass api_key if you have a pagewatch key, otherwise a free trial key is created for you and returned.
url: the page to convert, optional. html: raw html to convert, optional (provide url or html, not both). api_key: an existing pagewatch bearer token, optional. paper: A4, Letter, Legal or A3. landscape: landscape orientation.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| html | No | ||
| paper | No | Letter | |
| api_key | No | ||
| landscape | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description fully carries the behavioral burden. It discloses that it respects robots.txt, returns base64 data, and handles api_key with free trial creation. It does not mention failure modes or rate limits, but these are acceptable for a simple conversion tool.
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?
The description is concise and front-loaded with the core purpose. It uses a brief paragraph followed by a clear list of parameter descriptions with no redundant information.
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?
Despite no output schema or annotations, the description provides all necessary context: input options, output format, important behaviors like robots.txt and api_key handling, and parameter constraints. It is complete for this tool's complexity.
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?
The description explains all five parameters in detail, including the mutually exclusive nature of url/html, allowed paper sizes, landscape orientation, and api_key behavior. This adds significant meaning beyond the bare schema, compensating for 0% schema coverage.
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 clearly states the tool renders a web page or raw HTML into a PDF and returns it as base64 data. It specifies the verb 'Render' and the resource, and it is distinct from sibling tools like read_page and screenshot.
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 provides clear context for when to use the tool (converting URL or HTML to PDF) and explains the mutually exclusive requirement. However, it does not explicitly compare to sibling tools or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_pageA
Load a web page in a real browser and return its main content as clean markdown, with the title, canonical url and basic metadata. Handles javascript-rendered pages. Respects robots.txt and refuses sites that block automation rather than trying to defeat them. Pass api_key if you already have a pagewatch key, otherwise a free trial key is created for you on the first call and returned in the response.
url: the page to read (http or https). api_key: an existing pagewatch bearer token, optional. wait_for_selector: css selector to wait for before reading, optional. scroll: scroll the page to trigger lazy-loaded content, optional.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| scroll | No | ||
| api_key | No | ||
| wait_for_selector | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behaviors: JavaScript rendering, robots.txt compliance, automatic trial key creation, and refusal to bypass blocked sites. No annotations exist, so description carries full burden well.
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?
Well-structured with main description followed by parameter details. Some redundancy (e.g., 'optional' repeated) but overall efficient and easy to parse.
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?
Covers return format (clean markdown, metadata), auth behavior, and JS handling. Missing specifics on error scenarios or limitations, but adequate for typical use.
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 0%, but description explains each parameter's purpose (url required, api_key optional with auto-creation, wait_for_selector for CSS selector, scroll for lazy content). Adds significant meaning.
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?
Clearly states it loads a web page and returns clean markdown with metadata, differentiating from siblings like screenshot, pdf, register, and balance by focusing on text content extraction.
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?
Provides context for use: handles JavaScript, respects robots.txt, and explains optional parameters. Lacks explicit when-not-to-use or alternatives, but sibling tools are distinct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registerA
Create a pagewatch api key for yourself. Free, no signup and no human form. Returns a bearer token that starts with a small free trial so your first read_page, screenshot or pdf works right away. When the trial runs out, hand the returned verification_uri_complete to your human, who confirms one email to unlock 200 more free credits (still free, nothing to pay). Reuse the token by passing it as api_key, or set PAGEWATCH_API_KEY. Nothing is ever charged: pagewatch has no payment processor connected.
label: a short name for this key, optional. purpose: why you want web access, shown to your human on the activation page.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | ||
| purpose | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses key behavioral traits: free, no signup, returns bearer token with trial, human verification for more credits, no payment processor connected. It doesn't mention any side effects or destructive actions, but for a registration tool, this is sufficient.
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?
The description is somewhat verbose and stream-of-consciousness, containing multiple sentences about the free trial and human verification. It could be more concise while preserving the essential information. The first sentence does front-load the purpose.
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?
Given the tool's simplicity (2 optional parameters, no output schema, no annotations), the description is quite complete. It explains the return value (bearer token, verification_uri_complete), how to use the result, and parameter purposes. It lacks details on errors or multiple calls, but for a registration tool, it's sufficient.
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?
The input schema has no descriptions (0% coverage). The description adds meaning: 'label: a short name for this key, optional' and 'purpose: why you want web access, shown to your human on the activation page.' This provides context beyond the schema.
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 clearly states it creates a Pagewatch API key, with specific verb+resource ('Create a pagewatch api key'). It distinguishes from sibling tools (read_page, screenshot, pdf, balance) which use the key.
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 explains the usage flow: first register to get a token, then use it with other tools. It also tells what to do when the trial runs out (hand verification_uri_complete to your human). However, it doesn't explicitly state 'use this tool before the others' or mention prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenshotA
Take a screenshot of a web page rendered in a real browser and return it as base64 image data (png by default, jpeg optional), with the final url and pixel size. Consent overlays are hidden so the shot shows the page. Respects robots.txt. Pass api_key if you have a pagewatch key, otherwise a free trial key is created for you and returned.
url: the page to capture. api_key: an existing pagewatch bearer token, optional. full_page: capture the entire scrollable page, not just the viewport. width, height: viewport size in pixels. format: png or jpeg. wait_for_selector: css selector to wait for before capturing, optional.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| width | No | ||
| format | No | png | |
| height | No | ||
| api_key | No | ||
| full_page | No | ||
| wait_for_selector | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses consent overlay hiding, robots.txt compliance, free trial key creation, and return data format. With no annotations provided, this is thorough, though it omits error handling and authentication requirements beyond the optional api_key.
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?
The description is efficiently structured: opens with the core purpose and result, then lists parameter details. Every sentence adds value, no redundancy.
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?
Given no output schema, the description adequately explains the return value (base64 image, final URL, pixel size) and the free trial key. All parameters are covered, and behavioral details are included. No significant gaps.
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?
Each of the 7 parameters is explicitly explained in the description, including default values and optional behavior. The schema has no descriptions (0% coverage), so the description fully compensates, adding meaning to url, api_key, full_page, width, height, format, and wait_for_selector.
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?
Description clearly states the tool captures a screenshot of a web page in a real browser and returns base64 image data, final URL, and pixel size. It is distinct from sibling tools like read_page and pdf.
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?
No explicit when-to-use or comparison to alternatives is given. Usage is implied (visual capture), but the description does not guide the agent away from using this tool when text extraction (read_page) or PDF generation (pdf) is more appropriate.
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. Dates show when Glama detected each change.
5 tool updates
v0.1.0- First observed
balance - First observed
pdf - First observed
read_page - First observed
register - First observed
screenshot
TDQS
Each tool serves a distinct purpose: read_page returns markdown content, screenshot returns an image, pdf returns a PDF, register creates an API key, and balance checks credits. No overlap between tools.
Names are all lowercase and use clear terms, but there is slight inconsistency: read_page uses an underscore while screenshot, pdf, register, and balance are single words. The pattern is still predictable and readable.
With 5 tools covering web page extraction (content, screenshot, pdf) and account management (register, balance), each tool earns its place without being excessive or insufficient.
The tool surface fully covers the domain: fetching web content in multiple formats, plus account registration and credit checking. No obvious gaps within the service's scope.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Read a URL as clean markdown, screenshot a website, url to PDF. Web access for agents, no signup.
Docs: https://docs.keenable.ai/mcp-server Keenable is a free, remote MCP server that gives agents access to the web index. Search the web with ranked results and date/site filters, then fetch any indexed page as clean markdown. Works out of the box with no account or API key.
MCP server (stdio): fetch web pages as clean readable markdown via the AgentForge API
Scrape, crawl and search the web for AI agents via MCP.
Related MCP Servers
- AlicenseAqualityCmaintenanceAn MCP server that fetches web pages and extracts clean, AI-friendly Markdown content using Mozilla Readability. It provides secure web access for LLMs with built-in SSRF protection and automated content cleaning for improved context retrieval and summarization.1311MIT
- FlicenseNot gradedqualityCmaintenanceMCP server that enables AI agents to search the web and extract clean Markdown content, with support for JavaScript rendering, structured data extraction, and screenshots.1-
- FlicenseNot gradedqualityBmaintenanceMCP server that converts web pages to clean Markdown for LLMs via two paid tools: surface_markdown_parser and stealth_markdown_parser.609-
- AlicenseNot gradedqualityBmaintenanceA public MCP server that lets AI agents read live web pages as clean Markdown, with tools to fetch, search, extract metadata, and extract links from URLs.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/toolshedlabs-hash/pagewatch-mcp-node'
If you have feedback or need assistance with the MCP directory API, please join our Discord server