Skip to main content
Glama
ZDOSt
by ZDOSt

プライベート検索ゲートウェイ

このプロジェクトは、AIフロントエンド向けの決定論的でセルフホスト型の検索およびページ取得バックエンドです。SearXNG互換の検索エンドポイントを公開し、少数の検索エンジンでソースを発見し、最も有力なページを開き、実際のコンテンツを抽出し、限られた数の関連する同一サイトリンクを辿り、ローカルでエビデンスを再ランク付けし、引用元のURLとページから抽出されたテキストを返します。

有料の検索APIや内部言語モデルは呼び出しません。フロントエンドのモデルが取得したエビデンスを受け取り、回答を記述します。これにより、サービスはプライベートで予測可能に保たれ、カスタムのSearXNGまたはJSON検索プロバイダーを受け入れる任意のフロントエンドで使用できます。

実行されるもの

  • search-gateway: 唯一のクライアント向けサービス、内部ポート 8080

  • searxng: ウェブ、技術、ニュース、画像、研究の発見

  • reranker: ローカルの BAAI/bge-reranker-base 関連性ランキング

  • crawl4ai: JavaScript対応のクローリング、困難なページ用

  • web-runner: 分離されたCrawl4AIおよびPlaywright制御(Unixソケット経由)

  • pdf-runner: ネットワーク分離されたPDF抽出

  • safe-egress: ブラウザのプライベートネットワークおよびメタデータ送信先をブロック

  • redis: レスポンスキャッシュと古い結果のフォールバック

スタックはホストポートを公開しません。フロントエンドは共有Dockerネットワークを介して次に到達します:

http://search-gateway:8080/search

その共有ネットワークに接続されたすべてのコンテナがゲートウェイを呼び出すことができます。他の無関係なコンテナにアクセスさせたくない場合は、専用の共有ネットワークを使用してください。

Related MCP server: wigolo

要件

  • 64ビットLinux VPS

  • Docker EngineおよびDocker Compose v2.24.4以降

  • イメージ、Chromium、およびリランカーモデル用に約10 GBの空きディスク容量

  • 完全なスタックには16 GBのRAMを推奨

提供される上限は、共有メモリと通常のDockerオーバーヘッドを除き、合計で約10.5 GBです。これらは予約ではなく制限ですが、16 GBのホストでは十分な余裕があります。最初のビルドは、Chromium、Crawl4AIイメージ、リランカーモデルをダウンロードするため遅くなります。

クリーンインストール

Dockerネットワークがまだ存在しない場合は、一度作成します:

docker network inspect docker-stacks_app-network >/dev/null 2>&1 || \
  docker network create docker-stacks_app-network

プロジェクトをクローンして設定します:

git clone https://github.com/ZDOSt/Research-MCP.git
cd Research-MCP
cp .env.example .env
chmod 600 .env

2つの異なるシークレットを生成します:

openssl rand -hex 32
openssl rand -hex 32

.env を編集し、SEARXNG_SECRETCRAWL4AI_API_TOKEN をそれらの値に置き換えます。CLIENT_DOCKER_NETWORK は、フロントエンドが異なる外部Dockerネットワークを使用する場合にのみ変更します。

完全なスタックを検証して起動します:

docker compose config --quiet
docker compose up -d --build --wait
docker compose ps

ports: エントリは必要ありません。ゲートウェイをDockerの外部に意図的に公開しない限り、追加しないでください。

検証

ゲートウェイコンテナからヘルスチェックを実行します:

docker compose exec -T search-gateway python -c \
  "import urllib.request; print(urllib.request.urlopen('http://127.0.0.1:8080/healthz').read().decode())"

共有ネットワーク上の任意のコンテナから実際の検索を実行します。your-frontend-containeranythingllmlibrechat、または別のコンテナ名に置き換えます:

docker exec your-frontend-container sh -lc \
  "wget -qO- 'http://search-gateway:8080/search?q=how+to+install+docker+compose&format=json' | head -c 1000"

レスポンスには results、ソースURL、抽出された content、診断情報が含まれている必要があります。検索スニペットは、サイトが抽出をブロックした場合やリクエスト期限に達した場合にのみ、明確にラベル付けされたフォールバックとして使用されます。

フロントエンドのセットアップ

フロントエンドがSearXNG URLを要求する場所では、次のベースURLを使用します:

http://search-gateway:8080

完全な検索パスを要求する場合は、次を使用します:

http://search-gateway:8080/search

AnythingLLMは、そのフィールドが SearXNG API Base URL とラベル付けされていても、完全な検索パスを必要とします。次のように設定します:

http://search-gateway:8080/search

標準リクエストは次のとおりです:

GET /search?q=your+question&format=json

サポートされるクエリパラメータは次のとおりです:

  • language=auto

  • time_range=day|week|month|year

  • categories=general,it,news,science,images

  • max_results=1..8

  • mode=auto|quick|balanced|deep

カテゴリが指定されていない場合、ゲートウェイはリクエストから有用なSearXNGカテゴリを推測します。auto は単純な検索にはクイックモード、技術的な質問や推奨事項にはバランスモードを使用します。

直接統合用に、よりリッチなJSONエンドポイントも利用可能です:

POST /v1/research
Content-Type: application/json

{
  "query": "What are the recommended settings for an AW3426DW?",
  "mode": "balanced",
  "max_results": 5,
  "language": "auto",
  "categories": []
}

更新

VPS上のリポジトリディレクトリから:

git pull --ff-only
docker compose config --quiet
docker compose up -d --build --remove-orphans --wait
docker compose ps

通常の更新では docker compose down を実行する必要はありません。既存のRedisキャッシュとリランカーのダウンロードは名前付きボリュームに保持されます。

運用

便利なコマンド:

docker compose ps
docker compose logs --tail=200 search-gateway searxng reranker
docker compose logs --tail=200 crawl4ai web-runner safe-egress pdf-runner
docker compose restart search-gateway
docker compose down
docker compose up -d --wait

docker compose down は名前付きボリュームを保持します。docker compose down -v はキャッシュとダウンロードされたリランカーモデルを削除するため、意図的な完全リセットにのみ使用してください。

制限事項

これは、ドキュメント、トラブルシューティング、製品設定、ゲーム、最新情報、一般的な調査においてホスティング型検索ツールに近づくことができますが、商用プロバイダーと同じカバレッジを保証することはできません。キーレスエンジンはデータセンターIPをレート制限する場合があり、一部のサイトはすべての自動ブラウザをブロックし、また、単一のVPSがGoogle、Brave、または有料の回答エンジンが使用する独自の検索インデックスを持つことはありません。ゲートウェイは、複数のディスカバリープロバイダー、同時抽出、ローカル再ランク付け、制限付きブラウザフォールバック、キャッシング、そして回答を捏造するのではなく正直な部分的な結果を返すことで補償します。

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

  • A
    license
    B
    quality
    Not graded
    maintenance
    Provides advanced Google Custom Search functionality, web content extraction, and specialized research tools such as search analytics, multi-site search, and fact checking. Works as an MCP server compatible with any MCP client.
    10
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Provides local-first web intelligence over MCP with tools for search, fetch, crawl, extract, cache, find-similar, research, and autonomous agent loops, requiring no API keys.
    10
    904
    4,637
    AGPL 3.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Zero-auth multi-source research MCP server that enables web search, reading URLs, PDFs, GitHub repos, and querying Hacker News, Stack Overflow, Semantic Scholar, and YouTube transcripts without API keys.
    10
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables deep research tasks using a multi-agent architecture that integrates any LLM and MCP tools. Available via MCP stdio, streamable HTTP, and SSE transports.
    17
    MIT

View all related MCP servers

Related MCP Connectors

  • AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.

  • Stealth web browser for agents: search, fetch, click and type through persistent sessions over MCP.

  • Turn a GitHub repo or docs site into agent-ready context: pack it or search it, over MCP.

View all MCP Connectors

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/ZDOSt/Research-MCP'

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