# io.github.vojtisprime11/web-fetcher (npm · mcp-server-web-fetcher)

Turns any web page into clean Markdown, page metadata and classified links for LLMs.

- Trust score: 64/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `mcp-server-web-fetcher`: 64/100 (this document), [markdown](https://verifymcp.io/servers/vojtisprime11-web-fetcher/mcp-server-web-fetcher.md), [page](https://verifymcp.io/servers/vojtisprime11-web-fetcher/mcp-server-web-fetcher)

## Channel facts

- Registry: `npm`
- Package: `mcp-server-web-fetcher`
- Version: `0.1.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (119 of 124), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (119 of 124), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 3 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 70/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 731 tokens (~243/item across 3 items; 3 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### Claude

```bash
claude mcp add vojtisprime11-web-fetcher -- npx -y mcp-server-web-fetcher
```

### Codex

```bash
codex mcp add vojtisprime11-web-fetcher -- npx -y mcp-server-web-fetcher
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "vojtisprime11-web-fetcher": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "mcp-server-web-fetcher"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add vojtisprime11-web-fetcher --command npx --arg -y --arg mcp-server-web-fetcher
```

### Hermes

```yaml
mcp_servers:
  vojtisprime11-web-fetcher:
    command: "npx"
    args: ["-y", "mcp-server-web-fetcher"]
```

### Other

```json
{
  "mcpServers": {
    "vojtisprime11-web-fetcher": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-server-web-fetcher"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 64, +46)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Security disclosure: fail → unverified
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional] First check of Schema quality: unverified
- [functional] Licence: MIT

### 2026-08-01 (score 18, −7)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-31 (score 25)

First indexed and scored.

## MCP tools (3)

### `fetch_page_markdown` (~243 tokens)

Fetch page as Markdown

Fetch a web page and convert it to clean Markdown for reading or analysis. Removes scripts, styles, ads and (by default) navigation chrome, resolves relative links to absolute URLs, and keeps tables, code blocks and lists intact. Long pages are paginated: when `truncated` is true, call again with `startIndex: nextStartIndex`.

Input parameters:

- `includeImages` (boolean): Keep images as Markdown image syntax.
- `includeLinks` (boolean): Keep Markdown links. When false, link text is inlined as plain text.
- `includeMetadata` (boolean): Include a short metadata summary (title, description, canonical, language).
- `mainContentOnly` (boolean): Strip navigation, headers, footers and sidebars, keeping the densest content block.
- `maxLength` (integer): Maximum number of Markdown characters to return in one call.
- `startIndex` (integer): Character offset to start from. Use `nextStartIndex` to page through long pages.
- `timeoutMs` (integer): Request timeout in milliseconds (1000-120000).
- `url` (string, required): Absolute http(s) URL of the page to fetch.

Output parameters:

- `bytesDownloaded` (integer)
- `contentType`
- `elapsedMs` (integer)
- `endIndex` (integer)
- `fromCache` (boolean)
- `markdown` (string)
- `markdownLength` (integer)
- `metadata`
- `nextStartIndex`: Pass as `startIndex` to fetch the next chunk, or null when complete.
- `redirects` (array)
- `requestedUrl` (string)
- `startIndex` (integer)
- `status` (integer)
- `title`
- `totalLength` (integer): Length of the full Markdown document.
- `truncated` (boolean)
- `url` (string): Final URL after redirects.
- `wordCount` (integer)

### `extract_metadata` (~170 tokens)

Extract page metadata

Extract structured metadata from a web page without downloading it twice: title, meta description, canonical URL, language, author, publish dates, Open Graph and Twitter card tags, JSON-LD blocks, RSS/Atom feeds, hreflang alternates, the h1-h6 outline and the raw HTTP response headers. Use this to classify or summarise a page cheaply before fetching its full text.

Input parameters:

- `includeHeadings` (boolean): Include the h1-h6 outline.
- `includeHttpHeaders` (boolean): Include response headers (lower-cased keys).
- `includeJsonLd` (boolean): Include parsed JSON-LD blocks.
- `timeoutMs` (integer): Request timeout in milliseconds (1000-120000).
- `url` (string, required): Absolute http(s) URL of the page to fetch.

Output parameters:

- `alternates` (array)
- `author`
- `canonical`
- `charset`
- `contentType`
- `description`
- `favicon`
- `feeds` (array)
- `fromCache` (boolean)
- `headings` (array)
- `httpHeaders`
- `jsonLd` (array)
- `language`
- `modifiedTime`
- `openGraph` (object)
- `publishedTime`
- `redirects` (array)
- `requestedUrl` (string)
- `robots`
- `status` (integer)
- `title`
- `twitter` (object)
- `url` (string)
- `wordCount` (integer)

### `extract_links` (~173 tokens)

Extract page links

List the links on a web page as absolute URLs, each flagged as internal (same site) or external, with anchor text, title, rel and nofollow status. Supports scope filtering, de-duplication and a result limit — useful for crawling a documentation tree, auditing outbound links or finding next pages.

Input parameters:

- `deduplicate` (boolean): Collapse repeated URLs to a single entry.
- `includeAnchors` (boolean): Include in-page fragment links such as "#section".
- `limit` (integer): Maximum number of links to return.
- `scope` (string): Restrict results to same-site links, off-site links, or return both.
- `timeoutMs` (integer): Request timeout in milliseconds (1000-120000).
- `url` (string, required): Absolute http(s) URL of the page to fetch.

Output parameters:

- `externalCount` (integer)
- `fromCache` (boolean)
- `internalCount` (integer)
- `links` (array)
- `requestedUrl` (string)
- `returned` (integer)
- `status` (integer)
- `totalFound` (integer): Links matching the scope before the limit was applied.
- `truncated` (boolean)
- `url` (string)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/vojtisprime11-web-fetcher/mcp-server-web-fetcher#diagnostics

## Score history

- 2026-08-03: 64
- 2026-08-02: 64
- 2026-08-01: 18
- 2026-07-31: 25

## Links

- npm package: https://www.npmjs.com/package/mcp-server-web-fetcher
- Socket report: https://socket.dev/npm/package/mcp-server-web-fetcher
- Repository: https://github.com/vojtisprime11/mcp-server-web-fetcher
- Changelog RSS feed: https://verifymcp.io/servers/vojtisprime11-web-fetcher/mcp-server-web-fetcher/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/vojtisprime11-web-fetcher/mcp-server-web-fetcher/changelog.json
- HTML version of this page: https://verifymcp.io/servers/vojtisprime11-web-fetcher/mcp-server-web-fetcher
