mcpField
P
Page2AI — Web to Markdown

Page2AI — Web to Markdown

ローカル
github.comブラウザ自動化03 日前に更新

Page2AI — Web to Markdown について

Page2AI — Web to Markdownは、Webページや渡されたHTMLをLLM向けのMarkdownに変換するローカルMCPサーバーです。表やコードブロックなどの構造を保ちつつナビゲーションを除去し、指定URL以外への外部通信を行いません。

主な機能

  1. 01URLまたは指定HTMLをMarkdownに変換
  2. 02表、見出し、コードブロックを保持
  3. 03ページ情報をYAMLフロントマターに収録
  4. 04プライベート、ループバック、メタデータ宛先を遮断
  5. 05Agent Bridge経由でブラウザー表示ページを利用

活用シーン

  1. 01ドキュメントページをLLM向けに整形
  2. 02ブラウザーツールから渡されたHTMLを変換
  3. 03ブラウザー拡張ブリッジでログイン済みページを取得

MCP 対応

読み取り専用の`page_to_markdown`ツールをstdioで提供し、任意でホスト型Streamable HTTPエンドポイントも利用できます。Page2AI拡張機能からAgent Bridge経由でレンダリング済みMarkdownを受け取ることもできます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"igorsaevets-page2ai": {
"command": "npx",
"args": [
"-y",
"@page2ai/mcp"
]
}
}
}
起動コマンドnpx -y @page2ai/mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@page2ai/mcp0.6.3

ツール

1

掲載時のツール一覧 · 3 日前に更新

パラメーター型必須説明
urlstringはい変換するウェブページの絶対 HTTP または HTTPS URL。プライベートアドレス範囲、ループバック、クラウドメタデータのエンドポイントをブロックします。
timeout_msintegerいいえN ミリ秒後に取得を中止します。範囲:1000-60000。
include_imagesbooleanいいえ出力に画像参照 (![alt](src)) を含めます。
include_frontmatterbooleanいいえタイトル、ソース URL、取得タイムスタンプ、言語、説明、正規 URL を含む YAML frontmatter ブロックを先頭に追加します。

詳細

@page2ai/mcp — LLM コンテキスト向け Web から Markdown への変換

npm version CI MCP Registry license MIT

ダウンロード数のバッジは意図的に掲載していません。npm のダウンロード数はレジストリのミラーやボットの影響が大きく、この README では人が信頼できる数値のみを掲載しています。

ChatGPT、Claude、Gemini 向けの、ワンクリックで Web ページを Markdown に変換する MCP サーバーです。 言語ヒント付きのコードブロック、表、読みやすい構造を保持します。 取得、抽出、変換を 1 つのツール、1 つのコマンドで、すべてお使いのマシン上で実行できます。 API キーもアカウントもテレメトリーも不要です。ネットワークリクエストは、指定した URL へのものだけです。

Page2AI Chrome & Firefox extensions の補完ツールです。この拡張機能は、独自のパイプラインを使ってブラウザー内の表示中のページを変換します。このサーバーは @page2ai/core をベースに構築されています。

クイックスタート

npx -y page2ai-mcp

これにより stdio MCP サーバーが起動します。クライアントからの接続を待って何も表示しないため、単独で実行するのではなく、以下のいずれかのクライアントに接続してください。Node.js 20 以降が必要です。API キーは不要です。npx が古いキャッシュ版を提供する場合は、npx -y page2ai-mcp@latest を一度実行してください。

更新。 npx -y page2ai-mcp はサーバーの起動時に npm に最新バージョンを問い合わせますが、MCP クライアントは終了するまでサーバーを実行し続けます。クライアントを終了して再度開くと更新されます。設定で指定したバージョン([email protected])は、変更するまでそのままです。npx -y page2ai-mcp --version を実行すると、現在 npx が実行するバージョンが表示されます。

page2ai-mcp は @page2ai/mcp をラップする、スコープなしの薄いラッパーです。両者は同時にリリースされます。依存関係には ^ の範囲が指定されており、0.x バージョンではパッチリリースのみが許可されます。

ホステッドエンドポイント(ベータ)— インストール不要

リモート MCP サーバーの URL(Streamable HTTP)のみを受け付けるクライアント向け:

https://page2ai-mcp-remote.vercel.app/api/mcp

同じツールで、コードも同じです(remote/ を参照)。IP ごとにレート制限があります。 プライバシー面でのトレードオフ: ホステッドエンドポイントに送信された URL は、そのサーバーから取得されるため、作者が運用するインフラストラクチャ(Vercel 上)を経由します。npx を使ってローカルで実行すれば、すべてがマシン上にとどまります。可能であれば、こちらをお使いください。

Claude Code
claude mcp add page2ai -- npx -y page2ai-mcp
Claude Desktop

ワンクリックバンドル: latest release から page2ai-mcp-<version>.mcpb をダウンロードし、Claude Desktop で Settings → Extensions → Advanced settings → Install Extension… を開いてファイルを選択します。

または、claude_desktop_config.json(macOS:~/Library/Application Support/Claude/、Windows:%APPDATA%\Claude\)に追加し、Claude Desktop を完全に終了してから再起動します:

{
  "mcpServers": {
    "page2ai": { "command": "npx", "args": ["-y", "page2ai-mcp"] }
  }
}
Cursor

Install MCP Server

または、~/.cursor/mcp.json(グローバル)/.cursor/mcp.json(プロジェクト)に追加します:

{
  "mcpServers": {
    "page2ai": { "command": "npx", "args": ["-y", "page2ai-mcp"] }
  }
}
VS Code(GitHub Copilot)
code --add-mcp '{"name":"page2ai","command":"npx","args":["-y","page2ai-mcp"]}'

または、.vscode/mcp.json に追加します:

{
  "servers": {
    "page2ai": { "type": "stdio", "command": "npx", "args": ["-y", "page2ai-mcp"] }
  }
}
Codex CLI
codex mcp add page2ai -- npx -y page2ai-mcp
Gemini CLI
gemini mcp add page2ai npx -y page2ai-mcp
Antigravity
agy mcp add page2ai npx -y page2ai-mcp
Windsurf

~/.codeium/windsurf/mcp_config.json(macOS/Linux)または %USERPROFILE%\.codeium\windsurf\mcp_config.json(Windows)に追加します:

{
  "mcpServers": {
    "page2ai": { "command": "npx", "args": ["-y", "page2ai-mcp"] }
  }
}
Zed

settings.json(zed: open settings file)に追加します:

{
  "context_servers": {
    "page2ai": { "command": "npx", "args": ["-y", "page2ai-mcp"] }
  }
}
その他の MCP クライアント

stdio 経由で MCP を利用するクライアントであれば、どれでも動作します。Cline、Continue、JetBrains AI Assistant、LM Studio などが該当します。MCP サーバーの設定で、同じコマンドを指定してください: npx -y page2ai-mcp。

AI エージェントにインストールを任せる

AI エージェント(Cline、Claude Code、Codex など)にセットアップを任せる場合は、 llms-install.md を参照させてください。クライアントごとの正確なコマンドと 確認手順を記載した、機械向けのインストールガイドです。

ツール

ツール説明読み取り専用例
page_to_markdownウェブページの URL を取得するか、その HTML を受け取り、読みやすい Markdown に変換します✅page_to_markdown(url="https://docs.anthropic.com/en/api/messages")
サインインが必要なページ、または JavaScript でレンダリングされるページ

サーバーは Cookie なしでページを取得し、ページスクリプトは実行しません。どちらかが必要なページには、次の方法を使います。

  • 手元にある HTML を渡す(Playwright、Chrome DevTools MCP、または別のブラウザツールから取得したもの)。HTML を html として、ページの url とともに渡します。HTML が変換され、URL は取得されません。相対リンクはその URL を基準に解決されます。この場合、フロントマターには provenance: "HTML supplied by the caller; the source URL was not fetched" が含まれます。空の html はエラーとなり、url の取得は行われません。

  • または、Page2AI 拡張機能で Agent Bridge を有効にする(1.6.0 以降):ポップアップ → Agent Bridge スイッチ → ウェブサイトへのアクセスを許可します。拡張機能が接続されている間、url のページは、 Cookie とスクリプトを使用して、ユーザー自身のブラウザのバックグラウンドタブで開かれ、拡張機能の Markdown として返されます(include_images と include_frontmatter の設定はポップアップではなく、 ここでの呼び出しに適用されます)。拡張機能はサインインプロバイダーのページと http(s) 以外のページを 拒否します。拒否されたページは通常どおりサーバーが取得し、その理由を示す 2 つ目のテキストブロックが 返されます。ブラウザが別のページ(サインインへのリダイレクト先)に移動した場合は、取得されたページを 示す 2 つ目のテキストブロックが返されます。プライベートアドレス、ループバックアドレス、クラウドメタデータ アドレスは、サーバー自身による取得と同様に、ブラウザを開く前に拒否されます。また、ブラウザがリダイレクト された先のページも拒否されます。ブリッジがリッスンするのは ws://127.0.0.1:3025 のみです。

    キー(0.6.0 以降)。 ブリッジが動作するのは、拡張機能に表示されるキーを使った場合のみです。 ポップアップ → Agent Bridge をオン → Copy key。このキーを PAGE2AI_BRIDGE_KEY としてこの サーバーに渡します。Claude Desktop(.mcpb 拡張機能)では、Page2AI の設定 Agent Bridge key に 貼り付けます。JSON 設定では、サーバーエントリーに "env": { "PAGE2AI_BRIDGE_KEY": "<key>" } を 追加します。Claude Code では、claude mcp add page2ai -e PAGE2AI_BRIDGE_KEY=<key> -- npx -y page2ai-mcp を実行します。その後、MCP クライアントを再起動してください。複数のブラウザやプロファイルを使う場合は、 各キーを 1 つの変数にカンマ区切りで設定します。最初に接続したブラウザがブリッジを保持します。Page2AI を実行する MCP クライアントが複数ある場合(たとえば Claude Desktop と Cursor)、最初に起動したものが ポート 3025 を保持し、ほかのクライアントはブリッジなしで実行されます。そのため、各クライアントにキーを 渡してください。キーがなければ、サーバーはページをブラウザに送信しません。ポップアップとこのサーバーの ログに、どこに何を貼り付けるかが表示されます。接続時には両方の側でキーを知っていることを証明します (HMAC 交換。キーがソケットを通過することはありません)。最初にサーバーが証明します。サーバーが動作して いない間にポート 3025 を取得したプログラムは、拡張機能から何も受け取れません。また、キーを持たずに サーバーに接続したプログラムは、ページを要求できません。0.6.0 以降、Firefox では追加設定は不要です (0.5.3 では、PAGE2AI_BRIDGE_ORIGINS にインストール時の UUID が必要でした)。ポップアップで New key を選ぶか、拡張機能を再インストールすると、新しいキーが生成されます。古いキーを新しいキーに 置き換えてください。MCP クライアントの設定やブラウザープロファイルを読める人はキーも読めます。ブリッジの 安全性は、ユーザーアカウントの安全性を超えるものではありません。

プロンプトの例

1. ドキュメントを取得して質問に回答する:

"page_to_markdown を使って https://docs.anthropic.com/en/docs/build-with-claude/extended-thinking を取得し、拡張思考の主なユースケースを3つ要約してください。"

2. API リファレンスをコードスニペットに抽出する:

"page_to_markdown で https://ai.google.dev/gemini-api/docs/thinking を取得し、thinking budget パラメーターを使った Python のコードサンプルを生成してください。"

3. 2つのドキュメントページを比較する:

"page_to_markdown で https://docs.anthropic.com/en/docs/prompt-engineering と https://platform.openai.com/docs/guides/prompt-engineering の両方を取得し、アプローチの違いを要約してください。"

呼び出しで返される内容

page_to_markdown(url="https://docs.anthropic.com/en/api/messages") の出力そのままです。 2026-10-18 に core 0.2.1 で取得し、一部省略しています。

---
title: "Messages"
source: "https://platform.claude.com/docs/en/api/messages"
captured_at: "2026-10-18T04:33:07.670Z"
language: "en"
description: "API reference for Messages endpoints"
canonical: "https://platform.claude.com/docs/en/api/messages"
og_title: "Messages - Claude API Reference"
extractor: "page2ai-core"
extractor_version: "0.2.1"
---

# Messages



A beta version of this API exists and may have additional functionality. [View the beta version](https://platform.claude.com/docs/en/api/http/beta/messages).

1. [API reference](https://platform.claude.com/docs/en/api/http)

##### [Create a Message](https://platform.claude.com/docs/en/api/http/messages/create)

 POST /v1/messages

Send a structured list of input messages with text and/or image content, and the model will generate the next message in the conversation.

YAML フロントマター(タイトル、ソース、取得日時、ページのメタデータ、抽出元の情報)に 続いて、ページが Markdown として表示されます。見出し、表、フェンス付きコードは保持され、 ナビゲーション、ヘッダー、フッター、サイドバーは除外されます。インターフェースのボタンは 除外されます(core 0.2.1)。0.3.0 までは、このページに «Copy page»(アイコンのグリフ付き)と «cURL» コードサンプル切り替えボタンもそれぞれ2回出力されていました。0.2.8 までは、この URL から サイト独自の Markdown コピーが返されていました(extractor_source: "content-negotiation")。 0.3.0 以降、サーバーはページのみを読み取ります。

設定

セットアップは不要です。すべての引数に適切なデフォルト値が設定されています。page_to_markdown は次を受け付けます。

引数型デフォルト効果
url文字列—変換する絶対 http(s) URL。プライベート範囲、ループバック、クラウドメタデータのエンドポイントはブロックされます(SSRF ガード)。html と併用する場合は取得されず、相対リンクの基準になります
html文字列(≤ 10 MB)—取得の代わりに変換するページの HTML。url または html が必要です
include_imagesブール値true出力に ![alt](src) 形式の画像参照を残します
include_frontmatterブール値trueYAML フロントマターブロックを先頭に追加します
timeout_ms整数15000N ミリ秒後に取得を中止します(1000–60000)

ホスト型エンドポイントが受け付けるのは url のみです(ChatGPT プラグインのレビューで確認された契約に基づきます)。 また、timeout_ms の上限は 20000 です。

ローカルサーバーの環境変数は、すべて省略可能です。

変数デフォルト効果
PAGE2AI_BRIDGE_KEY—Page2AI ポップアップに表示される Agent Bridge キー(複数可、カンマ区切り)。設定しない場合、ブリッジはブラウザーに接続しません
PAGE2AI_BRIDGE_PORT3025127.0.0.1 上の Agent Bridge のポート。拡張機能は 3025 にのみ接続するため、変更するのはテスト時にしてください。使用中の場合(別のインスタンスが実行中の場合)、サーバーはブリッジなしで起動します
PAGE2AI_BRIDGE_ORIGINS—Page2AI の Web Store ID 以外にブリッジが受け入れる、展開済みまたは独自ビルドの Chrome の正確なオリジン(chrome-extension://<id>)。Firefox では不要です

予定:profile 引数(auto | docs | marketing | research | dashboard | wordpress-marketing)。

プライバシー

@page2ai/mcp はデータを収集せず、テレメトリーを送信せず、明示的に指定した URL 以外への 外部ネットワーク呼び出しも行いません。ただし、AI クライアント(Claude、ChatGPT など)は、 抽出した Markdown をそのクライアントのプライバシーポリシーに基づいて、それぞれのモデルプロバイダーに 送信します。この部分はこのサーバーの管理外です。詳細は PRIVACY.md を参照してください。

Agent Bridge を有効にすると、拡張機能はブラウザーで表示される URL の Markdown を、サインイン済みの コンテンツも含めて、127.0.0.1 上の WebSocket 経由でこのサーバーに送信します。ほかの情報がマシンの外に 出ることはありませんが、その後 Markdown はほかの結果と同様に AI クライアントに送信されます。

ホスト型エンドポイントは性質が異なります。変換を依頼した URL は、作者が運用する サーバー(Vercel にデプロイ)から取得され、Vercel の標準的な運用ログに記録されます。アカウントも トラッキングもありません。この点が用途に合わない場合は、ローカルでサーバーを実行してください。 同じコードを使用します。

プロトコルの改訂

0.2.0以降、このサーバーは同じstdio接続上でMCPプロトコルの両方の改訂に対応します。

改訂クライアントによる接続の開始方法対応
2026-07-28_metaにio.modelcontextprotocol/protocolVersionを含めたserver/discoverはい
2025-11-25以前initializeハンドシェイクはい

serveStdioは開始メッセージからプロトコルの世代を判定し、接続中は1つのサーバーインスタンスを固定するため、古いSDKを使用するクライアントに影響はありません。バージョンの申告がないメッセージは、仕様上、2025年世代の開始メッセージとして扱われます。そのため、_metaフィールドのないserver/discoverにはアップグレードせず、-32601で応答します。

クライアントライブラリを使わず、生のJSON-RPCフレームでビルドを検証します。

printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"server/discover","params":{"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28"}}}' | node dist/index.js

既知のセキュリティ勧告

ありません。v2 SDKへの移行により、推移的なパッケージが90個削減されました(本番環境の依存関係は117個から26個になりました)。これに伴い、モノリシックな@modelcontextprotocol/sdkを介して0.1.xに含まれていた@hono/node-serverのセキュリティ勧告も解消されました。このパッケージは、stdio専用サーバーでもHTTPおよびOAuthサーバースタックを取り込んでいました。0.2.0時点でnpm auditに問題はありません。

開発

git clone https://github.com/igorsaevets/page2ai-mcp
cd page2ai-mcp
npm install
npm run build
node dist/index.js  # runs stdio MCP server

MCP Inspectorでテストします。

npx @modelcontextprotocol/inspector node dist/index.js

サポート

入力が最も手軽な方法ではなく、お持ちの内容に応じて連絡先を選んでください。

お持ちの内容連絡先
バグ、ページの抽出に関する問題、機能のアイデアGitHubのイシュー — 公開され検索可能なため、修正が次の人にも役立ちます
セキュリティの脆弱性非公開の脆弱性報告。SECURITY.mdを参照してください。公開イシューは作成しないでください
使用方法に関する質問まずドキュメント、その後イシューをご利用ください

作者について

Igor Saevets(AIの専門家、Page2AIの創業者)が執筆・保守しています。詳しい略歴: igorsaevets.github.io/page2ai-docs/about/。

以下は本人確認およびコラボレーションのためのリンクであり、サポート窓口ではありません。DMで報告されたバグは、後からほかの人が見つけられないバグになります。修正を希望する内容は、上記の表から報告してください。

ビルドの来歴

MCPサーバーは起動したプロセスの権限で実行されるため、tarballの入手元は形式上の問題ではなく、セキュリティ上の問題です。v0.1.2以降のリリースは、npm provenanceを使用してGitHub Actionsから公開されています。各バージョンには、生成元のコミットとワークフロー実行を示すSigstoreアテステーションが付与され、公開Rekor透明性台帳に記録されるとともに、npmjs.comにバッジとして表示されます。

信頼する前に確認してください。

npm audit signatures
npm view @page2ai/mcp --json | jq '.dist.attestations'

ライセンス

MIT — LICENSEを参照してください。Copyright © 2026 Igor Saevets.

関連項目

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。