SearXNG MCP Server について
SearXNG MCP Server は、SearXNG と連携してプライバシーを重視したメタ検索を提供する MCP サーバーです。複数の検索エンジンの結果を統合し、複数の SearXNG インスタンスへのフォールバックにも対応します。
主な機能
- 01複数の検索エンジンの結果を統合するメタ検索
- 02ニュースや科学などの複数カテゴリ
- 03言語と期間による検索結果の絞り込み
- 043段階のセーフサーチ
- 05複数の SearXNG インスタンスへのフォールバック
活用シーン
- 01AI アシスタントへのウェブ検索結果の提供
- 02ニュースや科学カテゴリでの特定テーマの調査
- 03セルフホストした SearXNG によるプライバシーに配慮した検索
MCP 対応
本プロジェクトは、メタ検索を実行する web_search ツールを MCP クライアントに公開する MCP サーバーです。バックエンドの SearXNG インスタンスは環境変数 SEARXNG_INSTANCES で指定します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
SearXNG MCP サーバー
SearXNG と統合し、プライバシーを重視したメタ検索機能を提供する MCP サーバーの実装です。
機能
- メタ検索:複数の検索エンジンの結果を統合します
- プライバシー重視:トラッキングやユーザープロファイリングを行いません
- 複数のカテゴリ:一般、ニュース、科学、ファイル、画像、動画などに対応しています
- 言語サポート:特定の言語またはすべての言語で検索できます
- 期間フィルタリング:日、週、月、年で結果を絞り込めます
- セーフサーチ:3 段階のセーフサーチフィルタリングを利用できます
- フォールバック対応:信頼性を高めるため、複数の SearXNG インスタンスを利用できます
インストール
npm install -g @kevinwatt/mcp-server-searxng
使用方法
直接実行
mcp-server-searxng
Dive Desktop を使用
- Dive Desktop で「+ Add MCP Server」をクリックします
- 次の設定をコピーして貼り付けます。
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": [
"-y",
"@kevinwatt/mcp-server-searxng"
]
}
}
}
- 「Save」をクリックして MCP サーバーをインストールします
ツールのドキュメント
- web_search
- 複数のエンジンを対象にメタ検索を実行します
- 入力:
query(string):検索語page(number、任意):ページ番号(デフォルト:1)language(string、任意):言語コード(例:'en'、'all'、デフォルト:'all')categories(array、任意):検索カテゴリ(デフォルト:['general'])- 利用可能なカテゴリ:「general」、「news」、「science」、「files」、「images」、「videos」、「music」、「social media」、「it」
time_range(string、任意):期間フィルター(all_time/day/week/month/year、デフォルト:'all_time')safesearch(number、任意):セーフサーチのレベル(0:なし、1:中程度、2:厳格、デフォルト:1)
- 動作:
SEARXNG_INSTANCESに列挙されたインスタンスを順番に試し、結果を返した最初のインスタンスを使用します。- 接続可能なインスタンスで一致する結果がない場合は、
No results found for "<query>".を返します。検索結果が空なのは通常の結果であり、エラーではありません。 All SearXNG instances failedエラーが返されるのは、接続エラー、2xx 以外のレスポンス、または有効な SearXNG の JSON 検索レスポンスではない応答などにより、どのインスタンスにも接続できなかった場合に限られます。
開発
git clone https://github.com/kevinwatt/mcp-server-searxng.git
cd mcp-server-searxng
npm install
npm run build # compiles to dist/src/
npm test # unit tests; HTTP is mocked, no live instance needed
node dist/src/index.js # run the server on stdio
次のコマンドで、単一のテストケースを実行します:npm test -- -t "should resolve urls correctly"。
ライセンス
この MCP サーバーは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。
前提条件
ローカルで SearXNG インスタンスが実行されている必要があります。セットアップ方法:
Docker で SearXNG を実行
クイックスタート
# Create config directory
mkdir -p searxng
# Create config file
tee searxng/settings.yml << EOF
use_default_settings: true
server:
bind_address: "0.0.0.0"
secret_key: "CHANGE_THIS_TO_SOMETHING_SECURE" # Generate a random key
port: 8080
search:
safe_search: 0
formats:
- html
- json
engines:
- name: google
engine: google
shortcut: g
- name: duckduckgo
engine: duckduckgo
shortcut: d
- name: bing
engine: bing
shortcut: b
server.limiter: false
EOF
# Start container
docker run -d \
--name searxng \
-p 8080:8080 \
-v "$(pwd)/searxng:/etc/searxng" \
searxng/searxng
検索機能のテスト
# Test JSON API with curl
curl -v 'http://localhost:8080/search?q=test&format=json'
# Or visit in browser
http://localhost:8080/search?q=test
コンテナの管理
# Stop container
docker stop searxng
# Remove container
docker rm searxng
# View container logs
docker logs searxng
# Enable auto-start on boot
docker update --restart always searxng
--restart always フラグにより、次の動作が保証されます:
- Docker デーモンの起動時にコンテナが自動的に起動します
- クラッシュした場合、コンテナが自動的に再起動します
- ユーザーが明示的に停止しない限り、停止した場合もコンテナが自動的に再起動します
カスタム設定
searxng/settings.yml を編集して、次の設定を行います:
- 検索エンジンのリストを変更する
- セキュリティ設定を調整する
- UI の言語を設定する
- API の制限を変更する
設定オプションの詳細については、SearXNG Documentation を参照してください。
環境変数
-
SEARXNG_INSTANCES:フォールバックとして順番に試す SearXNG インスタンス URL のカンマ区切りリストです。エントリには、パスベースのリバースプロキシルーティング用のベースパス(例:https://example.com/searx)を含めることができ、末尾のスラッシュはあってもなくてもかまいません。 デフォルト:http://localhost:8080 -
SEARXNG_USER_AGENT:リクエストに使用するカスタム User-Agent ヘッダーです デフォルト:MCP-SearXNG/1.0 -
NODE_TLS_REJECT_UNAUTHORIZED:'0' に設定すると、SSL 証明書の検証を回避します(自己署名証明書を使った開発用) デフォルト:undefined(SSL 検証は有効)
すべてのオプションを含む設定例:
{
"mcpServers": {
"searxng": {
"name": "searxng",
"command": "npx",
"args": [
"-y",
"@kevinwatt/mcp-server-searxng"
],
"env": {
"SEARXNG_INSTANCES": "http://localhost:8080,https://searx.example.com",
"SEARXNG_USER_AGENT": "CustomBot/1.0",
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
}
}
⚠️ 警告:本番環境で SSL 証明書の検証を無効にすることは推奨されません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。