mcpField
S
SearXNG MCP Server

SearXNG MCP Server

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

SearXNG MCP Server について

SearXNG MCP Server は、SearXNG と連携してプライバシーを重視したメタ検索を提供する MCP サーバーです。複数の検索エンジンの結果を統合し、複数の SearXNG インスタンスへのフォールバックにも対応します。

主な機能

  1. 01複数の検索エンジンの結果を統合するメタ検索
  2. 02ニュースや科学などの複数カテゴリ
  3. 03言語と期間による検索結果の絞り込み
  4. 043段階のセーフサーチ
  5. 05複数の SearXNG インスタンスへのフォールバック

活用シーン

  1. 01AI アシスタントへのウェブ検索結果の提供
  2. 02ニュースや科学カテゴリでの特定テーマの調査
  3. 03セルフホストした SearXNG によるプライバシーに配慮した検索

MCP 対応

本プロジェクトは、メタ検索を実行する web_search ツールを MCP クライアントに公開する MCP サーバーです。バックエンドの SearXNG インスタンスは環境変数 SEARXNG_INSTANCES で指定します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"searxng": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
起動コマンドnpx -y @smithery/cli

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

パッケージ
npm@smithery/cli

ツール

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

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

詳細

SearXNG MCP サーバー

SearXNG と統合し、プライバシーを重視したメタ検索機能を提供する MCP サーバーの実装です。

機能

  • メタ検索:複数の検索エンジンの結果を統合します
  • プライバシー重視:トラッキングやユーザープロファイリングを行いません
  • 複数のカテゴリ:一般、ニュース、科学、ファイル、画像、動画などに対応しています
  • 言語サポート:特定の言語またはすべての言語で検索できます
  • 期間フィルタリング:日、週、月、年で結果を絞り込めます
  • セーフサーチ:3 段階のセーフサーチフィルタリングを利用できます
  • フォールバック対応:信頼性を高めるため、複数の SearXNG インスタンスを利用できます

インストール

npm install -g @kevinwatt/mcp-server-searxng

使用方法

直接実行
mcp-server-searxng
Dive Desktop を使用
  1. Dive Desktop で「+ Add MCP Server」をクリックします
  2. 次の設定をコピーして貼り付けます。
{
  "mcpServers": {
    "searxng": {
      "command": "npx",
      "args": [
        "-y",
        "@kevinwatt/mcp-server-searxng"
      ]
    }
  }
}
  1. 「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 証明書の検証を無効にすることは推奨されません。

コメント

MCP は初めてですか?

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

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