SearXNG MCP Bridge
SearXNG MCP Bridge Server
これは、SearXNGインスタンスへのブリッジとして機能するModel Context Protocol (MCP)サーバーです。互換性のあるクライアントが、MCPツールを介して設定済みのSearXNGインスタンスを使用して検索を実行できるようにします。
要件
Node.js 25.x
npm 11.x 以降
クイックスタート (npmから使用する場合)
SearXNGインスタンスのセットアップ:
# Using Docker docker run -d -p 8888:8080 --name searxng searxng/searxngMCPブリッジのインストールと実行
デフォルト (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.jsMCP設定ファイルでの構成 (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(デフォルト) またはhttpPORT— 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を設定してください必要に応じて
PORTとHOSTを構成してくださいクライアントを更新して、stdioの代わりにHTTPエンドポイントを使用するようにしてください
ロールバック:
stdioモードに戻すには
TRANSPORT=stdioを設定するか、変数を省略してください
This server cannot be installed
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