mcpField
C
clean-markdown

clean-markdown

ローカル
github.com/damonwill78-a11yブラウザ自動化014 週間前に更新

clean-markdown について

clean-markdownは、URLをLLMやRAG向けのMarkdownに変換するMCPサーバーです。Mozilla Readabilityでページのノイズを除去し、JavaScriptで構築されたサイトはPlaywrightで描画できます。

主な機能

  1. 01記事本文を抽出しページのノイズを除去
  2. 02GitHub Flavored Markdownに変換
  3. 03リンクを残す設定
  4. 04PlaywrightによるJavaScriptページの描画
  5. 05タイトル、URL、単語数を返却

活用シーン

  1. 01RAGパイプライン用のウェブ文章整理
  2. 02AIエージェントによる記事の読解
  3. 03JavaScript構築ページのコンテンツ抽出

MCP 対応

MCPクライアント向けにscrape_urlツールを公開し、URLを取得して整形済みMarkdownを返します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"damonwill78-a11y-clean-markdown": {
"command": "npx",
"args": [
"-y",
"clean-markdown-mcp"
]
}
}
}
起動コマンドnpx -y clean-markdown-mcp

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

パッケージ
npmclean-markdown-mcp1.1.3

ツール

1

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
urlstringはい取得するウェブページの完全な URL(http:// または https:// で始まる必要があります)。
renderJsbooleanいいえ最初に実際のブラウザーでページをレンダリングします(デフォルトは false)。JavaScript でコンテンツが生成されるサイトで使用します。Playwright のインストールが必要です。
includeLinksbooleanいいえ出力にハイパーリンクを保持します(デフォルトは true)。false に設定すると、より簡潔なプレーンテキストになります。

詳細

clean-markdown-mcp

あらゆる URL をクリーンで LLM 対応の Markdownに変換するMCPサーバーです。広告、ナビゲーションバー、Cookie バナー、スクリプトは取り除きます。

入力に余計なものがあれば出力にも余計なものが含まれる、RAG パイプラインや AI エージェント向けに作られています。

Give it:  https://en.wikipedia.org/wiki/Markdown
Get back: # Markdown

          Markdown is a lightweight markup language for creating
          formatted text using a plain-text editor...

インストール

npm install -g clean-markdown-mcp

Claude Desktop で使う

claude_desktop_config.jsonに以下を追加します。

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "clean-markdown": {
      "command": "npx",
      "args": ["-y", "clean-markdown-mcp"]
    }
  }
}

Claude Desktop を再起動し、 *「https://example.com を Markdown にスクレイピングして」*と頼みます。

Cursor、Windsurf、その他の MCP クライアントでも同じように使えます。clean-markdown-mcpコマンドを指定してください。

公開されるツール

scrape_url

パラメーター型説明
urlstringスクレイピングするページです。http://またはhttps://である必要があります。
includeLinksbooleanMarkdown にハイパーリンクを残します。デフォルトはtrueです。文章をよりすっきりさせるにはfalseに設定します。
renderJsbooleanJavaScript で構築されたサイト向けに、最初に実際のブラウザーでページを読み込みます。デフォルトはfalseです。Playwright が必要です。詳細は以下をご覧ください。

ページタイトル、ソース、単語数、クリーンな Markdown を返します。

クリーニングの仕組み

  1. 取得 — タイムアウトは 20 秒、サイズ上限は 5 MB で、リダイレクトのたびに検証します。
  2. クリーニング — Firefox のリーダービューの基盤となっているエンジン、Mozilla Readabilityを実行して記事本文を抽出し、ナビゲーション、サイドバー、広告、コメント欄を除外します。
  3. 変換 — Turndownで GitHub 形式の Markdown に変換し、見出し、リスト、表、コードブロックを保持します。

ページが記事形式でない場合も失敗せず、クリーニングした<body>にフォールバックするため、利用可能なテキストを取得できます。

JavaScript を多用するサイト(任意)

サイトによっては、読み込み後に JavaScript でコンテンツを構築します。通常の取得では、そうしたサイトからほとんど何も取得できません。対応するには、Playwright を一度インストールします。

npm install playwright && npx playwright install chromium

その後、renderJs: trueを渡します。こうしたページでは大きな違いが出ます。

モード結果
デフォルト約 3 語 — ナビゲーションリンクのみ
renderJs: true約 190 語 — コンテンツ全体

Playwright はこのパッケージの依存関係ではないため、通常のインストールは軽量で高速です。Playwright がインストールされていない場合、renderJsは有効化方法を示す明確なメッセージを返します。

セキュリティ

このスクレーパーは、クラウドメタデータエンドポイント(169.254.169.254など)を含む、プライベート、ループバック、リンクローカルのアドレスを拒否し、リダイレクトのたびに再検証します。MCP サーバーはローカルネットワークにアクセスできる状態で、お使いのマシン上で動作するため、これは重要です。

大量にスクレイピングする必要がありますか?

このパッケージは、ローカルで一度に 1 ページを処理します。一括スクレイピング、ホスト型 JavaScript レンダリング、インフラを運用せずに使えるページ単位の従量課金 API には、同じエンジンをホスト型 Actor として利用できます。

https://apify.com/perforated_hummingbird/url-to-markdown

既知の制限事項

  • 自動化されたトラフィックをブロックするサイトもあります。これはサイトのポリシーであり、このツールの不具合ではありません。
  • UTF-8 以外のページは、文字化けして表示されることがあります。
  • robots.txtは適用されません。利用方法はご自身の責任でご判断ください。

ローカルでの開発

npm install
npm run build
node dist/try.js https://example.com          # quick test
node dist/try.js https://example.com --render # with JS rendering

ライセンス

MIT

コメント

MCP は初めてですか?

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

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