@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 +25 -0
- package/manifest.json +1 -1
- package/package.json +3 -3
- package/server.json +2 -2
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.
|
|
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
|
+
"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.
|
|
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": "^
|
|
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.
|
|
11
|
+
"version": "0.4.0",
|
|
12
12
|
"packages": [
|
|
13
13
|
{
|
|
14
14
|
"registryType": "npm",
|
|
15
15
|
"identifier": "@page2ai/mcp",
|
|
16
|
-
"version": "0.
|
|
16
|
+
"version": "0.4.0",
|
|
17
17
|
"transport": {
|
|
18
18
|
"type": "stdio"
|
|
19
19
|
}
|