SearXNG HTTP MCP について
SearXNG HTTP MCP は、SearXNG のメタ検索を MCP サーバーとして提供し、Docker、stdio、uvx で実行できます。プライバシーを重視するウェブ検索を MCP クライアントに加えたい場合に向け、検索、候補取得、エンジン検出のツールを備えています。
主な機能
- 01200 以上の検索エンジンを集約
- 0230 以上の検索カテゴリに対応
- 03複数ページ検索と候補取得
- 04エンジンとカテゴリの検出
- 05HTTP、stdio、uvx の実行方式
- 06API キーと HTTP Basic Auth
活用シーン
- 01複数エンジンで Agent のウェブ検索
- 02ニュースや科学分野で検索を絞り込み
- 03入力途中のクエリ候補を取得
- 04利用可能なエンジンとカテゴリを確認
MCP 対応
search、autocomplete、engine_info の各ツールを MCP クライアントに提供し、HTTP または stdio で接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm -e API_KEY ghcr.io/whw23/searxng-http-mcpAPI_KEYシークレットAPI key for authentication. Leave empty for no auth.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/whw23/searxng-http-mcpstdioStreamable HTTPツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
SearXNG(200 以上の検索エンジンから結果を集約する、無料でプライバシーに配慮したメタ検索エンジン)をラップした、自己完結型の MCP サーバーです。
🚀 クイックスタート
サーバーモード — 一度デプロイすれば、どのクライアントからでも接続できます。
docker run -d --name searxng-mcp --restart unless-stopped \
-p YOUR_PORT:8888 --memory=512m --cpus=1 \
ghcr.io/whw23/searxng-http-mcp:latest
次に、クライアントを http://YOUR_HOST:YOUR_PORT/mcp/ に接続します。API キー認証を有効にする方法については、認証を参照してください。
ローカルモード — サーバーは不要で、クライアント内で直接実行できます。
docker run --rm -i --memory=512m --cpus=1 ghcr.io/whw23/searxng-http-mcp:latest --stdio
これをクライアントに stdio MCP サーバーとして追加してください。詳細については、クライアント設定を参照してください。
uvx モード — SearXNG がすでに稼働している場合(インストールガイド):
uvx searxng-http-mcp
SEARXNG_URL を設定して、SearXNG インスタンスを指定します(デフォルト:http://127.0.0.1:8080)。
✨ 機能
検索
- 🔍 200以上の検索エンジン — SearXNG経由でGoogle、Bing、DuckDuckGo、Braveなどに対応
- 📂 30以上のカテゴリ — ニュース、画像、動画、科学、ITなど
- 📄 複数ページへのファンアウト — 1回の呼び出しで最大5ページ
- 💡 オートコンプリート候補 — 関連する検索語を見つけられます
- 🗂 エンジンの検出 — 利用可能なエンジンをカテゴリ別にまとめて照会できます
- 🎯 トークン効率に優れています — 結果を必要な情報に絞り込みます
インフラストラクチャ
- 📦 単体で動作 — SearXNGをDockerイメージに組み込み済み
- 🔄 3種類のトランスポート — HTTPサーバー、Docker stdio、uvxスタンドアロン
- 🔐 認証 —
x-api-keyとHTTP Basic Auth - 🌐 リバースプロキシ — 同じポートでSearXNGのWeb UIを利用できます
- ⚡ 動的なツールの説明 — 起動時にカテゴリ一覧をリアルタイムで挿入
- 📐 豊富なJSON Schema — すべてのパラメーターに列挙型の制約、範囲制限、説明を設定
🏛 アーキテクチャ
graph LR
Client(["client:YOUR_PORT"]) --> Expose(":8888")
subgraph Container["🐳 Docker Container"]
direction LR
Expose --> Auth{Auth}
Auth -->|/mcp| MCP[FastMCP Server]
Auth -->|/*| Proxy[Reverse Proxy]
MCP --> SearXNG[SearXNG :8080]
Proxy --> SearXNG
end
style Expose fill:none,stroke:#2496ed,stroke-dasharray:5 5,color:#2496ed
style Client fill:#4a90d9,color:#fff,stroke:#3a7bc8
style Container fill:#f0f4f8,stroke:#2496ed,stroke-width:2px,color:#2496ed
style Auth fill:#f5a623,color:#fff,stroke:#d4900e
style MCP fill:#50c878,color:#fff,stroke:#3da85e
style Proxy fill:#9b59b6,color:#fff,stroke:#8344a5
style SearXNG fill:#e74c3c,color:#fff,stroke:#c0392b
📊 代替手段との比較
なぜこの5つを選んだのか?
SearXNG MCP サーバーは20種類以上あり、汎用検索MCPはさらに多数存在します。ほとんどのSearXNGラッパーが公開するのは基本的な検索ツールだけで、SearXNGのカテゴリ、オートコンプリート、エンジンのメタデータは活用されていません。そこで、それぞれ異なるカテゴリを代表する5つの代替手段を選びました。
- 88plug/searxng-mcp — SearXNG MCPの中で最も豊富なツールを提供(7つのツール:レンダリング済みページの取得、リサーチモード、並列クエリ)
- ihor/mcp-searxng — SearXNG MCPの中でGitHubスター数が最多
- open-webSearch — SearXNGエコシステム外で最有力の無料マルチエンジン代替手段(Bing、Baidu、DuckDuckGo、Braveなど)
- exa-mcp-server — 最も人気のある商用検索API MCP
- Perplexity MCP — 商用のAI検索。検索MCP分野でスター数が最多
| 機能 | ✨ このプロジェクト | 88plug/searxng-mcp | ihor/mcp-searxng | open-webSearch | exa-mcp-server | Perplexity MCP |
|---|---|---|---|---|---|---|
| 検索 | ||||||
| SearXNG経由で200以上のエンジンに対応 | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| 30以上の検索カテゴリ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 複数ページへの並列検索 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| オートコンプリート候補 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| エンジン検出ツール | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| 動的なツールの説明 | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| インフラストラクチャ | ||||||
| 単体で動作(検索機能を内蔵) | ✅ | ❌ | ❌ | ✅ | 該当なし | 該当なし |
| インストール不要のDockerデプロイ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ |
| HTTP + stdioトランスポート | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| 認証 | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
| Web UIリバースプロキシ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| AIコーディングエージェントプラグイン | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
| 一般 | ||||||
| 無料・オープンソース | ✅ | ✅ | ✅ | ✅ | ❌(有料API) | ❌(有料API) |
| プライバシー(セルフホスト可能) | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ |
| 言語 | Python | Python | Node.js | TypeScript | TypeScript | TypeScript |
| GitHubスター数 | ||||||
ツールが少ないのはなぜですか?
MCP は組み合わせて使うことを前提に設計されています。クライアントは、各自が得意分野に専念する複数の特化型サーバーに接続します。ほかの選択肢の中には、URL 取得、レンダリング済みページの抽出、複数クエリの並列実行、リサーチモードなどを検索サーバーにまとめているものもあります。私たちがツールを 3 つ(検索、オートコンプリート、エンジン検出)に絞っているのは、意図的な設計です。
- URL の取得は別の役割です。 MCP クライアントには、すでに専用ツール(WebFetch、Playwright MCP、Jina Reader)が組み込まれています。検索サーバーに取得機能をまとめると、役割が混在し、クライアントのエコシステムと機能が重複します。
- 複数クエリの並列検索は、クライアント側でオーケストレーションします。 LLM クライアントは複数の
search呼び出しを並列で実行できます。search_manyツールを追加しても、ツール選択のためのトークン消費が増えるだけで、実質的な利点はありません。 - リサーチや統合は LLM 層が担います。 最適な統合役はモデルです。複数ステップにわたるリサーチロジックを MCP サーバーに組み込むと、アプリケーション上の関心事がインフラストラクチャに結び付いてしまいます。
その代わり、上記のほかの選択肢に欠けている機能に注力しています。SearXNG API の完全なカバー範囲(カテゴリ、オートコンプリート、エンジンのメタデータなど、多くのラッパーが活用できていない機能)、**自己完結型のデプロイ、認証、Web UI のリバースプロキシ、AI コーディングエージェントのプラグイン統合(Claude Code / Copilot CLI / Codex CLI)**です。
📖 使い方
🌐 HTTP モード(デフォルト)
# Without authentication
docker run -d --name searxng-mcp --restart unless-stopped \
-p YOUR_PORT:8888 --memory=512m --cpus=1 \
ghcr.io/whw23/searxng-http-mcp:latest
# With authentication
docker run -d --name searxng-mcp --restart unless-stopped \
-p YOUR_PORT:8888 --memory=512m --cpus=1 \
-e API_KEY=your-secret-key \
ghcr.io/whw23/searxng-http-mcp:latest
| 🔗 MCP エンドポイント | http://YOUR_HOST:YOUR_PORT/mcp/ |
| 🖥 SearXNG Web UI | http://YOUR_HOST:YOUR_PORT/ |
📡 stdio モード
docker run --rm -i --memory=512m --cpus=1 \
ghcr.io/whw23/searxng-http-mcp:latest --stdio
ポートは公開されません。通信には stdin/stdout を使用します。MCP ツール用に、SearXNG が内部で実行されます。
🐍 uvx モード
# Connect to a local SearXNG instance (default: http://127.0.0.1:8080)
uvx searxng-http-mcp
# Connect to a remote SearXNG instance
SEARXNG_URL=http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT uvx searxng-http-mcp
Python 3.14 以降と、既存の SearXNG インスタンスが必要です。Docker は不要です。
⚙️ 環境変数
| 変数 | デフォルト | 説明 |
|---|---|---|
API_KEY | (空、認証なし) | 認証用の API キー |
SEARXNG_URL | http://127.0.0.1:8080 | SearXNG インスタンスの URL(uvx/スタンドアロンモード用) |
🔐 認証
API_KEY が設定されている場合、すべてのリクエストで次のいずれかが必要です。
x-api-keyヘッダー — MCP クライアント用:x-api-key: your-key- HTTP 基本認証 — ブラウザー用
ヒント
ブラウザーでのログイン:
API_KEYが有効な状態で Web UI にアクセスすると、ブラウザーにログインダイアログが表示されます。ユーザー名は空欄のままにし、API キーをパスワードとして入力してください。![]()
API_KEY が設定されていない場合、すべてのリクエストを認証なしで利用できます。
🔧 MCP ツールリファレンス
🔍 search — SearXNG を使用してウェブを検索
プライバシーを保ちながら、200 以上の検索エンジンの結果を集約します。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
query | string | はい | — | 使用する検索クエリ |
categories | string | いいえ | "" | カンマ区切りのカテゴリ名(例:general,news,science) |
engines | string | いいえ | "" | カンマ区切りのエンジン名(例:google,arxiv,wikipedia) |
language | string | いいえ | "" | 検索言語コード(例:en、zh、ja) |
time_range | enum | いいえ | null | day、week、month、year |
safesearch | enum | いいえ | 0 | 0=オフ、1=中程度、2=厳格 |
pageno | int ≥1 | いいえ | 1 | 開始ページ番号 |
pages | int 1–5 | いいえ | 1 | 並行して取得するページ数 |
max_results | int 1–100 | いいえ | 10 | 返す結果の最大数 |
format | enum | いいえ | compact | compact(title/url/content)または full(+ engines/score/category/date) |
返されるもの: 結果、回答、候補、修正候補、インフォボックス。
💡 autocomplete — 検索クエリの候補を取得
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
query | string | はい | 候補を取得する部分的なクエリ文字列 |
🗂 engine_info — 利用可能なエンジンとカテゴリを確認
パラメーターはありません。有効なエンジンの一覧をカテゴリ別に返します。
返されるもの:
{
"categories": ["general", "images", "videos", "news", ...],
"engines": ["google", "bing", "duckduckgo", ...],
"category_engines": {
"general": ["google", "bing", "duckduckgo", "brave", ...],
"science": ["arxiv", "google scholar", "pubmed", ...],
...
}
}
特定の engines または categories フィルターを指定して search を呼び出す前に、利用可能なエンジンを確認するために使用します。
🔌 クライアントの設定
以下は、標準の mcpServers JSON 構造を使用するサーバーモード(リモート HTTP)の基本例です。多くのクライアントはこの構造を受け入れますが、フィールド名や必須の type の値は異なります。下記の注記を確認し、使用するクライアントに合わせて調整してください。
{
"mcpServers": {
"searxng": {
"type": "http",
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
メモ
フィールド名の違い:ZCode は
mcp.serversを使用します。Kilo Code は"type": "remote"を含むトップレベルのmcpキーを使用します。Windsurf はurlの代わりにserverUrlを使用します。VS Code Copilot はトップレベルのserversキーを使用します。OpenCode は"type": "remote"を含むmcpの下にネストします。Codex と Hermes はmcp_servers(TOML/YAML)を使用します。Claude Code では"type": "http"が必須です。指定しない場合、エントリは stdio サーバーとして読み取られ、スキップされます。Cline では、リモート HTTP サーバーに"type": "streamableHttp"を設定してください。
Claude Desktop
サーバーモード — ~/Library/Application Support/Claude/claude_desktop_config.json を編集します。
{
"mcpServers": {
"searxng": {
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
ローカルモード:
{
"mcpServers": {
"searxng": {
"command": "docker",
"args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
}
}
}
uvx モード:
{
"mcpServers": {
"searxng": {
"command": "uvx",
"args": ["searxng-http-mcp"],
"env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
}
}
}
Claude Code
サーバーモード(CLI):
claude mcp add --transport http searxng http://YOUR_HOST:YOUR_PORT/mcp/ \
--header "x-api-key: your-secret-key"
サーバーモード(JSON) — 同じ mcpServers 構造を、チーム共有のプロジェクト .mcp.json またはユーザー全体に適用されるグローバル設定 ~/.claude.json で使用できます。
{
"mcpServers": {
"searxng": {
"type": "http",
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
ローカルモード:
claude mcp add --transport stdio searxng -- docker run --rm -i --memory=512m --cpus=1 ghcr.io/whw23/searxng-http-mcp:latest --stdio
claude mcp add --transport stdio searxng -- uvx searxng-http-mcp
Codex
サーバーモード — ~/.codex/config.toml に追加します:
[mcp_servers.searxng]
url = "http://YOUR_HOST:YOUR_PORT/mcp/"
http_headers = { "x-api-key" = "your-secret-key" }
ローカルモード:
[mcp_servers.searxng]
command = "docker"
args = ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
uvx モード:
[mcp_servers.searxng]
command = "uvx"
args = ["searxng-http-mcp"]
Cursor
サーバーモード — .cursor/mcp.json を編集します:
{
"mcpServers": {
"searxng": {
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
ローカルモード:
{
"mcpServers": {
"searxng": {
"command": "docker",
"args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
}
}
}
uvx モード:
{
"mcpServers": {
"searxng": {
"command": "uvx",
"args": ["searxng-http-mcp"],
"env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
}
}
}
VS Code Copilot
サーバーモード — .vscode/mcp.json に追加します:
{
"servers": {
"searxng": {
"type": "http",
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
ローカルモード:
{
"servers": {
"searxng": {
"type": "stdio",
"command": "docker",
"args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
}
}
}
uvx モード:
{
"servers": {
"searxng": {
"type": "stdio",
"command": "uvx",
"args": ["searxng-http-mcp"],
"env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
}
}
}
Windsurf
サーバーモード — ~/.codeium/windsurf/mcp_config.json に追加します:
{
"mcpServers": {
"searxng": {
"serverUrl": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
ローカルモード:
{
"mcpServers": {
"searxng": {
"command": "docker",
"args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
}
}
}
uvx モード:
{
"mcpServers": {
"searxng": {
"command": "uvx",
"args": ["searxng-http-mcp"],
"env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
}
}
}
Cline
VS Code の Cline の MCP 設定パネル(Cline > MCP Servers > Add)から設定します。
サーバーモード:
{
"mcpServers": {
"searxng": {
"type": "streamableHttp",
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
ローカルモード:
{
"mcpServers": {
"searxng": {
"command": "docker",
"args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
}
}
}
uvx モード:
{
"mcpServers": {
"searxng": {
"command": "uvx",
"args": ["searxng-http-mcp"],
"env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
}
}
}
OpenCode
サーバーモード — opencode.json を編集します:
{
"mcp": {
"searxng": {
"type": "remote",
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
ローカルモード:
{
"mcp": {
"searxng": {
"type": "local",
"command": ["docker", "run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
}
}
}
uvx モード:
{
"mcp": {
"searxng": {
"type": "local",
"command": ["uvx", "searxng-http-mcp"]
}
}
}
Hermes Agent
サーバーモード — ~/.hermes/config.yaml を編集します:
mcp_servers:
searxng:
url: "http://YOUR_HOST:YOUR_PORT/mcp/"
headers:
x-api-key: "your-secret-key"
ローカルモード:
mcp_servers:
searxng:
command: "docker"
args: ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
uvx モード:
mcp_servers:
searxng:
command: "uvx"
args: ["searxng-http-mcp"]
🟦 ZCode (Zhipu AI · GLM)
サーバーモード — ~/.zcode/cli/config.json(ユーザー全体)または .zcode/config.json(プロジェクト)を編集します:
{
"mcp": {
"servers": {
"searxng": {
"type": "http",
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
}
ローカルモード:
{
"mcp": {
"servers": {
"searxng": {
"command": "docker",
"args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
}
}
}
}
uvx モード:
{
"mcp": {
"servers": {
"searxng": {
"command": "uvx",
"args": ["searxng-http-mcp"],
"env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
}
}
}
}
ZCode は標準の mcpServers 構造も使用できます(例:.agents/mcp.json 内)。または、Settings → MCP Servers → New MCP Server からサーバーを追加できます。
⚡ Kilo Code
サーバーモード — ~/.config/kilo/kilo.jsonc(グローバル)または .kilo/kilo.jsonc(プロジェクト)を編集します:
{
"mcp": {
"searxng": {
"type": "remote",
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
},
"enabled": true
}
}
}
ローカルモード:
{
"mcp": {
"searxng": {
"type": "local",
"command": ["docker", "run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"],
"enabled": true
}
}
}
uvx モード:
{
"mcp": {
"searxng": {
"type": "local",
"command": ["uvx", "searxng-http-mcp"],
"environment": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" },
"enabled": true
}
}
}
🥧 Pi
MCP アダプターを一度インストールしてから、標準の mcpServers ブロックを追加します。たとえば、~/.pi/agent/mcp.json(すべてのプロジェクト)または .pi/mcp.json(プロジェクト)に追加します:
pi install npm:pi-mcp-adapter
インストール後、Pi を再起動してください。
サーバーモード:
{
"mcpServers": {
"searxng": {
"url": "http://YOUR_HOST:YOUR_PORT/mcp/",
"headers": {
"x-api-key": "your-secret-key"
}
}
}
}
ローカルモード:
{
"mcpServers": {
"searxng": {
"command": "docker",
"args": ["run", "--rm", "-i", "--memory=512m", "--cpus=1", "ghcr.io/whw23/searxng-http-mcp:latest", "--stdio"]
}
}
}
uvx モード:
{
"mcpServers": {
"searxng": {
"command": "uvx",
"args": ["searxng-http-mcp"],
"env": { "SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT" }
}
}
}
🧩 AI コーディングエージェントプラグイン
Claude Code、GitHub Copilot CLI、OpenAI Codex CLI に対応しています。マーケットプレイスを追加して、環境に合ったプラグインをインストールしてください。
/plugin marketplace add whw23/searxng_http_mcp
すべてのプラグインに含まれるもの:
- 🔍
/web-search-via-searxngスキル — カテゴリ選択ガイドと使用ルールに沿ったウェブ検索 - 🤖
web-searcherエージェント — 調査用サブエージェント。以下の機能を備えています:- 🌐 多言語並列検索 — クエリの言語を自動検出し、より幅広く調査するため複数の言語で検索します
- 🛡 情報源の信頼性レベル — AI ポイズニング対策を備えた Tier 1/2/3 分類
- ✅ クロスバリデーション — 重要な事実には、2 件以上の独立した情報源が必要です
- 🔍 WebFetch による詳細な読み込み — スニペットだけでなく、信頼できる情報源のページ全体を読み込みます
- 🔄 複数ラウンドの反復検索 — 最大 3 ラウンドまで検索し、不足があれば自動的に深掘りします
- ⏱ 情報の鮮度評価 — 古いコンテンツにフラグを付け、情報源の日付範囲を明示します
- 📝 脚注形式の参考情報 — インラインの出典引用を含む構造化された出力
🐍 スタンドアロンモード — uvx、Docker 不要、独自の SearXNG を使用
/plugin install searxng-http-mcp-standalone@searxng-http-mcp
uvx 経由で実行します。Python 3.14 以降と、既存の SearXNG インスタンスが必要です。~/.claude/settings.json に SEARXNG_URL を設定してください。
{
"env": {
"SEARXNG_URL": "http://YOUR_SEARXNG_HOST:YOUR_SEARXNG_PORT"
}
}
🐳 ローカルモード — Docker stdio、設定不要
/plugin install searxng-http-mcp@searxng-http-mcp
stdio 経由でローカルの Docker コンテナ内に SearXNG を実行します。Docker がインストールされている必要があります。
🌐 リモートモード — HTTP 経由でデプロイ済みサーバーに接続
/plugin install searxng-http-mcp-remote@searxng-http-mcp
デプロイ済みの SearXNG MCP サーバーに接続します。環境変数 SEARXNG_MCP_URL と SEARXNG_API_KEY が必要です。
~/.claude/settings.json の env フィールドに追加してください。
{
"env": {
"SEARXNG_MCP_URL": "http://YOUR_HOST:YOUR_PORT/mcp/",
"SEARXNG_API_KEY": "your-api-key"
}
}
その後、Claude Code を再起動してください。
🛠 SearXNG の設定
🖥 ウェブ UI 経由
http://YOUR_HOST:YOUR_PORT/ から SearXNG ウェブ UI にアクセスし、検索エンジン、言語、その他の設定を行います。変更はコンテナの稼働中は保持されます。
💾 ボリュームマウント経由 — 設定を永続化
設定を永続化するには、SearXNG の設定ディレクトリをマウントしてください。
docker run -d --name searxng-mcp --restart unless-stopped \
-p YOUR_PORT:8888 --memory=512m --cpus=1 \
-v /path/to/searxng-config:/etc/searxng \
ghcr.io/whw23/searxng-http-mcp:latest
SearXNG は初回起動時に settings.yml を生成します。コンテナは MCP ツールに必要な JSON 形式の出力を自動的に有効にします。
🏗 ソースからビルド
git clone https://github.com/whw23/searxng_http_mcp.git
cd searxng_http_mcp
docker build -t searxng-http-mcp:local .
docker run -d --name searxng-mcp --restart unless-stopped \
-p YOUR_PORT:8888 --memory=512m --cpus=1 \
searxng-http-mcp:local
🤝 コントリビュート
ワークフロー、CI 要件、開発環境のセットアップについては、CONTRIBUTING.md を参照してください。
- 🍴 リポジトリをフォークし、フォークで GitHub Actions を有効にします
- 🌿
devから機能ブランチを作成します - ✍️ 変更を加えます
- ✅ テストを実行します:
pytest tests/ -v— PR を作成する前に、フォークで CI を通過させる必要があります - 📬
devに PR を送信します
開発は dev ブランチで行います。main へのマージにより、イメージのビルドが開始されます。
📄 ライセンス
MIT — MCP サーバーのコード。
SearXNG 自体は AGPL-3.0-or-later の下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。