@page2ai/mcp 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,31 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and
5
5
  project uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html); while the
6
6
  major version is `0`, a minor bump may carry breaking changes.
7
7
 
8
+ ## 0.4.0 - 2026-10-18
9
+
10
+ ### Security
11
+ - **`@page2ai/core` 0.3.0: SSRF guard hardening (BL-22).** DNS pinning closes the rebinding
12
+ window where `fetch()` could re-resolve a hostname to an internal address between the guard's
13
+ check and the connect. Extended blocklists cover multicast, broadcast, TEST-NET, NAT64, 6to4,
14
+ Teredo, documentation and discard IPv6 ranges. `undici` added as a transitive dependency through
15
+ core (zero transitive deps of its own). Core engines raised from >=18.0 to >=18.17 (mcp stays
16
+ >=20.0, unaffected).
17
+
18
+ ## 0.3.2 - 2026-10-17
19
+
20
+ ### Fixed
21
+ - **`@page2ai/core` 0.2.2: the review fix for 0.2.1's button rule** (P2A-019), and the dependency range starts there
22
+ (`^0.2.2`, was `^0.2.1`). A page with thousands of sibling buttons converts in tens of milliseconds again (core
23
+ 0.2.1 took 1.0 to 5.7 s for 3,000 sibling buttons, measured on 2026-10-18), and the page text 0.2.1 left out
24
+ comes back: an accordion's question with neither `aria-expanded` nor a heading (the session titles of a
25
+ W3Schools-style accordion), a definition
26
+ term, a question under `role="heading"`, a link written inside a button, and a command whose button is named «Copy
27
+ command: <command>» (core CHANGELOG, 0.2.2). The range moves for the reason given under 0.3.1: measured again on
28
+ 2026-10-18, with core 0.2.2 out, an `npx` cache filled before it still ran `page2ai-mcp` 0.3.1 on core 0.2.1, and an
29
+ empty cache ran core 0.2.2.
30
+ - README: the example output stays as captured on core 0.2.1: on 2026-10-18 core 0.2.2 converted that page byte for
31
+ byte as 0.2.1 did, without the front matter.
32
+
8
33
  ## 0.3.1 - 2026-10-17
9
34
 
10
35
  ### Fixed
package/manifest.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "manifest_version": "0.3",
3
3
  "name": "page2ai-mcp",
4
4
  "display_name": "Page2AI — Web to Markdown",
5
- "version": "0.3.1",
5
+ "version": "0.4.0",
6
6
  "description": "Convert any web page to clean Markdown for LLM context",
7
7
  "long_description": "Page2AI MCP converts a web page URL to Markdown for AI context windows. It keeps the page's main content (its <main> or dominant <article>), preserves code blocks with language hints, converts tables and lists, and drops navigation, headers, footers and sidebars. The only network requests go to the URL you pass it and the addresses it redirects to, asked for as a browser opens a page, so docs platforms return the page itself rather than a Markdown copy of it: pure Node + linkedom, no browser, no cookies, no page scripts, no external services, no telemetry. A page behind a sign-in, or one rendered only by JavaScript, is therefore out of its reach.\n\nCompanion to the Page2AI browser extension (https://github.com/igorsaevets/page2ai-extension), which converts the live page in your own browser, including pages behind a sign-in. Built on the open-source @page2ai/core library.",
8
8
  "author": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@page2ai/mcp",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "mcpName": "io.github.igorsaevets/page2ai-mcp",
5
5
  "description": "MCP server that converts any web page URL to clean Markdown for LLM context. Processing is local and SSRF-guarded; no external APIs, no telemetry.",
6
6
  "type": "module",
@@ -35,13 +35,13 @@
35
35
  },
36
36
  "dependencies": {
37
37
  "@modelcontextprotocol/server": "^2.0.0",
38
- "@page2ai/core": "^0.2.1",
38
+ "@page2ai/core": "^0.3.0",
39
39
  "zod": "^4.2.0"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/node": "^26.2.0",
43
43
  "typescript": "^5.7.2",
44
- "vitest": "^4.1.10"
44
+ "vitest": "^5.0.5"
45
45
  },
46
46
  "keywords": [
47
47
  "mcp",
package/server.json CHANGED
@@ -8,12 +8,12 @@
8
8
  "source": "github"
9
9
  },
10
10
  "websiteUrl": "https://github.com/igorsaevets/page2ai-mcp#readme",
11
- "version": "0.3.1",
11
+ "version": "0.4.0",
12
12
  "packages": [
13
13
  {
14
14
  "registryType": "npm",
15
15
  "identifier": "@page2ai/mcp",
16
- "version": "0.3.1",
16
+ "version": "0.4.0",
17
17
  "transport": {
18
18
  "type": "stdio"
19
19
  }