@page2ai/mcp 0.2.5 → 0.2.6

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,37 @@ 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.2.6 - 2026-10-11
9
+
10
+ ### Added
11
+ - `serverInfo` carries `title` ("Page2AI"), `description` and `websiteUrl`, so clients that
12
+ render server metadata show a name and a link instead of the bare package name.
13
+
14
+ ### Changed
15
+ - **Releases are published through npm trusted publishing (OIDC)**, for `@page2ai/mcp` and
16
+ for the `page2ai-mcp` wrapper alike. The publish workflow holds no npm token; the registry
17
+ records GitHub Actions as the publisher, and the workflow fails when it records anyone else.
18
+ - Lockfile refreshed to what a fresh install already resolves: `@page2ai/core` 0.1.11 (was
19
+ 0.1.10; the 0.2.5 MCPB bundle carried 0.1.8), `@modelcontextprotocol/server` and
20
+ `@modelcontextprotocol/core` 2.3.1 (was 2.0.0), `zod` 4.5.4. Dependency ranges are
21
+ unchanged, so `npx` users get the same tree as before; the lock decides what the MCPB
22
+ bundle carries, and the 0.2.6 bundle now matches it.
23
+ - README header leads with the LLM context use case (ChatGPT, Claude, Gemini); install notes
24
+ added for Antigravity and the Claude Desktop one-click bundle.
25
+ - README restyled after a 10-reviewer documentation audit (2026-08-29): badges, quick start
26
+ first, per-client install blocks for Claude Code / Claude Desktop / Cursor (deeplink) /
27
+ VS Code / Codex CLI / Gemini CLI / Windsurf / Zed, and a verbatim output sample. Two
28
+ long-standing README bugs fixed: the Windsurf config path (now
29
+ `~/.codeium/windsurf/mcp_config.json`) and the Zed `context_servers` schema (flat
30
+ `command`/`args`, the nested `command.path` form is legacy). Node.js 20+ requirement now
31
+ stated up front. The "Zero external API calls" phrasing replaced with the accurate "the
32
+ only network requests are to the URLs you pass it".
33
+ - MCPB `manifest.json` refreshed: version kept in step with `package.json`, node runtime
34
+ `>=20`, description overclaim fixed, the real tool arguments documented.
35
+ - Personal email removed from README, `manifest.json` and `package.json` author metadata —
36
+ same one-policy cleanup as the 0.2.4 Code of Conduct change; contact routes through the
37
+ GitHub handle.
38
+
8
39
  ## 0.2.5 - 2026-08-29
9
40
 
10
41
  ### Fixed
package/README.md CHANGED
@@ -1,78 +1,159 @@
1
1
  # @page2ai/mcp — Web to Markdown for LLM Context
2
2
 
3
- Turn any web page into clean Markdown for Claude, ChatGPT, or your own LLM.
3
+ [![npm version](https://img.shields.io/npm/v/%40page2ai%2Fmcp)](https://www.npmjs.com/package/@page2ai/mcp)
4
+ [![CI](https://github.com/igorsaevets/page2ai-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/igorsaevets/page2ai-mcp/actions/workflows/ci.yml)
5
+ [![MCP Registry](https://img.shields.io/badge/MCP_Registry-io.github.igorsaevets%2Fpage2ai--mcp-blue)](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.igorsaevets/page2ai-mcp)
6
+ [![license MIT](https://img.shields.io/npm/l/%40page2ai%2Fmcp)](./LICENSE)
4
7
 
5
- Companion to the [Page2AI Chrome extension](https://github.com/igorsaevets/page2ai-extension). Shares the same `@page2ai/core` extraction library. Zero external API calls — runs entirely on your machine using [linkedom](https://github.com/WebReflection/linkedom).
8
+ <sub>No downloads badge on purpose: npm download counts are dominated by registry mirrors and
9
+ bots, and this README only shows numbers a human can trust.</sub>
6
10
 
7
- ## Install
11
+ > One-click webpage-to-Markdown MCP server for ChatGPT, Claude, and Gemini.
12
+ > Preserves code blocks with language hints, tables, and reading structure.
13
+ > Fetch, extract, convert — one tool, one command, entirely on your machine.
14
+ > No API key, no account, no telemetry; the only network requests are to the URLs you pass it.
15
+
16
+ Companion to the [Page2AI Chrome & Firefox extensions](https://github.com/igorsaevets/page2ai-extension);
17
+ both share the same [`@page2ai/core`](https://npmjs.com/package/@page2ai/core) extraction library.
18
+
19
+ ## Quick start
20
+
21
+ ```bash
22
+ npx -y page2ai-mcp
23
+ ```
24
+
25
+ This starts the stdio MCP server — it waits silently for a client, so wire it into one of
26
+ the clients below rather than running it bare. Requires **Node.js 20+**. No API key. If
27
+ `npx` ever serves you a stale cached version, run `npx -y page2ai-mcp@latest` once.
28
+
29
+ `page2ai-mcp` is a thin unscoped wrapper around [`@page2ai/mcp`](https://www.npmjs.com/package/@page2ai/mcp);
30
+ since 0.2.5 it follows the latest server automatically via a `^` range.
31
+
32
+ ### Hosted endpoint (beta) — no install at all
33
+
34
+ For clients that only accept a remote MCP server URL (Streamable HTTP):
35
+
36
+ ```
37
+ https://page2ai-mcp-remote.vercel.app/api/mcp
38
+ ```
39
+
40
+ Same tool, same code (see [`remote/`](./remote)), rate-limited per IP.
41
+ **Privacy trade-off:** URLs sent to the hosted endpoint are fetched *from that
42
+ server*, so they transit infrastructure operated by the author (on Vercel).
43
+ Running locally via `npx` keeps everything on your machine — prefer it when you
44
+ can.
45
+
46
+ ### Claude Code
47
+
48
+ ```bash
49
+ claude mcp add page2ai -- npx -y page2ai-mcp
50
+ ```
8
51
 
9
52
  ### Claude Desktop
10
53
 
11
- Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%/Claude/claude_desktop_config.json` (Windows):
54
+ One-click bundle: download `page2ai-mcp-<version>.mcpb` from the
55
+ [latest release](https://github.com/igorsaevets/page2ai-mcp/releases/latest), then in
56
+ Claude Desktop open **Settings → Extensions → Advanced settings → Install Extension…**
57
+ and pick the file.
58
+
59
+ Or add to `claude_desktop_config.json` (macOS: `~/Library/Application Support/Claude/`,
60
+ Windows: `%APPDATA%\Claude\`), then fully quit and restart Claude Desktop:
12
61
 
13
62
  ```json
14
63
  {
15
64
  "mcpServers": {
16
- "page2ai": {
17
- "command": "npx",
18
- "args": ["-y", "@page2ai/mcp"]
19
- }
65
+ "page2ai": { "command": "npx", "args": ["-y", "page2ai-mcp"] }
20
66
  }
21
67
  }
22
68
  ```
23
69
 
24
- Restart Claude Desktop.
25
-
26
70
  ### Cursor
27
71
 
28
- Add to `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` (project):
72
+ [![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/install-mcp?name=page2ai&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsInBhZ2UyYWktbWNwIl19)
73
+
74
+ <!-- config = base64 of {"command":"npx","args":["-y","page2ai-mcp"]}
75
+ regenerate: echo -n '{"command":"npx","args":["-y","page2ai-mcp"]}' | base64 -w0 -->
76
+
77
+ Or add to `~/.cursor/mcp.json` (global) / `.cursor/mcp.json` (project):
29
78
 
30
79
  ```json
31
80
  {
32
81
  "mcpServers": {
33
- "page2ai": {
34
- "command": "npx",
35
- "args": ["-y", "@page2ai/mcp"]
36
- }
82
+ "page2ai": { "command": "npx", "args": ["-y", "page2ai-mcp"] }
83
+ }
84
+ }
85
+ ```
86
+
87
+ ### VS Code (GitHub Copilot)
88
+
89
+ ```bash
90
+ code --add-mcp '{"name":"page2ai","command":"npx","args":["-y","page2ai-mcp"]}'
91
+ ```
92
+
93
+ Or add to `.vscode/mcp.json`:
94
+
95
+ ```json
96
+ {
97
+ "servers": {
98
+ "page2ai": { "type": "stdio", "command": "npx", "args": ["-y", "page2ai-mcp"] }
37
99
  }
38
100
  }
39
101
  ```
40
102
 
103
+ ### Codex CLI
104
+
105
+ ```bash
106
+ codex mcp add page2ai -- npx -y page2ai-mcp
107
+ ```
108
+
109
+ ### Gemini CLI
110
+
111
+ ```bash
112
+ gemini mcp add page2ai npx -y page2ai-mcp
113
+ ```
114
+
115
+ ### Antigravity
116
+
117
+ ```bash
118
+ agy mcp add page2ai npx -y page2ai-mcp
119
+ ```
120
+
41
121
  ### Windsurf
42
122
 
43
- Add to `~/.windsurf/mcp.json`:
123
+ Add to `~/.codeium/windsurf/mcp_config.json` (macOS/Linux) or
124
+ `%USERPROFILE%\.codeium\windsurf\mcp_config.json` (Windows):
44
125
 
45
126
  ```json
46
127
  {
47
128
  "mcpServers": {
48
- "page2ai": {
49
- "command": "npx",
50
- "args": ["-y", "@page2ai/mcp"]
51
- }
129
+ "page2ai": { "command": "npx", "args": ["-y", "page2ai-mcp"] }
52
130
  }
53
131
  }
54
132
  ```
55
133
 
56
134
  ### Zed
57
135
 
58
- Add to `settings.json`:
136
+ Add to `settings.json` (`zed: open settings file`):
59
137
 
60
138
  ```json
61
139
  {
62
140
  "context_servers": {
63
- "page2ai": {
64
- "command": {
65
- "path": "npx",
66
- "args": ["-y", "@page2ai/mcp"]
67
- }
68
- }
141
+ "page2ai": { "command": "npx", "args": ["-y", "page2ai-mcp"] }
69
142
  }
70
143
  }
71
144
  ```
72
145
 
73
- ### VS Code (with Continue or GitHub Copilot Chat)
146
+ ### Other MCP clients
147
+
148
+ Any client that speaks MCP over stdio works — Cline, Continue, JetBrains AI Assistant,
149
+ LM Studio and others. Point their MCP server settings at the same command:
150
+ `npx -y page2ai-mcp`.
151
+
152
+ ### Letting an AI agent install it
74
153
 
75
- Refer to your MCP-compatible extension's documentation. The command is `npx -y @page2ai/mcp`.
154
+ If an AI agent (Cline, Claude Code, Codex, …) is doing the setup for you, point it at
155
+ [`llms-install.md`](./llms-install.md) — a machine-oriented install guide with the exact
156
+ command per client and a verification step.
76
157
 
77
158
  ## Tools
78
159
 
@@ -91,18 +172,58 @@ Refer to your MCP-compatible extension's documentation. The command is `npx -y @
91
172
  **3. Compare two documentation pages:**
92
173
  > "Fetch both https://docs.anthropic.com/en/docs/prompt-engineering and https://platform.openai.com/docs/guides/prompt-engineering with page_to_markdown, then summarize the differences in approach."
93
174
 
175
+ ## What a call returns
176
+
177
+ Verbatim output of `page_to_markdown(url="https://docs.anthropic.com/en/api/messages")`,
178
+ captured 2026-08-29 on core 0.1.7, truncated:
179
+
180
+ ```markdown
181
+ ---
182
+ title: "Messages"
183
+ source: "https://platform.claude.com/docs/en/api/messages"
184
+ captured_at: "2026-08-29T09:01:05.806Z"
185
+ extractor: "page2ai-core"
186
+ extractor_version: "0.1.7"
187
+ extractor_source: "content-negotiation"
188
+ ---
189
+ # Messages
190
+
191
+ ## Create a Message
192
+
193
+ **POST** `/v1/messages`
194
+
195
+ Send a structured list of input messages with text and/or image content, and the
196
+ model will generate the next message in the conversation.
197
+ ```
198
+
199
+ YAML front matter (title, source, capture timestamp, extractor provenance), then the
200
+ article as clean Markdown — headings, tables and fenced code preserved, navigation and
201
+ chrome dropped.
202
+
94
203
  ## Configuration
95
204
 
96
- None required in v0.1. All extraction options use sensible defaults.
205
+ No setup required — every argument has a sensible default. `page_to_markdown` accepts:
206
+
207
+ | Argument | Type | Default | Effect |
208
+ |---|---|---|---|
209
+ | `url` | string, **required** | — | Absolute http(s) URL to convert. Private ranges, loopback and cloud metadata endpoints are blocked (SSRF guard) |
210
+ | `include_images` | boolean | `true` | Keep `![alt](src)` image references in the output |
211
+ | `include_frontmatter` | boolean | `true` | Prepend the YAML front matter block |
212
+ | `timeout_ms` | integer | `15000` | Abort the fetch after N ms (1000–60000) |
97
213
 
98
- Future versions will support options via tool arguments:
99
- - `include_images` (boolean, default `false`)
100
- - `include_frontmatter` (boolean, default `true`)
101
- - `profile` (string, one of `auto | docs | marketing | research | dashboard | wordpress-marketing`, default `auto`)
214
+ Planned: a `profile` argument (`auto | docs | marketing | research | dashboard | wordpress-marketing`).
102
215
 
103
216
  ## Privacy
104
217
 
105
- `@page2ai/mcp` collects no data, sends no telemetry, and makes no external network calls beyond the URLs you explicitly provide. See [PRIVACY.md](./PRIVACY.md) for details.
218
+ `@page2ai/mcp` collects no data, sends no telemetry, and makes no external network calls
219
+ beyond the URLs you explicitly provide. Note that your AI client (Claude, ChatGPT, …)
220
+ still sends the extracted Markdown to its own model provider under that client's privacy
221
+ policy — that part is outside this server's control. See [PRIVACY.md](./PRIVACY.md) for details.
222
+
223
+ The optional **hosted endpoint** is different by nature: URLs you ask it to convert are
224
+ fetched from a server operated by the author (deployed on Vercel), and Vercel keeps its
225
+ standard operational logs. No accounts, no tracking. If that trade-off matters for your
226
+ use case, run the server locally — it is the same code.
106
227
 
107
228
  ## Protocol revisions
108
229
 
@@ -171,7 +292,6 @@ nobody else can find later, so anything you want fixed belongs in the table abov
171
292
  - Facebook: [facebook.com/igorsaevets](https://www.facebook.com/igorsaevets/)
172
293
  - GitHub: [github.com/igorsaevets](https://github.com/igorsaevets)
173
294
  - ORCID: [0009-0006-8636-1377](https://orcid.org/0009-0006-8636-1377)
174
- - Email: igorsaevets@gmail.com
175
295
 
176
296
 
177
297
  ## Build provenance
package/dist/index.js CHANGED
@@ -47,6 +47,11 @@ const buildServer = () => {
47
47
  const server = new Server({
48
48
  name: SERVER_NAME,
49
49
  version: SERVER_VERSION,
50
+ title: 'Page2AI',
51
+ description: 'Convert any webpage or HTML to clean Markdown for ChatGPT, Claude, and Gemini ' +
52
+ 'context. Preserves code blocks with language hints, tables, and reading structure. ' +
53
+ 'Zero telemetry, MIT-licensed.',
54
+ websiteUrl: 'https://github.com/igorsaevets/page2ai-mcp',
50
55
  }, {
51
56
  capabilities: {
52
57
  tools: {},
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/manifest.json CHANGED
@@ -2,12 +2,11 @@
2
2
  "manifest_version": "0.3",
3
3
  "name": "page2ai-mcp",
4
4
  "display_name": "Page2AI — Web to Markdown",
5
- "version": "0.2.3",
6
- "description": "Convert any web page or HTML string to clean Markdown for LLM context",
7
- "long_description": "Page2AI MCP converts web pages to Markdown optimized for AI context windows. Extracts main content using DOM-position-aware dedup, preserves code blocks with language hints, converts tables and lists, and strips navigation, ads, and cookie banners. Works offline against local HTML strings or online against URLs. Zero external API calls in v0.1 — pure Node + linkedom.\n\nCompanion to the Page2AI Chrome extension. Shares the same extraction core (@page2ai/core) with the browser extension available at https://github.com/igorsaevets/page2ai-extension.",
5
+ "version": "0.2.6",
6
+ "description": "Convert any web page to clean Markdown for LLM context",
7
+ "long_description": "Page2AI MCP converts web pages to Markdown optimized for AI context windows. Extracts main content using DOM-position-aware dedup, preserves code blocks with language hints, converts tables and lists, and strips navigation, ads, and cookie banners. The only network requests are to the URLs you pass it — pure Node + linkedom, no browser, no external services, no telemetry.\n\nCompanion to the Page2AI Chrome extension. Shares the same extraction core (@page2ai/core) with the browser extension available at https://github.com/igorsaevets/page2ai-extension.",
8
8
  "author": {
9
9
  "name": "Igor Saevets",
10
- "email": "igorsaevets@gmail.com",
11
10
  "url": "https://github.com/igorsaevets"
12
11
  },
13
12
  "repository": {
@@ -56,7 +55,7 @@
56
55
  "linux"
57
56
  ],
58
57
  "runtimes": {
59
- "node": ">=18.0.0"
58
+ "node": ">=20.0.0"
60
59
  }
61
60
  }
62
61
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@page2ai/mcp",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
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",
@@ -61,7 +61,6 @@
61
61
  ],
62
62
  "author": {
63
63
  "name": "Igor Saevets",
64
- "email": "igorsaevets@gmail.com",
65
64
  "url": "https://github.com/igorsaevets"
66
65
  },
67
66
  "license": "MIT",
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.2.5",
11
+ "version": "0.2.6",
12
12
  "packages": [
13
13
  {
14
14
  "registryType": "npm",
15
15
  "identifier": "@page2ai/mcp",
16
- "version": "0.2.5",
16
+ "version": "0.2.6",
17
17
  "transport": {
18
18
  "type": "stdio"
19
19
  }