mcpField
W
Web Page Fetcher

Web Page Fetcher

ローカル
github.comブラウザ自動化326 週間前に更新

Web Page Fetcher について

Web Page Fetcher は、ウェブページを取得して読みやすい構造化 Markdown に変換する Go 製 MCP サーバーです。ページ内容を必要とする AI クライアント向けで、SSRF 対策とオプションの JavaScript レンダリングを備えています。

主な機能

  1. 01読みやすい Markdown の抽出
  2. 02見出し、リスト、表、コードの保持
  3. 037 層の SSRF 対策
  4. 04ドメイン単位のレート制限とキャッシュ
  5. 05オプションの画像処理と JavaScript レンダリング

活用シーン

  1. 01AI クライアントで記事やドキュメントを読む
  2. 02ニュースサイトやフォーラムから構造化データを抽出
  3. 03レンダリングを有効にして JavaScript の多いページを取得

MCP 対応

この MCP サーバーは、MCP 対応クライアントに URL の取得機能と Markdown コンテンツを提供します。クライアントからコマンドを使ってローカル実行できます。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpbpaimon-mcp-fetch-0.1.2-windows-amd64.zip

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

paimon-mcp-fetch

AI アシスタントがあらゆるウェブページを読めるようにします。

URL を取得し、読みやすく整形された Markdown を返す軽量な MCP サーバーです。Go で構築されており、5ms で起動し、メモリ使用量は約 10MB、実行時の依存関係はありません。

リリース Go バージョン ライセンス


できること

URL を渡すと、整形された Markdown を返します。

おすすめの用途:

  • 記事、ブログ投稿、ドキュメントを読む
  • ニュースサイト、フォーラム、スケジュールからデータを抽出する
  • ウェブコンテンツを AI アシスタント向けに要約する
  • 構造化された出力を取得する(見出し、リスト、表、コードブロックを保持)

おすすめできない用途:

  • ログインが必要なページのスクレイピング
  • ペイウォールの回避
  • 本格的なブラウザー自動化ツールの代替

クイックスタート

1. インストール

次のいずれかの方法を選んでください:

# Go (recommended)
go install github.com/paimonchan/paimon-mcp-fetch/cmd/paimon-mcp-fetch@latest

# Homebrew (macOS/Linux)
brew tap paimonchan/tap
brew install paimon-mcp-fetch

# Scoop (Windows)
scoop bucket add paimonchan https://github.com/paimonchan/scoop-bucket
scoop install paimon-mcp-fetch

# Winget (Windows)
winget install paimonchan.paimon-mcp-fetch

# Docker
docker run -i --rm ghcr.io/paimonchan/paimon-mcp-fetch:latest
2. AI アシスタントを設定する

MCP クライアントの設定に以下を追加します:

{
  "mcp": {
    "paimon-mcp-fetch": {
      "type": "local",
      "command": ["paimon-mcp-fetch"],
      "enabled": true
    }
  }
}
3. 完了

これで AI が、渡されたあらゆる URL を読めるようになります。


他のフェッチツールより優れている点

paimon-mcp-fetch基本的なテキストフェッチ
出力構造化された Markdownプレーンテキスト
記事の抽出可読性アルゴリズム(広告、ナビゲーション、サイドバーを除去)生の HTML 本文
画像抽出と処理に対応(オプション)なし
JS レンダリング対応(ヘッドレス Chrome、オプション)静的コンテンツのみ
キャッシュLRU キャッシュを内蔵なし
レート制限ドメインごとに設定可能なし
SSRF 保護7 層の防御なし
起動時間約 5ms環境による
メモリ約 10MB環境による

設定

すべて環境変数で制御できます。ほとんどの場合、変更は不要です。デフォルト設定で十分に機能します。

変数デフォルト説明
PAIMON_MCP_FETCH_TIMEOUT_MS12000リクエストのタイムアウト(ms)
PAIMON_MCP_FETCH_MAX_HTML_BYTES10485760ページの最大サイズ(10MB)
PAIMON_MCP_FETCH_CACHE_TTL_SECS300キャッシュの有効期間(5 分)
PAIMON_MCP_FETCH_RATE_LIMIT_PER_SECOND5.0ドメインごとのリクエスト数/秒
PAIMON_MCP_FETCH_RATE_LIMIT_BURST10バーストの最大サイズ
PAIMON_MCP_FETCH_RETRY_MAX_ATTEMPTS3一時的なエラー発生時の再試行回数
PAIMON_MCP_FETCH_JS_RENDER_ENABLEDfalseヘッドレス Chrome を有効にする

オプション機能

画像処理

ウェブページから画像を抽出して処理します:

go build -tags image -o paimon-mcp-fetch ./cmd/paimon-mcp-fetch/
JS レンダリング

JavaScript を多用するサイト(SPA、動的コンテンツ)向け:

go build -tags jsrender -o paimon-mcp-fetch ./cmd/paimon-mcp-fetch/
PAIMON_MCP_FETCH_JS_RENDER_ENABLED=true ./paimon-mcp-fetch

注: Chrome または Chromium のインストールが必要です。処理は遅くなります(1 ページあたり約 3~5 秒)が、静的フェッチでは対応できないサイトも扱えます。


対応する AI アシスタント

MCP 互換のクライアントであれば、どれでも使用できます。以下の設定をクライアントの設定ファイルに追加してください。

OpenCode

設定ファイル: ~/.config/opencode/opencode.json

{
  "mcp": {
    "paimon-mcp-fetch": {
      "type": "local",
      "command": ["paimon-mcp-fetch"],
      "enabled": true
    }
  }
}
Claude Desktop

設定ファイル: claude_desktop_config.json

{
  "mcpServers": {
    "paimon-mcp-fetch": {
      "command": "paimon-mcp-fetch"
    }
  }
}
Cursor

設定ファイル: .cursor/mcp.json(プロジェクト)または ~/.cursor/mcp.json(グローバル)

{
  "mcpServers": {
    "paimon-mcp-fetch": {
      "command": "paimon-mcp-fetch",
      "env": {}
    }
  }
}
VS Code(GitHub Copilot)

設定ファイル: .vscode/mcp.json(ワークスペース)またはユーザー設定

{
  "servers": {
    "paimon-mcp-fetch": {
      "type": "stdio",
      "command": "paimon-mcp-fetch"
    }
  }
}
Cline

設定ファイル: .cline/mcp.json

{
  "mcpServers": {
    "paimon-mcp-fetch": {
      "command": "paimon-mcp-fetch"
    }
  }
}
Windsurf

設定ファイル: .windsurf/mcp.json

{
  "mcpServers": {
    "paimon-mcp-fetch": {
      "command": "paimon-mcp-fetch"
    }
  }
}
カスタム設定を使用する場合

すべてのクライアントで環境変数を使用できます。タイムアウトとキャッシュをカスタマイズする例:

{
  "mcpServers": {
    "paimon-mcp-fetch": {
      "command": "paimon-mcp-fetch",
      "env": {
        "PAIMON_MCP_FETCH_TIMEOUT_MS": "30000",
        "PAIMON_MCP_FETCH_CACHE_TTL_SECS": "600"
      }
    }
  }
}

セキュリティ

開発当初からセキュリティを重視して構築されています:

  • SSRF 保護 — サーバーサイドリクエストフォージェリに対する 7 層の防御
  • プライベート IP のブロック — localhost や内部ネットワークへのアクセスを防止
  • リダイレクトの検証 — リダイレクトの各段階で安全性を再確認
  • サイズ制限 — ストリームベースの読み込みにより、メモリの大量消費を防止
  • タイムアウト — すべてのリクエストに期限を設定
  • ログにシークレットを記録しない — API キーやトークンはログに記録されません
Windows のウイルス対策

ウイルス対策ソフトによって、署名のない Go バイナリが誤検知される場合があります。これは業界で知られている問題です。解決策:

  1. go install を使用する — ウイルス対策ソフトには署名済みの Go コンパイラーが認識されます
  2. Docker を使用する — ローカルにバイナリを置く必要はありません
  3. ソースからビルドする — 自分でコードを検証できます

アーキテクチャ

クリーンアーキテクチャの原則に基づいて構築されています:

MCP Server → UseCase → Domain (entities, ports)
                        ↑
            Adapters implement interfaces
  • ドメイン — ビジネスルール、外部依存なし
  • ユースケース — オーケストレーションロジック
  • アダプター — HTTP クライアント、コンテンツ抽出機能、キャッシュ、レートリミッター、画像処理、JS レンダラー

詳細はプロジェクト計画をご覧ください。


ライセンス

MIT — ご自由にお使いください。


Go で構築されています。実行時の依存関係はゼロ。単一バイナリ。RAM 使用量は約 10MB。5ms で起動します。

コメント

MCP は初めてですか?

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

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