@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 +31 -0
- package/README.md +156 -36
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/manifest.json +4 -5
- package/package.json +1 -2
- package/server.json +2 -2
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
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/@page2ai/mcp)
|
|
4
|
+
[](https://github.com/igorsaevets/page2ai-mcp/actions/workflows/ci.yml)
|
|
5
|
+
[](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.igorsaevets/page2ai-mcp)
|
|
6
|
+
[](./LICENSE)
|
|
4
7
|
|
|
5
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
72
|
+
[](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
|
-
|
|
35
|
-
|
|
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/
|
|
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
|
-
###
|
|
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
|
-
|
|
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
|
-
|
|
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 `` 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
|
-
|
|
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
|
|
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":";AACA,yCAAyC;AACzC,+EAA+E;AAC/E,4EAA4E;AAC5E,2EAA2E;AAC3E,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,2EAA2E;AAC3E,qEAAqE;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAE7F,MAAM,WAAW,GAAG,aAAa,CAAC;AAElC,mEAAmE;AACnE,EAAE;AACF,mFAAmF;AACnF,8FAA8F;AAC9F,2FAA2F;AAC3F,4FAA4F;AAC5F,EAAE;AACF,2FAA2F;AAC3F,0FAA0F;AAC1F,oDAAoD;AACpD,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE;IACnC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3E,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,eAAe,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,eAAe,CAAC;IACzB,CAAC;AACH,CAAC,CAAC,EAAE,CAAC;AAEL,+EAA+E;AAC/E,2EAA2E;AAC3E,MAAM,GAAG,GAAG,CAAC,GAAW,EAAQ,EAAE;IAChC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,WAAW,KAAK,GAAG,IAAI,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,iFAAiF;AACjF,0EAA0E;AAC1E,MAAM,WAAW,GAAG,GAAW,EAAE;IAC/B,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;QACE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;
|
|
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.
|
|
6
|
-
"description": "Convert any web page
|
|
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.
|
|
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": ">=
|
|
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.
|
|
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.
|
|
11
|
+
"version": "0.2.6",
|
|
12
12
|
"packages": [
|
|
13
13
|
{
|
|
14
14
|
"registryType": "npm",
|
|
15
15
|
"identifier": "@page2ai/mcp",
|
|
16
|
-
"version": "0.2.
|
|
16
|
+
"version": "0.2.6",
|
|
17
17
|
"transport": {
|
|
18
18
|
"type": "stdio"
|
|
19
19
|
}
|