mcpField
S
SearXNG MCP Server

SearXNG MCP Server

ローカル
npmjs.com検索1.3k1 日前に更新

SearXNG MCP Server について

SearXNG MCP Serverは、MCPクライアントをSearXNGに接続し、信頼できる、または自分で運用するインスタンスを使ったWeb検索とURL閲覧を可能にします。検索フィルターやページネーション、複数の通信・デプロイ方式を備え、JSON検索を有効にしたSearXNGが別途必要です。

主な機能

  1. 01フィルターとページネーション付きWeb検索
  2. 02Webページと範囲制限付きPDFテキストの読み取り
  3. 03クエリ候補とインスタンス情報の確認
  4. 04任意のレプリカ切り替えとキャッシュ
  5. 05STDIOとStreamable HTTPのトランスポート
  6. 06静的Bearer認証と任意のOAuth保護

活用シーン

  1. 01AIアシスタントでWeb検索
  2. 02指定URLからテキストを読み取る
  3. 03SearXNGインスタンスのカテゴリやエンジンを確認
  4. 04ローカルまたはHTTPサービス経由で検索に接続

MCP 対応

MCPサーバーはMCPクライアントをSearXNGに接続し、Web検索、クエリ候補、インスタンス情報の確認、URL閲覧のツールを提供します。クライアントはSTDIOで起動するか、独立稼働するHTTPサービスに接続できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": [
"-y",
"mcp-searxng"
],
"env": {
"SEARXNG_URL": "<SEARXNG_URL>",
"AUTH_USERNAME": "<AUTH_USERNAME>",
"AUTH_PASSWORD": "<AUTH_PASSWORD>"
}
}
}
}
起動コマンドnpx -y mcp-searxng
設定が必要な環境変数
SEARXNG_URLシークレットURL of your SearXNG instance
AUTH_USERNAMEシークレットLegacy global SearXNG Basic Auth username
AUTH_PASSWORDシークレットLegacy global SearXNG Basic Auth password

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

パッケージ
npmmcp-searxng2.9.0

ツール

4

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
querystringはい検索クエリ文字列。これは必須のパラメーター名です。`prompt` や `q` ではなく、正確に `query` を使用してください。
pagenointegerいいえ検索結果のページ番号(1 から開始)
enginesstringいいえ検索対象として指定する SearXNG エンジン名をカンマ区切りで指定します(例:'google,bing,ddg')。到達可能なインスタンスの /config 機能情報を集約します。一貫した複数インスタンスの結果を得るには、searxng_instance_info engines.common.enabled を優先してください。engines.available.enabled の値は可能な範囲で適用され、一部のインスタンスでしか反映されない場合があります。既知の値は大文字と小文字を区別せず正規化されます。未知の値は前後の空白を除去して転送され、SearXNG が無視または適用します。/config を利用できない場合、値はそのまま警告付きで転送されます。省略すると、各インスタンスのサーバー側デフォルトが使用されます。
languagestringいいえ検索結果の言語コード(例:'en'、'fr'、'de')。デフォルトはインスタンスによって異なります。
min_scorenumberいいえ関連性スコアの最小しきい値(0.0~1.0)。このスコアを下回る結果は除外されます。
categoriesstringいいえSearXNG カテゴリーをカンマ区切りで指定します。到達可能なインスタンスの /config 機能情報を集約します。一貫した複数インスタンスの結果を得るには、searxng_instance_info categories.common を優先してください。categories.available の値は可能な範囲で適用され、一部のインスタンスでしか反映されない場合があります。既知の値は大文字と小文字を区別せず正規化されます。未知の値は前後の空白を除去して転送され、SearXNG が無視または適用します。/config を利用できない場合、値はそのまま警告付きで転送されます。省略すると、各インスタンスのサーバー側デフォルトが使用されます。
safesearchenumいいえセーフサーチのフィルターレベル(0:なし、1:中、2:厳格)0 | 1 | 2
time_rangeenumいいえ検索対象の期間(day、week、month、year)。エンジンを明示的に指定する場合、選択したすべてのエンジンが /config を通じて time_range_support=true を確認する必要があります。day | week | month | year
num_resultsnumberいいえ返す結果の最大数(1-20)。運用者上限 SEARXNG_MAX_RESULTS が上限として適用されます。
result_detailenumいいえ結果の詳細度:full は SearXNG のメタデータと検索シグナルを保持します。compact は各結果について title、URL、content-snippet フィールドのみを返します(JSON キー:title、url、content)。省略時は full が使用されます。compact | full
response_formatenumいいえレスポンス形式:エージェント向けの整形済みテキスト、またはプログラムで利用するクライアント向けの生 JSON。省略時は SEARXNG_DEFAULT_RESPONSE_FORMAT が適用され、未設定または無効の場合は text が使用されます。明示的に指定した response_format が常に優先されます。text | json

詳細

🔍 SearXNG MCP Server

AI アシスタント向けのプライバシーを尊重したウェブ検索 — 運用者が管理する、または信頼できる SearXNG インスタンスを Claude、Cursor などと一緒に使えます。

GitHub Stars npm version npm downloads Docker Pulls License: MIT OpenSSF Scorecard OpenSSF Best Practices mcp-searxng MCP server GitHub MCP Registry

SearXNG API と連携し、AI アシスタントにウェブ検索機能を提供する MCP サーバーです。

✨ GitHub MCP Registry で紹介されています。

クイックスタート

既存の JSON 検索が有効な SearXNG インスタンスが必要です。このプロジェクトは MCP クライアントを SearXNG に接続するものであり、SearXNG をインストールするものではありません。ご自身で運用している、または信頼できるインスタンスを使ってください。必要に応じて、セルフホストまたはパブリックインスタンスのガイドから始めてください。

接続方法を選んでください。

環境こちらから開始
クライアントがサーバーをローカルで起動するNode.js 22 以降をインストールし、以下の NPX の例、またはお使いのクライアント向けの手順を使ってください。
クライアントが Docker コンテナを起動するインストールの Docker/STDIO の手順を使ってください。
独立して稼働する HTTP サービスがある/mcp を含む完全な URL を指定して、お使いのクライアント向けの HTTP の手順を使ってください。
HTTP サービスを運用する必要があるHTTP サーバーガイドに従ってください。

Claude Desktop など、mcpServers JSON を使用するクライアントの場合は、次を追加してください。

{
  "mcpServers": {
    "searxng": {
      "command": "npx",
      "args": ["-y", "mcp-searxng"],
      "env": { "SEARXNG_URL": "https://search.example.com" }
    }
  }
}

サンプル URL をお使いの SearXNG のベース URL に置き換えてください。他のクライアントでは設定形式が異なります。お使いのクライアント向けの手順を選んでください。ローカル STDIO の場合は MCP_HTTP_PORT を設定しないでください。Docker の場合は、コンテナへの環境変数の引き渡しも必要です。

クライアントを再読み込みし、MCP ツール一覧を確認してから、SearXNG のドキュメントを検索するよう依頼してください。シンプルなツール呼び出しは {"query":"SearXNG"} を指定した searxng_web_search です。ツールの検出だけでは SearXNG への接続はテストされません。呼び出しに失敗する場合は、トラブルシューティングから確認してください。

機能

  • ページネーション、フィルター、直接回答、全文またはコンパクトなテキスト/JSON 出力で検索できます。
  • HTML、構造化テキスト、長さを制限した PDF テキストを読み取り、見出しや選択したセクションを確認できます。
  • インスタンスの機能を検出し、クエリの候補を取得できます。
  • レプリカへのフェイルオーバー/ファンアウト、HTML フォールバック、キャッシュ、プロキシ、ブラウザーソルバーを任意で利用できます。
  • ローカルの STDIO または Streamable HTTP を利用でき、静的ベアラートークンと任意の OAuth による保護にも対応しています。

機能と制限についてはツールガイド、 設定については設定リファレンス、リソース計画の範囲を限定した根拠となる 過去のデプロイ測定値をご覧ください。

mcp-searxng を選ぶ理由

2026-07-29 に記録された機能比較

2026-07-29 時点で、以下の機能比較は、公式の Brave MCP、 Exa MCP、および Firecrawl MCPプロジェクトを反映しています。「ページネーション」とは、ページまたはオフセットを指定できる機能を指します。「セルフホスト可能」とは、検索サービスを自分の管理下で実行できることを指します。「無料/API キー不要」とは、この MCP サーバーが有料の検索ベンダー API キーを必要としないことを意味します。ただし、基盤となる SearXNG インスタンスは、ご自身で運用するか選択する必要があります。

Brave MCPExa MCPFirecrawl MCPmcp-searxng
ウェブ検索✓✓✓✓
URL の読み取り✗✓✓✓
ページネーション✓✗✓✓
セルフホスト可能✗✗一部対応✓
無料/API キー不要✗✗✗✓

プライバシーは SearXNG のデプロイ方法によって異なります。運用者が管理するインスタンスを使えば、サードパーティの検索サービス運用者を信頼せずに済みます。一方、パブリックインスタンスにはクエリが送信され、ログに記録される場合があります。SearXNG とこの MCP 統合だけでは、匿名性は確保されません。

仕組み

MCP client → mcp-searxng → SearXNG → search engines

クライアントは、STDIO プロセスを独自に起動するか、HTTP サービスに接続します。 SEARXNG_URL が示すのは SearXNG サービスであり、MCP エンドポイントではありません。URL の読み取りでは、選択したウェブサイトに直接アクセスします。相互に置き換え可能な SearXNG デプロイメント用に、セミコロン区切りのレプリカリストを指定できます。詳しくは レプリカの設定をご覧ください。

デフォルトでは STDIO を使用します。レガシーの Streamable HTTP セッションは、デフォルトでステートフルです。クライアントは処理が終わったら DELETE /mcp を送信してください。その後、セッション終了により後続のリクエストが HTTP 404 を受け取った場合は、再初期化してください。モダン HTTP リクエストと MCP_HTTP_STATELESS=true のレガシーモードはセッションレスです。詳しくは HTTP トランスポートの設定をご覧ください。

ツール

ツール用途
searxng_web_search情報源の検索と結果の絞り込み
searxng_search_suggestionsクエリの補完や絞り込み
searxng_instance_infoカテゴリー、エンジン、デフォルト設定の確認
web_url_read既知の URL をテキスト/Markdown として読み取り

ツールガイドには、使用例とすべてのパラメーターの説明が記載されています。任意のリサーチワークフローでは、情報源の調査と根拠の引用方法について説明しています。

インストール

プロジェクトが管理する配布方法は、npm(npxを含む)とDockerです。Nixなどの追加のパッケージ形式は、コミュニティが別途管理できます。

NPXおよびnpmでインストールする場合は、Node.js 22以降が必要です。DockerイメージにはNode.jsランタイムが含まれています。

NPM(グローバルインストール)
npm install -g mcp-searxng
{
  "mcpServers": {
    "searxng": {
      "command": "mcp-searxng",
      "env": {
        "SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
      }
    }
  }
}
Docker

ビルド済みイメージ:

docker pull isokoliuk/mcp-searxng:latest

イメージの署名はCosignで検証できます。手順については、SECURITY.mdを参照してください。

{
  "mcpServers": {
    "searxng": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "SEARXNG_URL",
        "isokoliuk/mcp-searxng:latest"
      ],
      "env": {
        "SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
      }
    }
  }
}

追加の環境変数を渡すには、argsに-e VAR_NAMEを追加し、変数をenvに追加します。 ブラウザーソルバーとの統合では、FLARESOLVERR_URL、BYPARR_URL、または両方を渡し、設定したサービスにこのコンテナーからアクセスできるようにしてください。デュアルモードではFlareSolverrが常に先に実行され、自動的な逆順のフェイルオーバーはありません。安全にレンダリングされたHTMLと明示的なByparr PDFコンテンツは直接読み取られ、判別が難しいコンテンツには保護された再試行が使用されます。また、対象となる読み取りエラーでは、回数を制限したフェイルオーバーが行われます。動作の詳細とDocker Composeの例については、URL Reader Controlsを参照してください。

ローカルでビルド:

docker build -t mcp-searxng:latest -f Dockerfile .

上記と同じ設定を使用し、isokoliuk/mcp-searxng:latestをmcp-searxng:latestに置き換えてください。

Docker Compose

docker-compose.yml:

services:
  mcp-searxng:
    image: isokoliuk/mcp-searxng:latest
    stdin_open: true
    environment:
      - SEARXNG_URL=${SEARXNG_URL:?Set SEARXNG_URL in the environment}
      # Add optional variables as needed — see CONFIGURATION.md

追跡対象のComposeファイルは意図的にSTDIO専用となっており、ネットワークポートを公開しません。MCPクライアントは、絶対パスで指定したComposeファイルとdocker compose run --rm -Tを使って起動します。docker compose upは使用しません。-Tフラグは疑似TTYの割り当てを防ぎ、MCPのJSON-RPCが標準入力と標準出力をそのまま使用できるようにします。MCPクライアントからSEARXNG_URLが渡されない場合、Composeは起動前に失敗します。

MCPクライアントの設定:

{
  "mcpServers": {
    "searxng": {
      "command": "docker",
      "args": [
        "compose",
        "-f", "/absolute/path/to/docker-compose.yml",
        "run", "--rm", "-T", "mcp-searxng"
      ],
      "env": {
        "SEARXNG_URL": "YOUR_SEARXNG_INSTANCE_URL"
      }
    }
  }
}

以前、追跡対象のファイルをポート8080のHTTPサービスとして使用していた場合は、追跡対象外のdocker-compose.override.ymlにHTTP設定を記述してください。

services:
  mcp-searxng:
    ports:
      - "127.0.0.1:8080:8080"
    environment:
      - MCP_HTTP_PORT=8080
      - MCP_HTTP_HOST=0.0.0.0

ここで0.0.0.0はコンテナー側のバインドアドレスです。ホスト側のポートは引き続きループバックのみで待ち受けます。このオーバーライドには認証がなく、単一ホストでの一時的な移行手段としてのみ使用してください。同居するコンテナーを追加する前、またはサービスをローカルマシンの外部に公開する前に、強化されたデプロイのガイダンスに従ってください。

HTTPトランスポート

HTTPを個別に実行してから、クライアントを接続してください。ローカルでの確認、静的ベアラー認証、OAuthの要件、デプロイの検証については、HTTPサーバーガイドを参照してください。

設定

デフォルトのローカル設定では、SEARXNG_URLが必須です。強化されたHTTPやOAuthなどのオプションモードには、追加の要件があります。環境変数、デフォルト値、キャッシュ、タイムアウト、プロキシ、TLS、制限については、設定リファレンスを参照してください。

オプションのMCP OAuth

HTTPデプロイでは、外部の認可プロバイダーを使ってOAuthを利用できます。 認証方式を参照してください。 静的ベアラー認証とSearXNG Basic Authは、それぞれ異なる接続を保護します。

トラブルシューティング

症状次の確認項目
サーバーが見つからない、または切断されているクライアント/プロセスの起動
HTTP 認証、セッション、またはプロキシのエラーHTTP 接続
ツールは表示されるが検索に失敗するSearXNG 接続
結果が空、質が低い、または古いフィルター、上流メタデータ、キャッシュ
URL/PDF の読み込み失敗またはタイムアウトURL の読み込み
SearXNG からの 403 Forbidden

JSON 出力が無効になっているか、アクセス制御レイヤーによってリクエストが拒否された可能性があります。設定を変更する前に、直接確認する手順 に従ってください。ブラウザーでページが表示されても、JSON API が動作するとは限りません。

JSON を有効にできない場合(HTML フォールバック)

SEARXNG_HTML_FALLBACK=true を設定すると、403/404/JSON 以外の検索レスポンスを HTML として再試行できます。 解析はベストエフォートで行われ、メタデータは限られます。コンパクト出力ではフォールバックの マーカーが省略されます。自分が管理していないサービスで有効にする前に、 パブリックインスタンスに関するガイダンス をお読みください。

バグを報告する場合は、最小限の再現手順と関連するエラーを収集してください。

ドキュメント

テスト済みの上流設定、専門分野向けエンジンのルート、MCP 出力の制御を使って、 検索範囲を有用なものに設定 できます。 デプロイ手順 には、プライベートな Compose スタックとオプションのブラウザープロバイダーが含まれており、日付入りの 結果と既知の不具合も記載されています。

タスクからガイドを探す。これらのリンクからは、現在の main ブランチの ドキュメントが開きます。未リリースの動作にはその旨が表示されます。古いバージョンを調査する場合は、 該当する Git タグを参照してください。

コントリビューション

CONTRIBUTING.md を参照してください。

ライセンス

MIT — 詳細は LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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