mcpField
W
websharp

websharp

ローカル
github.com/jgador検索257 週間前に更新

websharp について

WebSharpは、LLM向けにウェブ検索と記事抽出を提供するC#・.NET 9製のMCPサーバーです。SearXNGのメタ検索とSmartReaderを組み合わせ、単一または複数URLの読み取りに対応します。

主な機能

  1. 01SearXNGによるウェブ検索
  2. 02要約と構造化検索結果の返却
  3. 03単一または複数ページの本文抽出
  4. 04streamable HTTPによるMCP接続
  5. 05Docker Compose設定の提供

活用シーン

  1. 01調査テーマに関するウェブ情報の検索
  2. 02ファクトチェック用の記事本文抽出
  3. 03複数ページを読み込んだ内容分析

MCP 対応

streamable HTTP経由で、ウェブ検索とページ抽出を行う`web_search`および`web_page_read`ツールをMCPクライアントに提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"jgador-websharp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"docker.io/jessegador/websharp-mcp:v0.99.0-rc2"
]
}
}
}
起動コマンドdocker run -i --rm docker.io/jessegador/websharp-mcp:v0.99.0-rc2

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocidocker.io/jessegador/websharp-mcp:v0.99.0-rc2

ツール

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

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

詳細

WebSharp MCP HTTP サーバー

WebSharp は、C#(.NET 9)で記述された Model Context Protocol(MCP)サーバーで、ストリーミング可能な HTTP トランスポートを介して、ウェブ検索と読みやすいページ抽出のツールを提供します。SearXNG メタ検索インスタンスと SmartReader コンテンツ抽出ライブラリを組み合わせており、すべてを 1 つのコマンドでローカル実行できる Docker アセットが付属しています。

主な特長

  • ModelContextProtocol.AspNetCore を介して ASP.NET Core から提供される、ストリーミング可能な HTTP MCP エンドポイント。
  • SearXNG を利用したメタ検索ツール。読みやすい要約と構造化 JSON メタデータの両方を返します。
  • SmartReader を活用したページ読み取りツール。単一 URL にも複数 URL にも対応し、情報の根拠付けやファクトチェックのワークフローに最適です。
  • Docker Compose を使ったコンテナー中心の開発環境と、インスペクターですぐに利用できる .mcp.json プロファイル。

利用可能な MCP ツール

web_search
パラメーター型デフォルト説明
querystring必須設定された検索バックエンド(デフォルトは SearXNG)に送信する自由形式の検索文字列。
limitinteger10テキスト要約に表示する結果の最大数。0 以下の場合、このパラメーターは省略され、結果数はバックエンドによって決定されます。
categoriesstring"general"バックエンドに渡す、カンマ区切りのカテゴリ(SearXNG の場合は general,it,science など)。
languagestring"en"バックエンドに渡す言語タグ。デフォルトの SearXNG インスタンスを使用する場合は、言語一覧を参照してください。

レスポンス

  • 上位の結果、関連する候補、応答しなかったエンジンを示すテキスト要約。
  • structuredContent には、次の内容を含む JSON オブジェクトが格納されます。
    • query:評価された検索文字列のエコー。
    • items:結果オブジェクト(title、url、content、engine/engines、category、positions、parsed_url)の配列。
    • suggestions:バックエンドが返す関連クエリ(SearXNG では利用可能な場合に表示されます)。
    • unresponsive_engines:タイムアウトまたは失敗したエンジンの一覧。任意のメッセージが含まれる場合があります。
    • error:検索を完了できなかった場合に含まれます。
web_page_read
パラメーター型デフォルト説明
urlsarray必須取得して解析する 1 つ以上の絶対 HTTP/HTTPS URL。

レスポンス

  • URL が 1 つの場合、記事タイトル、抜粋、読みやすいテキストのプレビュー(約 800 文字)、およびフッターのメタデータ(ソース URL、検出された言語)を返します。
  • 複数の URL の場合、要約には全体の成功数/失敗数、ページごとの詳細(タイトル、URL、全文、言語)、失敗時のエラーメッセージが含まれます。リクエストは並行して実行され、MCP キャンセルトークンに従います。
  • structuredContent は設定されません。すべてのデータはテキストブロックで返されます。
Docker Compose ですべてを実行する
  1. Docker Desktop(または OCI 互換の別のランタイム)をインストールし、起動していることを確認します。
  2. リポジトリのルートから、SearXNG の依存関係と MCP サーバーの両方を起動します。
    docker compose -f docker-compose.yaml --project-name websharp up -d(初回、または Dockerfile の変更後は --build を追加します)。
  3. websharp-mcp コンテナーに Now listening on: http://0.0.0.0:8080 と表示されるまで待ちます。
  4. MCP サーバーは http://localhost:8081(コンテナーのポート 8080 からマッピング)で利用できるようになります。SearXNG は確認用に http://localhost:8080/ で利用できます。
Docker イメージを手動でビルドする

リポジトリのルートから Docker Compose を使わずにサーバーイメージをビルドします。

docker build -f .\src\WebSharp.Mcp.Http\Dockerfile -t jessegador/websharp-mcp:v0.99.0-rc2 --no-cache src

公開予定のイメージレジストリとタグに合わせて -t を変更します。

MCP Inspector に接続する
  1. 上記の Compose スタックを起動します(または起動したままにします)。
  2. 同梱のクライアントプロファイルを使って Inspector を起動します。
    npx -y @modelcontextprotocol/inspector --config .\.mcp.json --server websharp-mcp
  3. ブラウザーで http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=<token> を開き、表示されたトークンを Inspector の UI にコピーします。
  4. Inspector の UI で websharp-mcp サーバーを選択すると、利用可能なツールを確認し、すぐに呼び出しを試せます。

ソースから実行する

  • .NET 9 SDK をインストールします。
  • SearXNG エンドポイントにアクセスできることを確認します。最も簡単な方法は、Docker Compose サービスを引き続き使用し、アプリの起動前に Searxng__BaseUrl を http://localhost:8080 に設定することです。
  • サーバーを起動します。
    dotnet run --project src/WebSharp.Mcp.Http/WebSharp.Mcp.Http.csproj --urls http://localhost:8081
  • MCP エンドポイントは / で待ち受けます。DEBUG ビルドでは、/__routes にアクセスして、設定されている ASP.NET エンドポイントを確認できます。

設定

環境変数デフォルト説明
ASPNETCORE_URLShttp://0.0.0.0:8080(Docker)HTTP サーバーの待ち受けアドレス。公開する MCP ポートを変更するには上書きします。
Searxng__BaseUrlhttp://searxng:8080SearXNG インスタンスのベース URL。同梱の Docker サービスを実行しない場合は必須です。絶対 URI を指定してください。
Cors__AllowAnyOrigintrueすべてのオリジンを許可します。Cors__AllowedOrigins__0=<origin> 形式のキーを使用して呼び出し元を制限する場合は、false に設定します。
Cors__AllowAnyHeadertrueすべてのリクエストヘッダーを許可します。
Cors__AllowAnyMethodtrueすべての HTTP メソッドを許可します。
Cors__AllowCredentialsfalsetrue の場合、認証情報が受け入れられます。オリジンを明示的に列挙する必要があります。
Cors__AllowedOrigins__{n}(空)AllowAnyOrigin が false の場合に指定する、任意のオリジン許可リスト項目です。
Cors__AllowedHeaders__{n}(空)任意のヘッダー許可リストです。
Cors__AllowedMethods__{n}(空)任意のメソッド許可リストです。

すべての設定値は appsettings.json/appsettings.Development.json からも指定できます。Docker Compose の定義では、ローカルで試すための適切なデフォルト値がマウントされます。

別の SearXNG インスタンスを使用する

  • Searxng__BaseUrl にホストされている SearXNG デプロイの URL(例:https://searxng.example.com)を指定します。
  • 接続先のエンドポイントで SearXNG Search API が公開され、リクエストするカテゴリと言語が許可されていることを確認します。
  • MCP レジストリに公開する前に、同梱の searxng/settings.yml を調整して、有効化するエンジン、セーフサーチ、レート制限を設定することを検討してください。

セキュリティに関する注意

  • HTTP トランスポートには認証が含まれていません。localhost の外部に公開する場合は、リバースプロキシ、トンネル、または VPN の背後で実行してください。
  • CORS はデバッグ用に制限の緩い設定がデフォルトになっています。共有環境にデプロイする前に、制限を強化してください。
  • サーバーは MCP のキャンセルトークンを尊重し、ページの取得には短い HTTP タイムアウトを設定して、クライアントセッションがハングしないようにします。

レジストリのメタデータ

  • 名前:websharp-mcp
  • トランスポート:streamable-http
  • エンドポイント:/
  • すぐに使える Inspector プロファイルについては .mcp.json を参照してください。

ライセンス

このプロジェクトは MIT ライセンスで公開されています(LICENSE を参照してください)。

コメント

MCP は初めてですか?

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

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