Skip to content

Releases: igorsaevets/page2ai-mcp

v0.2.5 — wrapper follows the scoped package; MCP Registry publish automated

Choose a tag to compare

@igorsaevets igorsaevets released this 29 Aug 09:06

What's Changed

  • chore(deps-dev): bump vitest from 4.1.10 to 4.1.11 by @dependabot[bot] in #8
  • chore(deps-dev): bump @types/node from 26.2.0 to 26.3.0 by @dependabot[bot] in #9

Full Changelog: v0.2.4...v0.2.5

v0.2.4

Choose a tag to compare

@igorsaevets igorsaevets released this 28 Aug 05:56

What's Changed

  • chore(deps): bump actions/setup-node from 5 to 7 by @dependabot[bot] in #2
  • chore(deps): bump actions/checkout from 5 to 7 by @dependabot[bot] in #3
  • chore(deps-dev): bump @types/node from 22.20.1 to 26.2.0 by @dependabot[bot] in #4
  • chore(deps-dev): bump vitest from 3.2.7 to 4.1.10 by @dependabot[bot] in #7

New Contributors

Full Changelog: v0.2.3...v0.2.4

v0.2.3 - manifest author points at the GitHub profile

Choose a tag to compare

@igorsaevets igorsaevets released this 02 Aug 09:20

Metadata-only fix on top of v0.2.2.

Anthropic's MCPB directory submission form states four requirements. Three passed; the fourth did not:

Have a valid manifest.json with the "author" field pointed at your GitHub profile

author.url was the docs site (igorsaevets.github.io/page2ai-docs/about/). It is now https://github.com/igorsaevets.

No runtime change from v0.2.2. Bundle re-verified by unpacking and running: both protocol eras answered, serverInfo reports 0.2.3, tools/call on the Astro page returns 4,838 characters.

v0.2.2 - three review findings closed

Choose a tag to compare

@igorsaevets igorsaevets released this 02 Aug 08:14

Requires @page2ai/core 0.1.4.

An external review panel was given only the diff of the 0.1.2 content-root fix and asked to break it. It predicted three failure shapes from the code alone. All three reproduced, and the worst one meant the fix had not actually fixed the bug on the layout family that motivated it.

shape before after
card grid with no <main> (<div class="sl-main">) 32 chars 968 chars
form-in-article + sidebar card article lost entirely article returned
post under a large related-posts rail rail pulled in post only

The 18-page sweep is unchanged: 3 improved, 15 byte-identical, 0 regressed. docs.astro.build/en/getting-started/ goes 208 -> 3,494 characters across the series; blog.cloudflare.com/ goes 927 -> 15,068.

Bundle verified by unpacking and running it: initialize and server/discover both answered, serverInfo reports 0.2.2, and tools/call on the Astro page returned 4,838 characters.

v0.2.1 - card grids no longer collapse to a single card

Choose a tag to compare

@igorsaevets igorsaevets released this 02 Aug 08:04

Picks up @page2ai/core 0.1.2.

What was broken

The conversion root was chosen with querySelector('main article') || querySelector('article'), which returns the first <article> in document order. HTML5 allows that tag on any self-contained composition, so design systems spend it on cards and teasers. Measured on raw server HTML, body characters excluding frontmatter:

page before after
docs.astro.build/en/getting-started/ 208 3,494
starlight.astro.build/ 209 3,324
blog.cloudflare.com/ 927 15,068

An <article> now replaces its container only when it carries at least half the container's content text. Real articles measured 0.81-0.84 of their <main>, cards and teasers 0.07-0.22, and nothing observed lands between. Fifteen of eighteen pages in the sweep are byte-identical, including both GitHub repo pages where <article class="markdown-body"> is the content and must keep winning. Nothing regressed.

Also: linkedom can return a <body> with zero children while the content sits under documentElement; the renderer now falls through instead of reporting an empty page.

Also fixed

SERVER_VERSION was a hardcoded constant beside package.json and manifest.json. It drifted on the first release after it was written: 0.2.1 was about to ship while the running server still introduced itself as 0.2.0 over the wire. It is now read from package.json.

Bundle

page2ai-mcp-0.2.1.mcpb, 2.5 MB, built from production dependencies only. Verified by unpacking and running it, not by packing it: initialize and server/discover both answered, serverInfo reports 0.2.1, and tools/call on the Astro page returned 4,838 characters.

v0.2.0 - MCP protocol 2026-07-28, both eras

Choose a tag to compare

@igorsaevets igorsaevets released this 01 Aug 07:15

Serves both MCP protocol eras from one binary: the 2026-07-28 revision via
server/discover, and the legacy 2025-11-25 revision via initialize.

Published to npm on 2026-07-29 as @page2ai/mcp@0.2.0 with SLSA provenance.
This Release existed only as a git tag until now; the notes and the bundle below
are the missing half.

What changed since v0.1.2

  • Migrated to @modelcontextprotocol/{core,server,client,node}@2.0.0. Upgrading the
    dependency is not enough on its own: a Server wired to StdioServerTransport
    still speaks only 2025 whatever SDK is installed. The entry point had to become
    serveStdio(factory).
  • Dropped 90 transitive packages: 117 production dependencies down to 26.
  • manifest.json now declares 0.2.0, matching the server it launches.

Desktop bundle

page2ai-mcp-0.2.0.mcpb (2.5 MB) is attached. It is packed from production
dependencies only - packing the working tree instead produces a 31 MB archive
carrying the test runner.

Verified before upload, not assumed: the bundle was unpacked and the unpacked
dist/index.js was driven through scripts/probe-protocol.mjs --assert, which
exits non-zero unless both protocol eras answer. It exited 0.

Verify it yourself

npx -y @anthropic-ai/mcpb@latest info page2ai-mcp-0.2.0.mcpb
npm view @page2ai/mcp@0.2.0

v0.1.2 - npm provenance + one-click .mcpb bundle

Choose a tag to compare

@igorsaevets igorsaevets released this 27 Jul 22:23

Install

One click (Claude Desktop): download page2ai-mcp-0.1.2.mcpb below and open it. Claude Desktop installs the server and its dependencies; no Node toolchain, no JSON editing, no terminal.

Command line (any MCP client):

npx -y page2ai-mcp

What is in this release

  • npm provenance is live. @page2ai/mcp@0.1.2 is published from a tag-triggered GitHub Actions workflow with id-token: write, so every release carries a Sigstore/SLSA attestation naming the commit and the workflow run that built it. Verify it yourself with npm audit signatures, or fetch the attestation directly: https://registry.npmjs.org/-/npm/v1/attestations/@page2ai%2fmcp@0.1.2
  • Packaging fix. package-lock.json pinned @page2ai/core to a sibling directory path, so npm ci could not resolve it on any machine except the one it was authored on. Regenerated from the registry; there are no out-of-tree entries left.
  • MCPB bundle. manifest 0.3, validated against the MCPB schema, packed with production dependencies only.

Bundle integrity

file    page2ai-mcp-0.1.2.mcpb
size    4,011,379 bytes
sha256  e7184767ee7aff0fe2d827000d7a6c07454dbb5114fcb10f42b3653b650636ab

The tool

page_to_markdown fetches a URL (or takes an HTML string) and returns clean Markdown: headings, code blocks with language hints, tables and lists preserved; navigation, ads, cookie banners and footers stripped. No external API calls, SSRF-guarded, runs entirely locally.

MIT licensed. Docs: https://igorsaevets.github.io/page2ai-docs/mcp/