RustXNGとは|AIエージェント用の自前検索の使い方
「AIエージェントに調べものをさせたいが、検索APIの料金やキーの管理が気になる」「RustXNGという自前の検索が話題だが、本当にClaude Codeから使えるのか」——エージェントに検索を持たせようとすると、多くの人がこの手前で止まります。
結論から言うと、RustXNGは自分のMacで動かすAIエージェント向けの検索で、2026年11月1日公開の配布版v0.26.0なら、curlでJSONを取る使い方は今日から使えます。ただし、READMEに書かれているMCPサーバー(rustxng mcp)は配布版にはまだ入っておらず、検索語は外の検索エンジンへ送られます。この2点を知らずに入れると、思っていたものと違ったと感じるはずです。
株式会社Fyveは中小企業のAI活用を月額で伴走しており、自社でもMac miniで無人の定期ジョブを毎日回し、その中でAIに検索をさせています。本記事では、2026年11月3日に私たちのMac miniでv0.26.0を実際に入れて検索した結果をもとに、RustXNGの仕組み・入れ方・使い方と、入れる前に確かめることを整理します。
RustXNGとは|AIエージェントのための自前のメタ検索
RustXNGは、オープンソースのメタ検索エンジン「SearXNG」をもとに、Rustで作り直した検索サーバーです。メタ検索とは、自分では索引を持たず、複数の検索エンジンに同時に問い合わせて結果を1つにまとめる仕組みのことです。GitHubのリポジトリの説明は「AIエージェントのためのセルフホスト型メタ検索・根拠取得エンジン」となっています。
2026年11月3日時点で分かっている事実を表にまとめます。数字はGitHubのAPIとリリースページで確認したものです。
項目 | 内容 |
|---|---|
リポジトリ作成 | 2026年10月18日 |
最新の配布版 | v0.26.0(2026年11月1日公開) |
配布物 | macOS(Apple Silicon・Intel)、Windows、Linux x86_64の実行ファイル。Dockerイメージ、cargoでのビルドも可 |
ライセンス | AGPL-3.0-or-later |
返せる形式 | JSON・CSV・RSS・HTML(ブラウザの検索画面もある) |
スター数 | 約700(11月3日時点) |
「AIエージェント向け」をうたう理由は、エージェントが必要なときだけ検索し、モデルに渡す文章を少なく保てるように作られている点にあります。件数を絞る、ドメインで絞る、ページ本文は必要なときだけ取る、といった調整がすべてURLのパラメータでできます。
一方でFAQには、「Rustで書いたから答えが正確になるわけではない」「自前で動かしても、検索の費用や回数の制限がすべて消えるわけではない」と、作者自身が限界をはっきり書いています。この誠実さは、道具を選ぶうえで信頼できる材料です。
私たちがAIの検索に困っていたこと
私たちのMac miniでは、毎朝AIのニュースを集めて裏取りし、発信の材料を整理するジョブが無人で動いています。そこで使っている検索は、Claude Codeに組み込まれたWeb検索と、Grokの検索をClaude Codeから呼ぶために自作したMCPサーバーの2本立てです。
この構成で困っているのは次の2点です。
- 検索の中身を細かく決められない:組み込みの検索は手軽ですが、どのエンジンに何件問い合わせるかは選べません
- 外部のサービスに頼り切っている:自作のMCPサーバーはXの有料プランのログインで動いており、仕様やログインの方式が変わると朝のジョブが止まります
RustXNGに関心を持ったのは、この2点を両方とも自分の手元で決められる道具に見えたからです。そこで、本番のジョブに入れる前に、まず1台で動かして確かめることにしました。
なお、Claude Codeの組み込み検索を使う場合の回数の上限の決め方は、次の記事にまとめています。

RustXNGの入れ方|配布版をチェックサム付きで入れる
入れ方は、配布版の実行ファイル・cargo・Docker・ソースからのビルドの4通りがあります。Rustの開発環境が要らない配布版がいちばん手軽です。ここではApple SiliconのMacを例に、私たちが実際に打った手順を示します。
手順1:実行ファイルとチェックサムを落とす
リリースページから、自分のCPUに合う実行ファイルと、同じ名前に .sha256 が付いたファイルを同じフォルダに落とします。ライセンスの写し(LICENSE・NOTICE)も一緒に保存するよう案内されています。
mkdir -p ~/rustxng-download && cd ~/rustxng-download
A=rustxng-v0.26.0-aarch64-apple-darwin
for f in $A $A.sha256 LICENSE NOTICE; do
curl -fL -o "$f" "https://github.com/sahenjp/RustXNG/releases/download/v0.26.0/$f"
done
shasum -a 256 --check $A.sha256OK と出れば、落としたファイルがリリースに載っているものと一致しています。公式の導入ガイドも「一致しなければそこで止める」と書いています。ただしこれは発行者の署名ではなく、リリースとの一致を確かめるだけだという断りも添えられています。
手順2:自分のフォルダに置いて版を確かめる
mkdir -p ~/.local/bin
install -m755 $A ~/.local/bin/rustxng
~/.local/bin/rustxng --version
# RustXNG 0.26.0管理者の権限は要りません。~/.local/bin にパスが通っていなければ、フルパスで呼ぶか、シェルの設定に足します。
手順3:ポートを明示して起動する
SEARXNG_PORT=29483 rustxng --bind 127.0.0.1 --port 29483ここで --port を省かないでください。READMEの既定は29483番ですが、これは開発中の版の話で、配布中のv0.26.0の既定はまだ8888番です。省くと、READMEのcurlの例が通りません。--bind 127.0.0.1 は、自分のMacの中からしかつながらないようにする指定です。
別のターミナルで、動いているかを確かめます。
curl --fail http://127.0.0.1:29483/healthz
curl --fail http://127.0.0.1:29483/config公式の導入ガイドは、/healthz が返るだけでは不十分で、/config の version が「RustXNG」で始まることまで見るよう求めています。同じポートで別のサービスが動いている場合を見分けるためです。私たちの環境では RustXNG 0.26.0 と、登録された検索エンジン171個が返りました。
起動してから /healthz が返るまでは0.03秒、待機中のメモリは約11MBでした。4回検索した後は約55MBまで増えました。
curlでJSON検索する|件数とドメインで返す量を絞る
起動したら、/search に検索語を渡します。format=json でJSONになり、max_results で件数を絞れます。
curl --fail --get 'http://127.0.0.1:29483/search' \
--data-urlencode 'q=Claude Code MCP 設定' \
--data 'format=json' --data 'max_results=5'各結果には title(題名)・url・content(抜粋)が入ります。モデルに渡すのがこの3つだけでよければ、jqで手元で絞ります。
curl --fail --get 'http://127.0.0.1:29483/search' \
--data-urlencode 'q=Claude Code MCP 設定' \
--data 'format=json' --data 'max_results=5' \
| jq '{results: [.results[] | {title, url, content}]}'よく使うパラメータは次のとおりです(READMEの表を日本語にしたもの)。
パラメータ | 働き |
|---|---|
| 上位5件まで返す(1〜200) |
| そのドメイン(サブドメインを含む)の結果だけ残す |
| そのドメインの結果を外す |
| 上位の結果のページ本文を |
| 使う検索エンジンを指定する |
| 対応するエンジンに、最近の結果を求める |
私たちの実測|4回の検索で分かったこと
2026年11月3日の朝、私たちのMac miniで4回検索した結果です。
検索の中身 | かかった時間 | 返ってきた量 | 結果 |
|---|---|---|---|
「Claude Code MCP 設定」5件 | 2.2秒 | 約6KB | 1位がClaude Code公式ドキュメントの日本語のMCPのページ |
「codex doctor network-only」5件 | 3.0秒 | 約5KB | Codexのリリースページと該当のプルリクエストが入った |
code.claude.comに絞り、本文つき3件 | 3.9秒 | 約49KB | 3件とも公式ドキュメント。本文は1ページ8,001字で切られる |
「Anthropic」を直近1日で5件 | 2.4秒 | — | 公式トップのほかは個人のページや株価のページで、ニュースは取れなかった |
手順や公式ドキュメントを探す用途では、十分に使える結果でした。特に include_domains で公式のドメインに絞る使い方は、AIが古いまとめ記事を拾ってしまう事故を減らせます。
一方、ページ本文を付けると返ってくる量が約8倍に膨らみます。READMEも「文字数の上限はトークンの上限ではない」と注意しています。最初は抜粋だけを取り、根拠が要るときだけ本文を取る、という順番を守るのが安全です。
また、time_range=day を付けても、その日のニュースは返ってきませんでした。最近の結果を絞れるかは、問い合わせ先のエンジンがその指定に対応しているかで決まるとFAQにも書かれています。最新ニュースの収集をRustXNGだけに任せるのは、現時点ではおすすめしません。

外の検索エンジンに断られる前提で使う|unresponsive_enginesの読み方
実測でいちばん印象に残ったのは、問い合わせ先の多くに断られていたことです。JSONには unresponsive_engines(応答しなかったエンジン)という一覧が入ります。1回目の検索では、ここに約30のエンジンが並びました。
表示された理由 | 意味 |
|---|---|
CAPTCHA | 人間かどうかの確認を求められ、機械からの問い合わせが止められた |
Access denied | アクセスを拒否された |
Too many requests | 短い時間に問い合わせすぎて、回数の制限にかかった |
Timeout | 決められた時間内に返事がなかった |
2回目の検索では、断られたエンジンの多くに「Suspended(休止中)」が付きました。/stats/errors で見ると、アクセスを拒否されたエンジンは約24時間(86,354秒)休止する設定になっていました。断られ続けるエンジンに問い合わせを繰り返さないための仕組みです。
それでも5件の結果は毎回返ってきました。DuckDuckGoやBingなど、応答したエンジンだけで結果がまとまるからです。ただし、これは「使えるエンジンが日によって変わる」ということでもあります。FAQにも、自前で動かしても外の検索エンジンの回数制限は避けられず、エージェントを並列で動かすほど問題が増えると書かれています。
私たちは、この一覧を毎回ログに残すのがよいと考えています。結果がおかしいと感じたとき、検索語の問題なのか、断られたエンジンが増えただけなのかを、後から見分けられるからです。/healthz が返っても検索が役に立つとは限らない、と公式の導入ガイドがくり返し書いているのも同じ理由です。
Claude CodeからRustXNGを使う2つの道
Claude Codeから使う方法は2つあります。どちらを選ぶかは、配布版にMCPが入っているかどうかで決まります。
道1:今すぐ使えるのはHTTPのAPIをcurlで叩く方法
v0.26.0で確実に動くのはこちらです。Claude CodeはBashでコマンドを打てるので、RustXNGを起動しておき、CLAUDE.mdやスキルに「Web検索はこのcurlで行う」と書いておけば使えます。私たちなら、次のように書きます。
## Web検索
- 検索は http://127.0.0.1:29483/search を使う(format=json・max_results=5)
- 公式の手順を探すときは include_domains で公式のドメインに絞る
- ページ本文(include_raw_content=1)は根拠が要るときだけ取る
- 結果が0件なら unresponsive_engines を報告し、再試行を繰り返さない最後の1行は大事です。公式の導入ガイドも「応答しないエンジンに対して際限なく再試行しない」と書いています。AIは結果が空だと検索を言い換えて何度も打ちがちなので、止まる条件を先に渡しておきます。
道2:MCPの道具として登録する方法は次の版を待つ
READMEには、rustxng mcp でMCPサーバーとして動き、search(検索)と read_page(ページを読む)の2つの道具を提供すると書かれています。MCPとは、AIが外部の道具を共通の手順で呼び出すための仕組みです。
ところが、配布版のv0.26.0で打つと次のように止まります。
$ rustxng mcp
Error: unknown argument "mcp" (try --help)GitHubで確かめると、MCPのコードは2026年11月2日にmainブランチへ統合された変更(#43)で入っており、v0.26.0のタグにはまだ含まれていません。CHANGELOGでも「Unreleased(未リリース)」の扱いです。READMEは開発中の版に合わせて先に書き換えられているため、READMEのとおりに打っても、配布版では動かないというずれが起きています。
MCPを使いたい場合は、次の配布版を待つか、cargoでmainブランチからビルドすることになります。MCPが入った版を用意できたら、Claude Codeへの登録は一般的なMCPサーバーと同じです。
claude mcp add rustxng -- ~/.local/bin/rustxng mcpREADMEによると、search は既定で5件、1件の抜粋を500字までに切り、返す量の合計も1万2千字までに収めます。ページの本文は、同じ会話の中で検索結果に出たURLを read_page で指定したときだけ取りに行く設計です。この部分は私たちの環境ではまだ試せていないため、README上の説明として紹介します。

MCPそのものの仕組みは、次の記事で解説しています。
RustXNGを入れる前に確かめる3つのこと
1. 検索語は外の検索エンジンに送られる
自分のMacで動くからといって、検索語が手元に留まるわけではありません。READMEは太字で「検索語は、そのリクエストで選ばれた外の検索エンジンへ送られる」と書いています。顧客名や社内の案件名を検索語に入れれば、それはBingなどの外のサービスに届きます。
ここはClaude Codeの組み込み検索でも同じですが、「自前」という言葉に安心して気が緩みやすい点です。社内で使うなら、検索語に入れてはいけない情報の決まりを先に作ってください。
2. 作者自身の監査で、未解決の指摘がある
リポジトリには2026年11月2日付の監査の記録が置かれており、次の版までに直すべき問題(P1)として、内部のアドレスへの接続を止める判定の甘さ(SSRF)、検索結果のリンクに危険なURLが残る問題、応答の大きさを制限する前に全部を読み込む問題などが挙がっています。
READMEは、自分のMacの中だけで使う場合は 127.0.0.1 で待ち受け、外に公開する前やページ本文の取得を広く使う前にこの指摘を読むよう求めています。社内のサーバーに置いて誰でもつなげるようにする使い方は、現時点では避けるべきです。
3. 版の上がり方が速く、ライセンスはAGPL
v0.23.0からv0.26.0までの5つの版は、10月31日から11月1日のわずか2日で出ています。既定のポートが8888番から29483番に変わり、mainではGoogle系の検索エンジンが外されるなど、版をまたいで振る舞いが変わる変更も続いています。仕事のジョブに組み込むなら、版を決めて固定し、上げるときは手順の確認をやり直す運用にしてください。
ライセンスはAGPL-3.0-or-laterです。改変した版をネットワーク越しに使わせる場合には、ソースコードの提供義務がかかる種類のライセンスです。手を加えずに自分のMacの中で使う範囲を超えるなら、ライセンスの本文を読み、必要なら専門家に確認してください。
私たちの判断|どこに使い、どこに使わないか
1台で動かしてみた結果、私たちは次のように判断しました。
用途 | 判断 | 理由 |
|---|---|---|
公式ドキュメントや手順を探す | 使える |
|
リリースやプルリクエストの所在を確かめる | 使える | GitHubのページを拾えた。最後は必ず元のページを開いて確かめる |
当日のニュースを集める | 任せない | 直近1日の指定でニュースが返らなかった |
社内の誰でも使える検索として公開する | しない | 未解決の監査の指摘があり、外に公開する前提では作られていない |
無人の定期ジョブにはまだ入れていません。理由は、問い合わせ先のエンジンが日によって断ってくる以上、毎朝同じ品質で結果が返るかを、もう少し日数をかけて見る必要があるからです。MCPが入った配布版が出たら、ニュースの裏取りではなく、手順を探す用途から試すつもりです。
AIエージェントに持たせる道具が増えるほど、鍵や設定の管理も増えます。MCPを複数入れるときのAPIキーの扱いは、次の記事にまとめています。
まとめ|RustXNGは「手順を探す検索」から試すのがよい
- RustXNGは、SearXNGをもとにRustで作られたAIエージェント向けの自前のメタ検索。2026年11月1日に配布版v0.26.0が出た
- 配布版はチェックサムを確かめて
~/.local/binに置き、--port 29483を明示して起動する(v0.26.0の既定は8888番) - curlで
format=json・max_results=5を付ければJSONで返る。私たちの実測で1回2〜4秒、5件で約5〜6KB - 問い合わせ先の約30のエンジンは断ってくる前提。
unresponsive_enginesをログに残す - READMEの
rustxng mcpは、11月3日時点の配布版には入っていない。MCPで使うなら次の版を待つか、mainからビルドする - 検索語は外へ出る。未解決の監査の指摘があるので、自分のMacの中だけで使う
自前の検索は、料金やキーの心配を減らせる一方で、断られる・版が変わるといった手間を自分で引き受ける道具です。まずは公式ドキュメントを探す用途で1台に入れ、結果の質を数日見てから、仕事のジョブに組み込むかを決めてください。株式会社Fyveでも、MCPの入った配布版が出た段階で、改めて試した結果をお伝えします。
Claude Codeを「素のまま」使うな

設定で差がつく——CLAUDE.md・権限・スキルの実物を公開(全24ページ)
素のClaude Codeは"優秀な新入社員"。仕事を教えるほど、自分専用になります。覚えさせる4点セット——会社の説明書(CLAUDE.md)・権限の柵・手順書(スキル)・フォルダの地図——を、1人会社の実運用からコピペで使える型つきで公開します。
- そのまま書き換えて使えるCLAUDE.mdの型
- お金と送信をAIに触らせない「3段階の柵」
- 1回教えたら何度でも動く、手順書のコピペ雛形
- AIが迷子にならないフォルダ構造の3原則
メールアドレス登録で他にも様々な資料を閲覧できます








+10PDF 19点・合計499ページ + すぐ使えるzip素材 3点
どれも登録後の受け取りページから、まとめてダウンロードできます。
毎週配信の無料ニュースレター「AIネイティブ超研究」の購読特典です。メール登録後すぐ、受け取りページのご案内が届きます。そこにはこの資料に加えて、過去の特典もすべてまとめて置いてあります。あわせて、AI活用に関するお知らせやお役に立てそうなご案内をお送りすることがあります。解除はいつでも1クリック。
御社の業務に合わせたClaude Code導入支援
「AIツールを導入したが、現場で使われない」を終わらせる。
業務課題のヒアリングから設計、ハンズオン実践、運用定着まで一貫して支援します。