mcp-my-site について
mcp-my-siteは、単一サイトをクロールしてキーワードまたはハイブリッド検索用のインデックスを作り、ASP.NET CoreからMCPの検索・取得ツールとサイト内検索向けJSON APIを提供します。AIクライアントにサイト内容を検索・閲覧させたいサイト運営者向けです。
主な機能
- 01サイトのクロールとインデックス作成
- 02キーワードとベクトルのハイブリッド検索
- 03MCP検索・取得ツール
- 04サイト向けJSON検索API
- 05更新インデックスのホットスワップ
- 06OpenAI互換の埋め込みプロバイダー
活用シーン
- 01AIクライアントによるサイト内ページの検索
- 02サイト内検索ボックスへの検索機能追加
- 03APIキー不要のキーワードインデックス作成
- 04埋め込みプロバイダーによる意味検索の追加
MCP 対応
サーバーはStreamable HTTP経由でsearchとfetchのツールを公開し、サイトに基づくサーバー説明も生成します。コマンドラインのインデクサーがサイトをクロールし、サーバーが読み込むインデックスを作成します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://ai.pournasserian.com/mcpclaude mcp add --transport http pournasserian-mcp-my-site https://ai.pournasserian.com/mcp{"mcpServers":{"pournasserian-mcp-my-site":{"type":"http","url":"https://ai.pournasserian.com/mcp"}}}Cursor で開く{"servers":{"pournasserian-mcp-my-site":{"type":"http","url":"https://ai.pournasserian.com/mcp"}}}VS Code で開く{"mcpServers":{"pournasserian-mcp-my-site":{"type":"http","url":"https://ai.pournasserian.com/mcp"}}}{"mcpServers":{"pournasserian-mcp-my-site":{"serverUrl":"https://ai.pournasserian.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ghcr.io/pournasserian/mcp-my-site:0.3.0Streamable HTTPツール
詳細
mcp-my-site
ウェブサイトを指定すると、ChatGPT、Claude などの MCP クライアントから検索や閲覧ができるようになります。
コマンドラインのインデクサーがサイトをクロールし、キーワードとベクトルを組み合わせたハイブリッドインデックスを作成します。小規模な ASP.NET Core アプリが、このインデックスを search と fetch のツールを備えた MCP サーバーとして、またサイト独自の検索ボックス向けの JSON 検索 API として提供します。サーバーごとにサイトは 1 つで、1,000 ページ未満のサイトを対象としています。
今すぐ試す
ポウルナセリアン・ドットコムのインデックスを作成したライブインスタンスです。
| MCP エンドポイント | https://ai.pournasserian.com/mcp |
| 検索 API | https://ai.pournasserian.com/api/search?q=mcp%20caching |
| API リファレンス | https://ai.pournasserian.com/docs |
claude mcp add --transport http pournasserian https://ai.pournasserian.com/mcp
次に、Claude Code にサイトについて質問してみてください。ChatGPT では、エンドポイントをコネクターとして追加します。ツールは、コネクターが想定する search と fetch の契約に従います。
クイックスタート
.NET 10 SDK が必要です。それ以外は不要です。最初のインデックスはキーワード検索のみのため、API キーは必要ありません。
dotnet tool install --global mcpmysite
mcpmysite init https://example.com --keyword-only # writes appsettings.json
mcpmysite build # crawls the site into ./index
mcpmysite search "how can I contact you" # checks the index
docker run --rm -p 5000:8080 -v "$PWD/index:/index:ro" -e Index__Path=/index ghcr.io/pournasserian/mcp-my-site:latest
Docker を使わない場合は、リポジトリをクローンし、クローンしたディレクトリから Index__Path=index dotnet run --project src/McpMySite.Server を実行してソースからサーバーを起動するか、公開します(ユーザーガイド)。インデクサーもクローンしたディレクトリから dotnet run --project src/McpMySite.Indexer -- ... で実行できます。これは、未リリースの変更を試す方法です。
サーバーは http://localhost:5000 で利用できます。エージェント向けは /mcp、JSON 向けは /api/search?q=contact、読み込み済みインデックスの確認は /healthz です。/ のランディングページでは、各クライアントの接続方法と、MCP Inspector を使ったサーバーのテスト方法を確認できます。
claude mcp add --transport http mysite http://localhost:5000/mcp
ハイブリッド検索にアップグレードする。 キーワード検索は単語を照合しますが、ハイブリッド検索は意味も照合します。ライブインスタンスではこちらを使用しています。OpenAI 互換の埋め込みエンドポイントを利用するには API キーが必要です。デフォルトでは OpenRouter を使用しますが、別のプロバイダーも利用できます。キーは AI_API_KEY から読み込まれ、ファイルには書き込まれません。小規模なサイトなら、埋め込みの費用は 1 セント未満です。
export AI_API_KEY=sk-...
# in appsettings.json, under Embeddings, change "Enabled": false to true, then rebuild and serve
mcpmysite build
docker run --rm -p 5000:8080 -v "$PWD/index:/index:ro" -e Index__Path=/index -e AI_API_KEY ghcr.io/pournasserian/mcp-my-site:latest
Windows PowerShell と cmd、ホストに .NET をインストールせずに使う Docker、その他の MCP クライアント(VS Code、Cursor、Claude Desktop)については、ユーザーガイドを参照してください。
機能
- ハイブリッド検索。 BM25 キーワード検索と埋め込みベクトル検索をクエリごとに統合します。埋め込みプロバイダーを利用できない場合は、キーワードのみの検索にフォールバックします。
- キーなしで動作。 キーワードのみのインデックスには埋め込みプロバイダーは不要です。設定を1つ変更して再構築すれば、後からハイブリッド検索に切り替えられます。
- ChatGPT と Claude に対応。 ChatGPT コネクターが使用する形式の
searchツールとfetchツールを備えた Streamable HTTP MCP エンドポイントを提供し、サイト自体から生成されるサーバー指示も利用できます。Claude Code、Claude Desktop、VS Code、Cursor、MCP Inspector で動作します。 - 検出可能。
/mcp/server-cardでは、エンドポイント、プロトコルのバージョン、キーが必要かどうかを記載した MCP サーバーカード(SEP-2127)を提供し、/llms.txtでは LLM 向けにインデックス済みページを一覧表示します。 - 独自サイト向けの検索 API。 CORS、レート制限、オフセットページング、OpenAPI 3.1 ドキュメント、対話型リファレンスを備えた
GET /api/searchを提供します。検索ボックスをサイトに追加するためのコードスニペットは、ユーザーガイドにあります。 - Docker イメージ。
docker pull ghcr.io/pournasserian/mcp-my-site:latestを実行し、インデックスをマウントするか、URL を指定します。 - ホットスワップ。 サーバーはインデックスのソースをポーリングし、再起動せずに新しいビルドへ切り替えます。
- テレメトリ。 OpenTelemetry のトレース、メトリクス、ログを Application Insights または任意の OTLP コレクターに送信します。設定を有効にしない限り、クエリテキストは記録されません。
- あらゆる埋め込みプロバイダーに対応。 デフォルトでは OpenRouter を使用しますが、OpenAI 互換のエンドポイントであれば利用できます。
ドキュメント
- ユーザーガイド:インストール、各設定、クライアントの接続、デプロイ、トラブルシューティング、FAQ。
- アーキテクチャ:インデクサー、インデックス形式、サーバーの連携について説明します。
- 変更履歴とコントリビューションガイド。
リポジトリ
| パス | 内容 |
|---|---|
src/McpMySite.Core | インデックスモデルとマニフェスト、JSON および SQLite ストア、ハイブリッド検索、埋め込みクライアント |
src/McpMySite.Indexer | mcpmysite CLI:クロール、抽出、チャンク化、埋め込み、書き込み |
src/McpMySite.Server | ASP.NET Core アプリ:MCP エンドポイント、検索 API、インデックスの読み込み、テレメトリ |
tests/McpMySite.Tests | 単体テストと統合テスト |
dotnet build
dotnet test
質問やアイデアはディスカッションへ、バグは課題へお寄せください。変更はプルリクエストを通じてのみ master に反映されます。MIT ライセンス。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。