Website to PDF/Markdown MCP Server について
Website to PDF/Markdown MCP Serverは、ウェブページを取得してPDFまたはMarkdownに変換し、リンク先の複数ページも処理できます。ページの保存、文書化、サイト内URLの把握に利用できます。
主な機能
- 01ウェブページをPDFに変換
- 02ウェブページをMarkdownに変換
- 03リンクをたどって複数ページを統合
- 04ユーザー名とパスワードで認証
- 05巡回するページ数を制限
- 06巡回してURLを返却
活用シーン
- 01ウェブページをPDFで保存
- 02サイトの内容をMarkdown化
- 03リンク先ページを文書にまとめる
- 04サイト内のURLを収集
MCP 対応
ウェブページのPDF・Markdown変換、リンク巡回、URL取得の機能をMCPクライアントに提供します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://example.comclaude mcp add --transport http website-to-pdf https://example.com{"mcpServers":{"website-to-pdf":{"type":"http","url":"https://example.com"}}}Cursor で開く{"servers":{"website-to-pdf":{"type":"http","url":"https://example.com"}}}VS Code で開く{"mcpServers":{"website-to-pdf":{"type":"http","url":"https://example.com"}}}{"mcpServers":{"website-to-pdf":{"serverUrl":"https://example.com"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
WebサイトからPDF/Markdownへの変換 MCP サーバー
この MCP サーバーは、認証が必要なサイトも含め、Webサイトを取得してPDFまたはMarkdownドキュメントに変換します。また、Webページ上のリンクをたどり、生成されるドキュメントに含めたり、見つかったURLを返したりできます。
機能
- 1つのWebページをPDFに変換
- WebページをMarkdown形式に変換
- Webページ上のリンクをたどり、複数のページを1つのPDFまたはMarkdownファイルに変換
- ユーザー名とパスワードによる認証に対応
- リンクをたどる際の最大ページ数を設定可能
- Webサイトのリンクをたどり、変換せずにURLを返す
セットアップ
- このリポジトリをクローンします
- 依存関係をインストールします:
npm install - サンプル環境ファイルをコピーします:
cp .env.example .env - サーバーを起動します:
npm start
API エンドポイント
WebサイトをPDFに変換
POST /api/convert
リクエストボディ:
{
"url": "https://example.com",
"username": "optional-username",
"password": "optional-password",
"traverseLinks": true,
"maxPages": 10
}
パラメーター:
url:(必須)PDFに変換するURLusername:(任意)認証用のユーザー名password:(任意)認証用のパスワードtraverseLinks:(任意)ページ上のリンクをたどるかどうか(デフォルト:false)maxPages:(任意)リンクをたどる際に処理する最大ページ数(デフォルト:10)
レスポンス:
レスポンスには、適切なContent-Typeヘッダーが設定されたPDFドキュメントが含まれます:
Content-Type: application/pdf
Content-Disposition: attachment; filename="example_com.pdf"
PDFのバイナリコンテンツは、レスポンスボディで直接返されます。
WebサイトをMarkdownに変換
POST /api/to-markdown
リクエストボディ:
{
"url": "https://example.com",
"username": "optional-username",
"password": "optional-password",
"traverseLinks": true,
"maxPages": 10
}
パラメーター:
url:(必須)Markdownに変換するURLusername:(任意)認証用のユーザー名password:(任意)認証用のパスワードtraverseLinks:(任意)ページ上のリンクをたどるかどうか(デフォルト:false)maxPages:(任意)リンクをたどる際に処理する最大ページ数(デフォルト:10)
レスポンス:
レスポンスには、適切なContent-Typeヘッダーが設定されたMarkdownドキュメントが含まれます:
Content-Type: text/markdown
Content-Disposition: attachment; filename="example_com.md"
Markdownコンテンツは、レスポンスボディで直接返されます。
WebサイトをたどってURLを返す
POST /api/traverse
リクエストボディ:
{
"url": "https://example.com",
"username": "optional-username",
"password": "optional-password",
"maxPages": 10
}
パラメーター:
url:(必須)リンクをたどり始めるURLusername:(任意)認証用のユーザー名password:(任意)認証用のパスワードmaxPages:(任意)たどる最大ページ数(デフォルト:10)
レスポンス:
{
"success": true,
"message": "Website traversed successfully (found 8 URLs)",
"urls": [
"https://example.com",
"https://example.com/page1",
"https://example.com/page2",
...
]
}
カスタマイズ
src/index.jsの該当する関数を変更して、PDFおよびMarkdownの生成をカスタマイズできます:
PDFの生成
websiteToPdf関数では、以下を設定できます:
- カスタムページ形式
- 背景のレンダリング
- ページの余白
- Puppeteerのオプションによるその他の設定
Markdownの生成
websiteToMarkdown関数はTurndownライブラリを使用しており、以下の機能を利用できます:
- 変換用のカスタムルール
- 特定のHTML要素を保持する機能
- コードブロック、見出し、リストの処理オプション
認証の処理
デフォルトの実装では、シンプルなユーザー名/パスワード形式のフォームを想定しています。対象とするWebサイトに応じて、認証ロジックのカスタマイズが必要になる場合があります。
Claude MCPとしての使用
このサーバーはClaude MCP(Managed Claude Plugin)として設定されており、Claudeから直接使用できます。使用するには:
セルフホストのセットアップ
- Heroku、Vercel、ご自身のインフラストラクチャなどのプラットフォームで、このサーバーをホストします
- サーバーにHTTPS経由で一般公開アクセスできることを確認します
- リポジトリにicon.pngファイルを追加します
Claudeへのインストール
- ブラウザーでClaudeを開き、「プラグイン」セクションに移動します
- 「プラグインを作成」をクリックします
- MCPサーバーをホストしているURLを入力します
- ClaudeがAPIエンドポイントを検出し、プラグインのインターフェースを作成します
- プラグインを保存して有効にします
Claude での使用
インストールすると、Claude との会話で MCP を直接使用できます。
- 「example.com を PDF に変換して」
- 「example.com を Markdown に変換して」
- 「example.com の URL をすべて取得して」
- 「ユーザー名 'myuser'、パスワード 'mypass' を使って、認証が必要なウェブサイトを変換して」
このプラグインには、主に次の 3 つの機能があります。
- ウェブサイトを PDF に変換する
- ウェブサイトを Markdown に変換する
- ウェブサイトを巡回して、見つかった URL を返す
ローカル開発
ローカル開発では、ngrok などのツールを使ってローカルサーバーをインターネットに公開できます。
npm start
# In a separate terminal
ngrok http 3000
その後、Claude で MCP を設定する際に ngrok の URL を使用してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。