# MCPFax Web Extract

> Read any web page as clean text for a prompt, or list every link on it.

- name: com.mcpscores/web-extract
- version: 1.0.1
- connection class: R0 (autonomous)
- trust: 80/100 flags: no-repository
- quality: 79/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.mcpscores%2Fweb-extract
- tools: https://api.protogrid.dev/v1/servers/com.mcpscores%2Fweb-extract/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "web-extract": {
      "type": "http",
      "url": "https://web-extract.bowling-anthony.workers.dev/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 85
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-99% ~updated-50d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 79/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 71 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: read_page (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); page_links (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); request_data (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 601 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 4, about 601 tokens to load them all
- tool set hash: d181e8315041743937a8736af891836f
- badge: [![protogrid quality](https://protogrid.dev/badge/com.mcpscores/web-extract.svg)](https://protogrid.dev/servers/com.mcpscores/web-extract)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://web-extract.bowling-anthony.workers.dev/mcp (streamable-http, auth none, reachable true, uptime30d 0.99159664)

## Packages

_none_

## Tools (4)

- `demand_report`: FREE, no payment. The aggregate of what agents have told us they are looking for, most-requested first, with the categories nothing available yet serves.
- `page_links`: Every hyperlink on a page, resolved to absolute URLs, each with its anchor text and whether it stays on the same host. Use to crawl an index, find the real article behind a landing page, or enumerate a documentation table of contents before deciding what to read. Capped at 300 links. Costs $0.008 USDC per call via x402 on Base.
- `read_page`: Fetch a URL and return its readable text with scripts, styles, navigation and markup stripped, plus the title, description, site name and publication date from the page's own metadata. Use whenever you need the contents of a page rather than a search result about it. Output is capped so it fits a prompt — raise maxChars if you need more. JavaScript is not executed, so a page that renders entirely client-side returns its shell, and the character count tells you when that happened. A site that blocks automated clients is reported honestly and is NOT charged. Costs $0.008 USDC per call via x402 on Base.
- `request_data`: FREE, no payment. Describe in your own words the data you are trying to buy — anything, not just web pages — and get back whether we operate a service that supplies it, with the MCP endpoint if so. Every request is catalogued so repeatedly-requested data gets built. Nothing identifying is stored, only the words of the request.
