Research MCP
プライベート検索ゲートウェイ
このプロジェクトは、AIフロントエンド向けの決定論的でセルフホスト型の検索およびページ取得バックエンドです。SearXNG互換の検索エンドポイントを公開し、少数の検索エンジンでソースを発見し、最も有力なページを開き、実際のコンテンツを抽出し、限られた数の関連する同一サイトリンクを辿り、ローカルでエビデンスを再ランク付けし、引用元のURLとページから抽出されたテキストを返します。
有料の検索APIや内部言語モデルは呼び出しません。フロントエンドのモデルが取得したエビデンスを受け取り、回答を記述します。これにより、サービスはプライベートで予測可能に保たれ、カスタムのSearXNGまたはJSON検索プロバイダーを受け入れる任意のフロントエンドで使用できます。
実行されるもの
search-gateway: 唯一のクライアント向けサービス、内部ポート8080searxng: ウェブ、技術、ニュース、画像、研究の発見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: bathys
要件
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 .env2つの異なるシークレットを生成します:
openssl rand -hex 32
openssl rand -hex 32.env を編集し、SEARXNG_SECRET と CRAWL4AI_API_TOKEN をそれらの値に置き換えます。CLIENT_DOCKER_NETWORK は、フロントエンドが異なる外部Dockerネットワークを使用する場合にのみ変更します。
完全なスタックを検証して起動します:
docker compose config --quiet
docker compose up -d --build --wait
docker compose psports: エントリは必要ありません。ゲートウェイを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-container を anythingllm、librechat、または別のコンテナ名に置き換えます:
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/searchAnythingLLMは、そのフィールドが SearXNG API Base URL とラベル付けされていても、完全な検索パスを必要とします。次のように設定します:
http://search-gateway:8080/search標準リクエストは次のとおりです:
GET /search?q=your+question&format=jsonサポートされるクエリパラメータは次のとおりです:
language=autotime_range=day|week|month|yearcategories=general,it,news,science,imagesmax_results=1..8mode=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 --waitdocker compose down は名前付きボリュームを保持します。docker compose down -v はキャッシュとダウンロードされたリランカーモデルを削除するため、意図的な完全リセットにのみ使用してください。
制限事項
これは、ドキュメント、トラブルシューティング、製品設定、ゲーム、最新情報、一般的な調査においてホスティング型検索ツールに近づくことができますが、商用プロバイダーと同じカバレッジを保証することはできません。キーレスエンジンはデータセンターIPをレート制限する場合があり、一部のサイトはすべての自動ブラウザをブロックし、また、単一のVPSがGoogle、Brave、または有料の回答エンジンが使用する独自の検索インデックスを持つことはありません。ゲートウェイは、複数のディスカバリープロバイダー、同時抽出、ローカル再ランク付け、制限付きブラウザフォールバック、キャッシング、そして回答を捏造するのではなく正直な部分的な結果を返すことで補償します。
This server cannot be deployed
Maintenance
Related MCP Connectors
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
MCP tools for agents: web research, content extraction, email, DNS, and blockchain intelligence.
Scrape, crawl and search the web for AI agents via MCP.
Stealth web browser for agents: search, fetch, click, download and type in persistent MCP sessions.
Related MCP Servers
- AlicenseAqualityAmaintenanceProvides 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.10875 npm5,455AGPL 3.0
- AlicenseAqualityAmaintenanceEnables AI agents to run local deep-research workflows via a single MCP stdio server, combining web search, page extraction, query-aware distillation, and caching without cloud quotas. It exposes tools for deep research, search, and single or batch URL reading.679 PyPIMIT
- AlicenseAqualityCmaintenanceGives MCP-capable agents live web access: search the web, scrape pages into Markdown (including JavaScript-heavy and bot-protected sites), and extract named fields as JSON, with job polling, token-aware content offloading, and built-in research guidance. Ships as a self-hostable stdio or HTTP service with spend caps and per-request key support.7MIT
- FlicenseBqualityBmaintenanceExposes web research tools to MCP agents so they can search the web, open and read pages, grep fetched content, manage a local SQLite corpus, and generate citations. Includes a containerized fetcher for headless browsing and PDF extraction.7-