protogrid

Search / dev.pagelens/pagewatch

Pagewatch

R0· no sign-in

Read a URL as clean markdown, screenshot a website, url to PDF. Web access for agents, no signup.

v0.2.3 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality77good
Trust93of 100
Uptime, 30 days100%
Latency p50524 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "pagewatch": {
      "type": "http",
      "url": "https://pagelens.dev/mcp"
    }
  }
}
claude mcp add --transport http pagewatch https://pagelens.dev/mcp
[mcp_servers.pagewatch]
url = "https://pagelens.dev/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pagewatch": {
      "type": "remote",
      "url": "https://pagelens.dev/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "pagewatch": {
      "type": "http",
      "url": "https://pagelens.dev/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=pagewatch&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vcGFnZWxlbnMuZGV2L21jcCJ9"
}
{
  "servers": {
    "pagewatch": {
      "type": "http",
      "url": "https://pagelens.dev/mcp"
    }
  }
}
{
  "mcpServers": {
    "pagewatch": {
      "httpUrl": "https://pagelens.dev/mcp"
    }
  }
}
extensions:
  "pagewatch":
    enabled: true
    name: "pagewatch"
    type: streamable_http
    uri: "https://pagelens.dev/mcp"
    timeout: 300

Quality 77 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene71 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: screenshot (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); read_page (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); pdf (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • pass
    tools.token_costabout 1,212 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependencies67 · weight 15
  • pass
    deps.known_vulnsno known advisory in 130 resolved packages
  • fail
    deps.mcp_sdk_version@modelcontextprotocol/sdk 1.30.1 has 1 known advisory (GHSA-6qxp-vccf-f47h); update @modelcontextprotocol/sdk to 1.31.0 or later
  • pass
    deps.resolvable[email protected], [email protected] resolved: 130 packages

5 tools, about 1,212 tokens to load them all · tool set a2c4de96b988 · checked 2026-10-19 10:52 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 93 / 100

provenance85
liveness100
freshness85
hygiene100

+repository +dns-namespace +website +reachable +uptime-100% ~updated-86d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

[email protected] npm97 dependencies, resolved · MCP SDK @modelcontextprotocol/sdk 1.30.1 · advisories checked 2026-10-19

advisoryseveritypackagefixed in
GHSA-6qxp-vccf-f47hMCP TypeScript SDK: OAuth client could send credentials to an authorization server chosen by the MCP serverhigh@modelcontextprotocol/[email protected]MCP SDK, directfixed in 1.31.0

[email protected] PyPI31 dependencies, resolved · MCP SDK mcp 2.2.0 · advisories checked 2026-10-19

No known advisory affects this dependency graph.

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://pagelens.dev/mcp streamable-httpnoneyes100%524 ms2025-11-252026-10-19
packageregistryversionruntimesecrets
pagewatch-mcpnpm0.1.0–PAGEWATCH_API_KEY
pagewatch-mcppypi0.1.1–PAGEWATCH_API_KEY

Tools (5)

balanceCheck 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 configure an Authorization header. api_key: an existing pagewatch bearer token, optional.
pdfRender 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.
read_pageLoad 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.
registerCreate 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 it as Authorization: Bearer <token> on this server. 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.
screenshotTake 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.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "dev.pagelens/pagewatch",
  "title": "Pagewatch",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://pagelens.dev/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "0.2.3",
  "packages": [
    {
      "version": "0.1.0",
      "transport": {
        "type": "stdio"
      },
      "identifier": "pagewatch-mcp",
      "registryType": "npm",
      "environmentVariables": [
        {
          "name": "PAGEWATCH_API_KEY",
          "isSecret": true,
          "description": "An existing key. Without one, the first call mints a free trial key and returns it."
        },
        {
          "name": "PAGEWATCH_BASE_URL",
          "default": "https://pagelens.dev",
          "description": "Point at a different pagewatch deployment."
        }
      ]
    },
    {
      "version": "0.1.1",
      "transport": {
        "type": "stdio"
      },
      "identifier": "pagewatch-mcp",
      "registryType": "pypi",
      "environmentVariables": [
        {
          "name": "PAGEWATCH_API_KEY",
          "isSecret": true,
          "description": "An existing key. Without one, the first call mints a free trial key and returns it."
        },
        {
          "name": "PAGEWATCH_BASE_URL",
          "default": "https://pagelens.dev",
          "description": "Point at a different pagewatch deployment."
        }
      ]
    }
  ],
  "repository": {
    "url": "https://github.com/toolshedlabs-hash/pagewatch-mcp",
    "source": "github"
  },
  "websiteUrl": "https://pagelens.dev",
  "description": "Read a URL as clean markdown, screenshot a website, url to PDF. Web access for agents, no signup."
}