Web2MD について
Web2MDは、ウェブページをMarkdown、プレーンテキスト、トークン数を制限したチャンクに変換するMCPサーバーです。ページ内容やメタデータの取得、RAG用データの準備に使え、RapidAPI上のWeb2MD APIを利用します。
主な機能
- 01ページ内容をMarkdownまたはテキストで取得
- 02見出しに沿ったトークン数制限付きチャンク
- 03入力HTMLの変換
- 04ページメタデータの取得
活用シーン
- 01RAGや埋め込み用のウェブコンテンツ準備
- 02ナビゲーションや広告を除いてページを読む
- 03既存のHTMLをMarkdownやテキストに変換
MCP 対応
MCPクライアントに`read_url`、`chunk_url`、`convert_html`、`page_metadata`ツールを提供します。Web2MD APIの利用にはRapidAPIキーが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | 絶対 http(s) URL、最大2048文字。 |
| format | enum | いいえ | 出力形式。デフォルトは markdown です。markdown | text | json |
| include_links | boolean | いいえ | リンクを [text](url) の形式で保持します。デフォルトは true。 |
| include_images | boolean | いいえ | 画像を  の形式で保持します。デフォルトは false。 |
| include_tables | boolean | いいえ | 表を Markdown テーブルとして保持します。デフォルトは true。 |
詳細
Web2MD MCP サーバー
RapidAPI の Web2MD API を使用して、任意のウェブページを読みやすい Markdown、プレーンテキスト、またはトークン数の上限に合わせた RAG チャンクに変換する MCP サーバーです。
できること
read_url:ウェブページを取得し、ナビゲーション、広告、定型文を除いた主要コンテンツを Markdown またはプレーンテキストで返します。chunk_url:ウェブページを取得し、RAG やエンベディング用に、見出しを考慮したトークン数のチャンクに分割します。convert_html:手元にある生の HTML を Markdown またはプレーンテキストに変換します。page_metadata:ページ全体のコンテンツを取得せずに、タイトル、著者、公開日、説明などのフィールドを取得します。
3 ステップでセットアップ
- RapidAPI で Web2MD をサブスクライブします。BASIC プランは無料で、月間 500 件のリクエストが含まれます。
- リスティングの Endpoints タブから
X-RapidAPI-Keyをコピーします。 - クライアントにサーバーを追加します。
Node.js 22 以降が必要です。
Claude Code:
claude mcp add web2md -e RAPIDAPI_KEY=your-key -- npx -y web2md-rag-mcp
Claude Desktop(claude_desktop_config.json)と Cursor(~/.cursor/mcp.json)では、同じ JSON を使用します:
{
"mcpServers": {
"web2md": {
"command": "npx",
"args": ["-y", "web2md-rag-mcp"],
"env": { "RAPIDAPI_KEY": "your-key" }
}
}
}
Windsurf:同じブロックを ~/.codeium/windsurf/mcp_config.json に配置します。
ツール
| ツール | 内容 | 引数 | 戻り値 |
|---|---|---|---|
read_url | ページを読みやすい Markdown またはテキストとして取得 | url(最大 2048 文字);format:markdown、text、json;include_links、include_images、include_tables | タイトル、トークン数、コンテンツ;format: "json" は完全な JSON ドキュメントを返します |
chunk_url | ページを RAG チャンクに分割 | url;max_tokens 64-8192(デフォルト 512);overlap_tokens 0-1024(デフォルト 50);include_links、include_images、include_tables | total_tokens と chunks を含む JSON。各チャンクには見出しパスとトークン数が含まれます |
convert_html | 生の HTML を変換 | html(最大 5,000,000 文字);相対リンクの解決に使用する任意の url;format;include_links、include_images、include_tables | read_url と同じ |
page_metadata | ページのメタデータを取得 | url | タイトル、著者、日付、説明、サイト名、言語、正規 URL、画像、単語数、読了時間を含む JSON |
制限とプラン
| プラン | 料金 | 月間リクエスト数 |
|---|---|---|
| BASIC | $0 | 500 |
| PRO | $9 | 10,000 |
| ULTRA | $29 | 60,000 |
| MEGA | $79 | 250,000 |
- RapidAPI のレート制限:1 時間あたり 1,000 件のリクエストです。
- 最大 5 MB のページに対応します。
- robots.txt を尊重します。
- JavaScript を多用するページでは
no_contentが返される場合があります。レンダリングへの対応は今後予定されています。
エラー
ツールのエラーは Web2MD error [code]: message の形式です。入力検証の失敗(URL が不正、数値が範囲外など)は、代わりに MCP SDK から MCP error -32602: Input validation error ... の形式で返されます。
| コード | 意味 |
|---|---|
missing_key | RAPIDAPI_KEY が設定されていません |
invalid_key | RAPIDAPI_KEY に HTTP ヘッダーで許可されていない文字が含まれています。貼り付けた改行が原因であることがよくあります |
rapidapi_auth | RapidAPI がキーを拒否したか、サブスクリプション登録されていません |
rapidapi_quota | プランのクォータまたはレート制限を使い切りました |
invalid_request | リクエストの検証に失敗しました(HTTP 422) |
invalid_url | 400:http/https ではない、認証情報が含まれている、ホストがない、ポートが不正、または 2048 文字を超えています |
blocked_destination | 400:ホストがプライベート、ループバック、リンクローカル、またはメタデータのアドレスに解決されました。ポートが 80/443 ではない場合や、localhost/.local/.internal も該当します。すべてのリダイレクトに適用されます |
dns_error | 400:ホストを名前解決できません |
robots_disallowed | 403:そのパスに対する web2md ユーザーエージェントのアクセスが、サイトの robots.txt で禁止されています |
page_too_large | 413:ページが 5 MB を超えています |
unsupported_content_type | 415:HTML ではありません |
no_content | 422:メインコンテンツが 10 語未満です。JavaScript のみのページであることがよくあります |
host_rate_limited | 429:取得対象のサイトを保護するための、サイトごとの制限です。ご利用のクォータではありません |
target_blocked | 502:サイトが 401/403/429/503 を返しました。ボット対策の壁が原因であることがよくあります |
target_error | 502:サイトが別の 4xx/5xx を返しました |
fetch_failed | 502:接続できなかったか、TLS に失敗しました |
too_many_redirects | 502:リダイレクトが 5 回を超えました |
fetch_timeout | 504:取得に 15 秒を超えました |
timeout | Web2MD リクエストがタイムアウトしました |
network_error | API にリクエストが到達しませんでした |
bad_response | API が JSON 以外の成功レスポンスを返しました |
http_<status> | その他の HTTP エラー。レスポンスの短い抜粋が含まれます |
internal_error | MCP サーバー内部で予期しないエラーが発生しました |
プライバシー
キーは RapidAPI ゲートウェイ(web2md-webpage-to-markdown-rag-chunks.p.rapidapi.com)にのみ送信され、ログに記録されることはありません。
開発
npm ci
npm test
npm run lint
npm run build
RAPIDAPI_KEY=your-key npm run smoke
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。