MCP Webscan Server について
MCP Webscan Serverは、サイトのコンテンツを調べるチームやエージェント向けのページ取得・分析ツールです。リンク抽出、サイト巡回、リンク切れ確認、URLパターン検索、XMLサイトマップ生成に対応します。
主な機能
- 01ページをMarkdownに変換
- 02リンクの抽出と分析
- 03深度を指定したサイト巡回
- 04リンク切れの確認
- 05正規表現によるURL検索
- 06XMLサイトマップの生成
活用シーン
- 01分析用のページコンテンツ取得
- 02サイト内リンクの発見
- 03ページ上のリンク切れの確認
- 04サイト巡回からのサイトマップ作成
MCP 対応
ページ取得、サイト巡回、リンク分析、パターン検索、サイトマップ生成のツールをMCPクライアントに公開します。stdioトランスポートを使用し、Claude Desktopなどのクライアント向け設定が記載されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Webscan Server
Web コンテンツのスキャンと分析を行う Model Context Protocol(MCP)サーバーです。このサーバーは、Web ページの取得、分析、情報抽出を行うツールを提供します。
機能
- ページの取得:Web ページを分析しやすい Markdown に変換します
- リンクの抽出:Web ページからリンクを抽出して分析します
- サイトのクロール:Web サイトを再帰的にクロールしてコンテンツを見つけます
- リンクのチェック:Web ページ上のリンク切れを特定します
- パターンマッチング:特定のパターンに一致する URL を検索します
- サイトマップの生成:Web サイトの XML サイトマップを生成します
インストール
Smithery 経由でのインストール
Smithery 経由で Claude Desktop に Webscan を自動的にインストールするには:
npx -y @smithery/cli install mcp-server-webscan --client claude
手動インストール
# Clone the repository
git clone <repository-url>
cd mcp-server-webscan
# Install dependencies
npm install
# Build the project
npm run build
使用方法
サーバーの起動
npm start
サーバーは stdio トランスポートで実行されるため、Claude Desktop などの MCP クライアントと互換性があります。
利用可能なツール
-
fetch-page- Web ページを取得し、Markdown に変換します。
- パラメーター:
url(必須):取得するページの URL。selector(任意):特定のコンテンツを対象にする CSS セレクター。
-
extract-links- Web ページからテキスト付きのリンクをすべて抽出します。
- パラメーター:
url(必須):分析するページの URL。baseUrl(任意):リンクを絞り込むためのベース URL。limit(任意、デフォルト:100):返すリンクの最大数。
-
crawl-site- 指定した深さまで Web サイトを再帰的にクロールします。
- パラメーター:
url(必須):クロールを開始する URL。maxDepth(任意、デフォルト:2):クロールの最大深度(0~5)。
-
check-links- ページ上のリンク切れをチェックします。
- パラメーター:
url(必須):リンクをチェックする URL。
-
find-patterns- 特定のパターンに一致する URL を検索します。
- パラメーター:
url(必須):検索対象の URL。pattern(必須):URL の照合に使用する、JavaScript 互換の正規表現パターン。
-
generate-site-map- クロールによって簡易的な XML サイトマップを生成します。
- パラメーター:
url(必須):サイトマップのクロールを開始するルート URL。maxDepth(任意、デフォルト:2):URL の検出に使用するクロールの最大深度(0~5)。limit(任意、デフォルト:1000):サイトマップに含める URL の最大数。
Claude Desktop での使用例
- Claude Desktop の設定でサーバーを構成します:
{
"mcpServers": {
"webscan": {
"command": "node",
"args": ["path/to/mcp-server-webscan/build/index.js"], // Corrected path
"env": {
"NODE_ENV": "development",
"LOG_LEVEL": "info" // Example: Set log level via env var
}
}
}
}
- 会話でツールを使用します:
Could you fetch the content from https://example.com and convert it to Markdown?
開発
前提条件
- Node.js >= 18
- npm
プロジェクト構成(リファクタリング後)
mcp-server-webscan/
├── src/
│ ├── config/
│ │ └── ConfigurationManager.ts
│ ├── services/
│ │ ├── CheckLinksService.ts
│ │ ├── CrawlSiteService.ts
│ │ ├── ExtractLinksService.ts
│ │ ├── FetchPageService.ts
│ │ ├── FindPatternsService.ts
│ │ ├── GenerateSitemapService.ts
│ │ └── index.ts
│ ├── tools/
│ │ ├── checkLinksTool.ts
│ │ ├── checkLinksToolParams.ts
│ │ ├── crawlSiteTool.ts
│ │ ├── crawlSiteToolParams.ts
│ │ ├── extractLinksTool.ts
│ │ ├── extractLinksToolParams.ts
│ │ ├── fetchPageTool.ts
│ │ ├── fetchPageToolParams.ts
│ │ ├── findPatterns.ts
│ │ ├── findPatternsToolParams.ts
│ │ ├── generateSitemapTool.ts
│ │ ├── generateSitemapToolParams.ts
│ │ └── index.ts
│ ├── types/
│ │ ├── checkLinksTypes.ts
│ │ ├── crawlSiteTypes.ts
│ │ ├── extractLinksTypes.ts
│ │ ├── fetchPageTypes.ts
│ │ ├── findPatternsTypes.ts
│ │ ├── generateSitemapTypes.ts
│ │ └── index.ts
│ ├── utils/
│ │ ├── errors.ts
│ │ ├── index.ts
│ │ ├── logger.ts
│ │ ├── markdownConverter.ts
│ │ └── webUtils.ts
│ ├── initialize.ts
│ └── index.ts # Main server entry point
├── build/ # Compiled JavaScript (Corrected)
├── node_modules/
├── .clinerules
├── .gitignore
├── Dockerfile
├── LICENSE
├── mcp-consistant-servers-guide.md
├── package.json
├── package-lock.json
├── README.md
├── RFC-2025-001-Refactor.md
├── smithery.yaml
└── tsconfig.json
ビルド
npm run build
開発モード
npm run dev
eval の実行
eval パッケージは MCP クライアントを読み込み、その後 index.ts ファイルを実行するため、テストのたびに再ビルドする必要はありません。npx コマンドの前に環境変数を指定すると、環境変数を読み込めます。詳細なドキュメントはこちらをご覧ください。
OPENAI_API_KEY=your-key npx mcp-eval src/evals/evals.ts src/tools/extractLinksTool.ts
エラー処理
このサーバーは包括的なエラー処理を実装しています:
- 無効なパラメーター
- ネットワークエラー
- コンテンツ解析エラー
- URL の検証
すべてのエラーは MCP 仕様に従って適切にフォーマットされます。
コントリビューション
- リポジトリをフォークします
- フィーチャーブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
ライセンス
MIT License - 詳細は LICENSE ファイルをご覧ください
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
