Sitemap MCP Server について
Sitemap MCP Serverは、サイト構造を調べる人向けにウェブサイトのサイトマップを取得・解析します。ページの絞り込みやページネーション、統計情報、可視化用プロンプトを備えています。
主な機能
- 01サイトマップツリーの取得と解析
- 02ページの絞り込みとページネーション
- 03サイトマップ統計の取得
- 04XMLやテキストの直接解析
- 05分析・可視化用プロンプト
活用シーン
- 01サイトのページ構成を把握
- 02ルート別にサイトマップURLを絞り込み
- 03サイトマップの健全性を確認
- 04サイト構造図を作成
MCP 対応
MCP サーバーとして、サイトマップツリー、ページ、統計情報の取得と、サイトマップ内容の解析を行うツールを公開します。再利用可能なプロンプトも含まれます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Sitemap MCP サーバー
任意の URL からサイトマップを取得、解析、可視化して、ウェブサイトのアーキテクチャを把握し、サイト構造を分析できます。手作業で調べることなく、隠れたページを見つけ、整理された階層構造を抽出できます。
Claude Desktop ですぐに使えるプロンプトテンプレートが用意されています。URL を入力するだけで、ウェブサイトの分析、サイトマップの健全性チェック、URL の抽出、コンテンツの不足箇所の特定、可視化を行えます。
デモ
サイトマップの機能を活用して、任意のウェブサイトについての質問に答えます。
Cursor:modelcontextprotocol.io のページ数は?
Claude + プロンプト:windsurf.com のサイトマップを図で可視化する
ツールボタンの隣にある「添付」ボタンをクリックします。
次に、visualize_sitemap を選択します。
ここで windsurf.com を入力します。
サイトマップが可視化されます。
インストール
uv がインストールされていることを確認してください。
Claude Desktop、Cursor、または Windsurf へのインストール
この項目を claude_desktop_config.json、Cursor の設定などに追加します。
{
"mcpServers": {
"sitemap": {
"command": "uvx",
"args": ["sitemap-mcp-server"],
"env": { "TRANSPORT": "stdio" }
}
}
}
Claude が起動中の場合は、再起動してください。Cursor の場合は、更新を押すか、設定で MCP サーバーを有効にします。
Smithery 経由でのインストール
Smithery 経由で Claude Desktop 用の sitemap を自動的にインストールするには:
npx -y @smithery/cli install @mugoosse/sitemap --client claude
MCP Inspector
uv + stdio トランスポート
npx @modelcontextprotocol/inspector env TRANSPORT=stdio uvx sitemap-mcp-server
http://127.0.0.1:6274 で MCP Inspector を開き、stdio トランスポートを選択して、MCP サーバーに接続します。
uv + sse トランスポート
# Start the server
uvx sitemap-mcp-server
# Start the MCP Inspector in a separate terminal
npx @modelcontextprotocol/inspector connect http://127.0.0.1:8050
http://127.0.0.1:6274 で MCP Inspector を開き、sse トランスポートを選択して、MCP サーバーに接続します。
SSE トランスポート
SSE トランスポートを使用する場合は、次の手順に従ってください。
- サーバーを起動します。
uvx sitemap-mcp-server
- MCP クライアントを設定します(例:Cursor)。
{
"mcpServers": {
"sitemap": {
"transport": "sse",
"url": "http://localhost:8050/sse"
}
}
}
ローカル開発
ソースからプロジェクトをビルドして実行する手順については、DEVELOPERS.md ガイドを参照してください。
使い方
ツール
MCP サーバーでは、以下のツールを利用できます。
-
get_sitemap_tree - Web サイトの URL からサイトマップツリーを取得して解析します
- 引数:
url(Web サイトの URL)、include_pages(任意、ブール値) - 戻り値:サイトマップツリー構造を表す JSON
- 引数:
-
get_sitemap_pages - フィルタリングオプションを指定して、Web サイトのサイトマップからすべてのページを取得します
- 引数:
url(Web サイトの URL)、limit(任意)、include_metadata(任意)、route(任意)、sitemap_url(任意)、cursor(任意) - 戻り値:ページネーションのメタデータを含むページの JSON リスト
- 引数:
-
get_sitemap_stats - Web サイトのサイトマップの統計情報を取得します
- 引数:
url(Web サイトの URL) - 戻り値:ページ数、更新日、サブサイトマップの詳細などを含むサイトマップ統計情報の JSON オブジェクト
- 引数:
-
parse_sitemap_content - XML またはテキストのコンテンツからサイトマップを直接解析します
- 引数:
content(サイトマップの XML コンテンツ)、include_pages(任意、ブール値) - 戻り値:解析したサイトマップを表す JSON
- 引数:
プロンプト
サーバーには、Claude Desktop にテンプレートとして表示される、すぐに使えるプロンプトが含まれています。サーバーをインストールすると、メッセージ入力欄の横にある + アイコンをクリックして開く「Templates」メニューに、これらのテンプレートが表示されます。
- Analyze Sitemap:Web サイトのサイトマップ構造を包括的に分析します
- Check Sitemap Health:サイトマップの SEO と健全性の指標を評価します
- Extract URLs from Sitemap:サイトマップから特定の URL を抽出してフィルタリングします
- Find Missing Content in Sitemap:Web サイトのサイトマップにおけるコンテンツの不足箇所を特定します
- Visualize Sitemap Structure:サイトマップ構造を Mermaid.js の図として可視化します
これらのプロンプトを使用するには:
- Claude Desktop のメッセージ入力欄の横にある + アイコンをクリックします
- リストから目的のテンプレートを選択します
- プロンプトが表示されたら、Web サイトの URL を入力します
- Claude が適切なサイトマップ分析を実行します
使用例
サイトマップ全体を取得する
{
"name": "get_sitemap_tree",
"arguments": {
"url": "https://example.com",
"include_pages": true
}
}
フィルタリングとページネーションを使ってページを取得する
ルートでフィルタリングする
{
"name": "get_sitemap_pages",
"arguments": {
"url": "https://example.com",
"limit": 100,
"include_metadata": true,
"route": "/blog/"
}
}
特定のサブサイトマップでフィルタリングする
{
"name": "get_sitemap_pages",
"arguments": {
"url": "https://example.com",
"limit": 100,
"include_metadata": true,
"sitemap_url": "https://example.com/blog-sitemap.xml"
}
}
カーソルベースのページネーション
サーバーは、大規模なサイトマップを効率的に処理できるよう、MCP のカーソルベースのページネーションを実装しています。
初回リクエスト:
{
"name": "get_sitemap_pages",
"arguments": {
"url": "https://example.com",
"limit": 50
}
}
ページネーション情報を含むレスポンス:
{
"base_url": "https://example.com",
"pages": [...], // First batch of pages
"limit": 50,
"nextCursor": "eyJwYWdlIjoxfQ=="
}
カーソルを使った次のリクエスト:
{
"name": "get_sitemap_pages",
"arguments": {
"url": "https://example.com",
"limit": 50,
"cursor": "eyJwYWdlIjoxfQ=="
}
}
結果がこれ以上ない場合、レスポンスにnextCursorフィールドは含まれません。
サイトマップの統計情報を取得する
{
"name": "get_sitemap_stats",
"arguments": {
"url": "https://example.com"
}
}
レスポンスには、全体の統計情報と各サブサイトマップの詳細な統計情報が含まれます。
{
"total": {
"url": "https://example.com",
"page_count": 150,
"sitemap_count": 3,
"sitemap_types": ["WebsiteSitemap", "NewsSitemap"],
"priority_stats": {
"min": 0.1,
"max": 1.0,
"avg": 0.65
},
"last_modified_count": 120
},
"subsitemaps": [
{
"url": "https://example.com/sitemap.xml",
"type": "WebsiteSitemap",
"page_count": 100,
"priority_stats": {
"min": 0.3,
"max": 1.0,
"avg": 0.7
},
"last_modified_count": 80
},
{
"url": "https://example.com/blog/sitemap.xml",
"type": "WebsiteSitemap",
"page_count": 50,
"priority_stats": {
"min": 0.1,
"max": 0.9,
"avg": 0.5
},
"last_modified_count": 40
}
]
}
これにより、MCP クライアントは、さらに調査する価値のあるサブサイトマップを把握できます。その後、get_sitemap_pagesのsitemap_urlパラメーターを使って、特定のサブサイトマップからページを絞り込めます。
サイトマップのコンテンツを直接解析する
{
"name": "parse_sitemap_content",
"arguments": {
"content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\"><url><loc>https://example.com/</loc></url></urlset>",
"include_pages": true
}
}
謝辞
- この MCP サーバーは、ultimate-sitemap-parserライブラリを活用しています
- Model Context Protocol Python SDK を使用して構築されています
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳しくはLICENSEファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。