Sitemap MCP Server

by mugoosse
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • References GitHub for project repository and asset hosting, though not a core integration

  • Handles Google News sitemaps, allowing for fetching and analyzing news-specific sitemap data

  • Creates Mermaid.js diagrams to visualize sitemap structures through the provided sitemap visualization prompts

サイトマップMCPサーバー

サイトマップMCPサーバーは、AIエージェントとMCPクライアントに、ウェブサイトのサイトマップを取得、解析、分析、可視化するための強力なツールを提供します。XML、Googleニュース、プレーンテキストのサイトマップなど、あらゆる標準的なサイトマップ形式に対応しています。

デモ

サイトマップの機能を活用して、あらゆる Web サイトに関する質問への回答を得ることができます。

ツールボタンの横にある「添付」ボタンをクリックします。

次に、 visualize_sitemapを選択します。

ここで、windsurf.com にアクセスします。

そして、サイトマップの視覚化が得られます。

インストール

uvがインストールされていることを確認してください。

Claude Desktop、Cursor、Windsurfへのインストール

次のエントリをclaude_desktop_config.json 、カーソル設定などに追加します。

{ "mcpServers": { "sitemap": { "command": "uvx", "args": ["sitemap-mcp-server"], "env": { "TRANSPORT": "stdio" } } } }

Claude が起動している場合は再起動してください。Cursor の場合は、更新ボタンを押すか、設定で MCP サーバーを有効にしてください。

Smithery経由でインストール

Smithery経由で Claude Desktop のサイトマップを自動的にインストールするには:

npx -y @smithery/cli install @mugoosse/sitemap --client claude

MCP検査官

npx @modelcontextprotocol/inspector env TRANSPORT=stdio uvx sitemap-mcp-server

http://127.0.0.1:6274で MCP インスペクターを開き、 stdioトランスポートを選択して、MCP サーバーに接続します。

# 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 インスペクターを開き、 sseトランスポートを選択して、MCP サーバーに接続します。

SSEトランスポート

SSE トランスポートを使用する場合は、次の手順に従ってください。

  1. サーバーを起動します。
uvx sitemap-mcp-server
  1. MCP クライアント (カーソルなど) を構成します。
{ "mcpServers": { "sitemap": { "transport": "sse", "url": "http://localhost:8050/sse" } } }

地域開発

ソースからプロジェクトをビルドして実行する手順については、 DEVELOPERS.mdガイドを参照してください。

使用法

ツール

MCP サーバー経由では次のツールを利用できます。

  • get_sitemap_tree - ウェブサイトの URL からサイトマップ ツリーを取得して解析します
    • 引数: url (ウェブサイトの URL)、 include_pages (オプション、ブール値)
    • 戻り値: サイトマップのツリー構造のJSON表現
  • get_sitemap_pages - フィルタリングオプションを使用して、ウェブサイトのサイトマップからすべてのページを取得します
    • 引数: url (ウェブサイトの URL)、 limit (オプション)、 include_metadata (オプション)、 route (オプション)、 sitemap_url (オプション)、 cursor (オプション)
    • 戻り値: ページ区切りメタデータを含むページのJSONリスト
  • get_sitemap_stats - ウェブサイトのサイトマップに関する統計情報を取得する
    • 引数: url (ウェブサイトのURL)
    • 戻り値: ページ数、変更日、サブサイトマップの詳細を含むサイトマップの統計情報を含む JSON オブジェクト
  • parse_sitemap_content - XML またはテキストコンテンツからサイトマップを直接解析します
    • 引数: content (サイトマップ XML コンテンツ)、 include_pages (オプション、ブール値)
    • 戻り値: 解析されたサイトマップのJSON表現

プロンプト

サーバーには、Claude Desktop でテンプレートとして表示される、すぐに使えるプロンプトが含まれています。サーバーをインストールすると、「テンプレート」メニュー(メッセージ入力欄の横にある + アイコンをクリック)にこれらのテンプレートが表示されます。

  • サイトマップ分析: ウェブサイトのサイトマップの包括的な構造分析を提供します
  • サイトマップの健全性をチェック: サイトマップのSEOと健全性の指標を評価します
  • サイトマップから URL を抽出: サイトマップから特定の URL を抽出してフィルタリングします。
  • サイトマップ内の欠落コンテンツを見つける: ウェブサイトのサイトマップ内のコンテンツのギャップを特定します
  • サイトマップ構造の視覚化: サイトマップ構造の Mermaid.js 図視覚化を作成します。

これらのプロンプトを使用するには:

  1. Claude Desktopのメッセージ入力の横にある+アイコンをクリックします
  2. リストから希望のテンプレートを選択してください
  3. プロンプトが表示されたらウェブサイトのURLを入力してください
  4. クロードは適切なサイトマップ分析を実行します

完全なサイトマップを取得する

{ "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_pagessitemap_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 } }

謝辞

ライセンス

このプロジェクトはMITライセンスの下で提供されています。詳細はLICENSEファイルをご覧ください。

ID: 07w9m4uqkl