Skip to main content
Glama
nitish-raj

SearXNG MCP Bridge

by nitish-raj

SearXNG MCP Bridge Server

Release

これは、SearXNGインスタンスへのブリッジとして機能するModel Context Protocol (MCP)サーバーです。互換性のあるクライアントが、MCPツールを介して設定済みのSearXNGインスタンスを使用して検索を実行できるようにします。

要件

  • Node.js 25.x

  • npm 11.x 以降

クイックスタート (npmから使用する場合)

  1. SearXNGインスタンスのセットアップ:

    # Using Docker
    docker run -d -p 8888:8080 --name searxng searxng/searxng
  2. MCPブリッジのインストールと実行

    デフォルト (STDIO、変更なし):

    # Run directly with npx (default - stdio transport)
    npx -y @nitish-raj/searxng-mcp-bridge

    オプション: HTTPサーバーとして実行 (新規、オプトイン)

     # Using env variables (recommended)
      TRANSPORT=http PORT=3002 HOST=127.0.0.1 SEARXNG_INSTANCE_URL=http://localhost:8080 npx -y @nitish-raj/searxng-mcp-bridge
    
    
    
    # Or run the built bundle
    TRANSPORT=http node build/index.js
  3. MCP設定ファイルでの構成 (stdio / レガシークライアント) MCP設定ファイル (例: ~/.vscode-server/.../mcp_settings.json) に追加します:

    {
      "mcpServers": {
        "searxng-bridge": {
          "command": "npx",
          "args": [
           "-y",
           "@nitish-raj/searxng-mcp-bridge"
           ],
           "env": {
             "SEARXNG_INSTANCE_URL": "http://localhost:8080"
           },
          "disabled": false
        }
      }
    }

HTTP構成: TRANSPORT=http を設定すると、stdioの代わりにHTTP経由でブリッジを実行できます。トランスポートモードは環境変数で構成可能です。

機能

  • 検索ツール: 構成可能なパラメータを使用してSearXNGでWeb検索を実行

  • ヘルスチェック: SearXNGインスタンスの接続性とパフォーマンスを監視

  • デュアルトランスポート: STDIO (デフォルト) とHTTPの両方のトランスポートをサポート

  • セッション管理: HTTPトランスポートにはセッションベースの接続が含まれます

  • CORSサポート: Webクライアント統合のための適切なクロスオリジンヘッダー

  • レート制限: 過剰なリクエストに対する組み込みの保護機能 (HTTPモード)

構成

  • SEARXNG_INSTANCE_URL — 必須。SearXNGインスタンスの完全なURL (例: http://localhost:8080)。

  • TRANSPORT — トランスポートプロトコル: stdio (デフォルト) または http

  • PORT — HTTPサーバーのポート。デフォルト: 3000 (開発用には 3002 を使用)

  • HOST — サーバーのバインドアドレス。デフォルト: 127.0.0.1 (コンテナ用には 0.0.0.0 を使用)

  • CORS_ORIGIN — CORSで許可されるオリジンのカンマ区切りリスト。デフォルト: localhost:3002 (開発) または * (本番)

  • MCP_HTTP_BEARER — HTTP認証用のオプションのベアラートークン HTTPトランスポート機能:

  • mcp-session-id ヘッダーによるセッション管理

  • オリジンホワイトリスト検証によるセキュアなCORS

  • レート制限 (IPあたり100リクエスト/分)

  • MCP_HTTP_BEARER を介したオプションのベアラー認証

  • DNSリバインディング保護

セキュリティ上の注意:

  • CORSは開発環境でセキュアなホワイトリストを使用します (localhost:3002のみ)

  • 本番環境では、認証済みリクエストに対して特定のオリジンを反映します (CORS準拠)

  • ユースケースに合わせて許可されるオリジンをカスタマイズするには CORS_ORIGIN を設定してください

  • stdioモードに戻すには TRANSPORT=stdio を設定してください

HTTPトランスポート

HTTPトランスポートは、以下のエンドポイントを備えたMCP Streamable HTTP仕様 (2025-03-26) を実装しています:

MCPエンドポイント:

  • POST /mcp - MCPリクエストの送信

  • GET /mcp - 通知用のサーバー送信イベント (SSE)

  • DELETE /mcp - セッションの終了

  • OPTIONS /mcp - CORSプリフライトリクエスト

システムエンドポイント:

  • GET /healthz - ヘルスチェックとステータス

HTTPエンドポイントのテスト:

curl -X POST http://localhost:3002/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

これは、利用可能なツール (search および health_check) のリストを含むJSON-RPCレスポンスを返します。

Docker

DockerfileはHTTPトランスポート用にポート 8081 を公開します。コンテナを実行してHTTPアクセスを許可するには:

# Build (example)
docker build -t searxng-mcp-bridge .

# Run mapping port 8081
 docker run -d -p 8081:8081 --env SEARXNG_INSTANCE_URL=http://localhost:8080 --name searxng-mcp-bridge searxng-mcp-bridge

# To run HTTP transport inside container:
 docker run -d -p 8081:8081 -e TRANSPORT=http -e PORT=8081 -e SEARXNG_INSTANCE_URL=http://localhost:8080 searxng-mcp-bridge

注: コンテナ化する場合は HOST=0.0.0.0 を設定するか、デフォルトで公開されているポートマッピングに依存してください。

使用方法

STDIOクライアント: ツールをそのまま使用してください。構成の変更は不要です。

HTTPクライアント: http://localhost:3002/mcp (開発用ポート) に接続し、MCP JSON-RPCリクエストを送信してください。

開発

  • npm install: 依存関係のインストール。

  • npm run build: TypeScriptをJavaScriptにコンパイル。

  • npm run watch: 変更を監視し、自動的に再ビルド。

  • npm run inspector: MCPインスペクターを実行してサーバーをテスト。

  • npm run start:http: localhost:3002でHTTPストリーミングモードのサーバーを起動。

移行と互換性

後方互換性:

  • STDIOが引き続きデフォルトのトランスポートです。既存のユーザーは変更の必要はありません

  • すべてのツール名、パラメータ、レスポンスは変更されていません

  • 構成は環境変数を介したオプトイン方式です

HTTPへの移行:

  • HTTPトランスポートを有効にするには TRANSPORT=http を設定してください

  • 必要に応じて PORTHOST を構成してください

  • クライアントを更新して、stdioの代わりにHTTPエンドポイントを使用するようにしてください

ロールバック:

  • stdioモードに戻すには TRANSPORT=stdio を設定するか、変数を省略してください

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nitish-raj/searxng-mcp-bridge'

If you have feedback or need assistance with the MCP directory API, please join our Discord server