mcpField
S
SearchForge

SearchForge

ローカル
divyanshu-iitian.github.io検索214 週間前に更新

SearchForge について

SearchForge は、LLM、エージェント、RAGワークフロー向けのオープンソース検索API兼MCPサーバーです。ウェブ、コード、学術、コミュニティの情報源へクエリを振り分け、回答を生成せずに構造化結果や整形済みMarkdownを返します。

主な機能

  1. 01意図に応じた複数ソース検索
  2. 02URLを整形済みMarkdownで取得
  3. 03ソース障害の分離とランキング統合
  4. 04CLI、REST API、MCP、TypeScript SDK
  5. 05ソースの状態と遅延の診断
  6. 06キー不要のソースを標準で有効化

活用シーン

  1. 01エージェントやRAG用の情報源を検索
  2. 02コードリポジトリーや学術成果を検索
  3. 03公開記事をMarkdownで取得
  4. 04検索ソースの稼働状況を診断

MCP 対応

stdio MCPで `web_search`、`read_url`、`search_status` の3つのツールを提供します。検索と状態確認の応答には、構造化されたMCPコンテンツと読みやすいテキストが含まれます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"divyanshu-iitian-searchforge": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SEARCHFORGE_SEARXNG_URL",
"-e",
"GITHUB_TOKEN",
"-e",
"CROSSREF_MAILTO",
"-e",
"BRAVE_SEARCH_API_KEY",
"ghcr.io/divyanshu-iitian/searchforge-mcp:0.2.0"
],
"env": {
"SEARCHFORGE_SEARXNG_URL": "<SEARCHFORGE_SEARXNG_URL>",
"GITHUB_TOKEN": "<GITHUB_TOKEN>",
"CROSSREF_MAILTO": "<CROSSREF_MAILTO>",
"BRAVE_SEARCH_API_KEY": "<BRAVE_SEARCH_API_KEY>"
}
}
}
}
起動コマンドdocker run -i --rm -e SEARCHFORGE_SEARXNG_URL -e GITHUB_TOKEN -e CROSSREF_MAILTO -e BRAVE_SEARCH_API_KEY ghcr.io/divyanshu-iitian/searchforge-mcp:0.2.0
設定が必要な環境変数
SEARCHFORGE_SEARXNG_URLOptional URL of a self-hosted SearXNG instance
GITHUB_TOKENシークレットOptional GitHub token for higher public API quotas
CROSSREF_MAILTOOptional email address for Crossref polite-pool routing
BRAVE_SEARCH_API_KEYシークレットOptional Brave Search API key

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocighcr.io/divyanshu-iitian/searchforge-mcp:0.2.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

SearchForge

LLM、エージェント、RAG 向けのオープンソース Web 検索 API および MCP サーバー。

CI License: MIT Node.js MCP Website Official MCP Registry

1 つのローカルゲートウェイ。意図を認識する検索。整った Markdown。REST、MCP、CLI、TypeScript に対応。

ウェブサイト · クイックスタート · 無料ツール · MCP · API · 設計


SearchForge は、LLM、AI エージェント、検索拡張生成(RAG)パイプライン向けの無料のオープンソース Web 検索 API および MCP サーバーです。 有料の検索サービスとの連携をすべてのプロジェクトに強制することなく、予測可能な検索レイヤーを提供します。SearchForge は各クエリを適切なソースに振り分け、プロバイダーの障害を分離し、URL を重複排除してランキングを統合し、公開ページを LLM が利用しやすい Markdown に変換します。

回答を生成したり、引用を隠したり、公開 SearXNG インスタンスをスクレイピングしたり、テレメトリーを送信したりすることはありません。

提供機能

機能デフォルトのソース費用/認証情報
auto意図に応じてソースを振り分けデフォルトではキー不要
webWikipedia、オプションでプライベート SearXNGキー不要/セルフホスト可能
codeGitHub リポジトリ検索キー不要、トークンは任意
academicCrossref の文献情報と DOI メタデータキー不要
communityAlgolia 経由の Hacker Newsキー不要、コミュニティサービス
read_urlJina Readerキー不要、現在はレート制限あり

SearchForge は、キー不要のすべてのアダプターを有効にした状態で起動します。デフォルトの auto は、Web 検索をフォールバックとして維持しながら、コード、研究、最新情報/コミュニティ関連の意図を適切なソースに振り分けます。GitHub トークンを設定すると公開 API のクォータが増えるだけで、Brave はキーを使うオプションのバックエンドとして利用できます。幅広く独立した Web メタ検索には、同梱の SearXNG スタックを利用できます。

クイックスタート

クローンせずに試す
npx --yes --package github:divyanshu-iitian/SearchForge \
  searchforge search "latest open-source agent frameworks"

初回実行時に GitHub からパッケージをダウンロードしてビルドします。カテゴリを選択しない場合、検索には意図に応じて振り分ける auto が使われます。

キー不要のローカル CLI
git clone https://github.com/divyanshu-iitian/SearchForge.git
cd SearchForge
npm install
npm run build

node dist/cli.js search "latest open-source agent frameworks"
node dist/cli.js search "retrieval augmented generation" --category academic
node dist/cli.js search "local LLM tooling" --category community
node dist/cli.js read "https://example.com"
node dist/cli.js doctor
プライベート SearXNG によるフル Web 検索
docker compose up --build
curl -s http://localhost:3000/v1/search \
  -H "content-type: application/json" \
  -d '{"query":"open source vector databases","category":"web","limit":5}'

これにより、SearchForge はポート 3000 で、プライベートかつ JSON が有効な SearXNG はポート 8080 で起動します。このスタックを外部に公開する前に、SearXNG のシークレットを変更し、SEARCHFORGE_API_KEY を設定して、信頼できるプロキシで TLS を終端してください。

無料ツール

機能別に検索
searchforge search "latest open-source agent frameworks"
searchforge search "browser agent" --category code
searchforge search "semantic reranking" --category academic --json
searchforge search "Show HN search engine" --category community

デフォルトの auto カテゴリは、コード、学術、最新情報/コミュニティ関連の兆候を検出し、Web 検索のフォールバックと並行して、該当するソース群にクエリを送信します。カテゴリを明示すると、関係のないプロバイダーへのクエリを防げます。providers リストを明示するとカテゴリによる振り分けが上書きされるため、評価に便利です。

URL を Markdown として読み込む
searchforge read "https://example.com/article"

read_url が受け付けるのは、公開 HTTP(S) URL のみです。認証情報、localhost、プライベート IP リテラル、Web 以外のプロトコルは拒否されます。レスポンスにはサイズ上限とタイムアウトが設定され、キャッシュされます。

検索経路全体を診断する
searchforge doctor

Doctor は、実際の範囲を限定したプローブを実行し、各プロバイダーのアクセス層、機能、レイテンシ、エラーを報告します。ソースに障害が発生しても、誤解を招く全か無かのステータスではなく、degraded と表示します。

MCP

SearchForge は、次の3つの stdio ツールを公開しています。

  • web_search — ルーティングされ、引用に対応した構造化検索
  • read_url — 公開 URL からクリーンな Markdown を取得
  • search_status — 機能とレイテンシのライブレポート
{
  "mcpServers": {
    "searchforge": {
      "command": "node",
      "args": ["/absolute/path/to/SearchForge/dist/mcp.js"],
      "env": {
        "SEARCHFORGE_SEARXNG_URL": "http://localhost:8080"
      }
    }
  }
}

検索ツールとステータスツールは、読みやすいテキストに加えて、MCP の構造化コンテンツも返します。

クローンせずに、GitHub から MCP サーバーを直接実行できます。

{
  "mcpServers": {
    "searchforge": {
      "command": "npx",
      "args": [
        "--yes",
        "--package",
        "github:divyanshu-iitian/SearchForge",
        "searchforge-mcp"
      ]
    }
  }
}

SearchForge は、 公式 MCP Registry にも io.github.divyanshu-iitian/searchforge として公開されています。Docker コマンドに対応する MCP クライアントから、Registry に登録された OCI イメージを直接実行するには、次のようにします。

{
  "mcpServers": {
    "searchforge": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "ghcr.io/divyanshu-iitian/searchforge-mcp:0.2.0"
      ]
    }
  }
}

REST API

検索
POST /v1/search
Content-Type: application/json

{
  "query": "open source reranking models",
  "category": "academic",
  "limit": 8,
  "language": "en",
  "freshness": "month",
  "safeSearch": "moderate"
}
{
  "schemaVersion": "1.0",
  "query": "open source reranking models",
  "category": "academic",
  "results": [
    {
      "title": "Example work",
      "url": "https://doi.org/10.0000/example",
      "snippet": "Authors · Publisher · journal-article",
      "source": "crossref",
      "sources": ["crossref"],
      "score": 0.016393
    }
  ],
  "providers": [
    {
      "provider": "crossref",
      "ok": true,
      "latencyMs": 241,
      "resultCount": 8
    }
  ],
  "tookMs": 243,
  "cached": false
}
読み取り
POST /v1/read
Content-Type: application/json

{"url":"https://example.com/article"}

その他のエンドポイント:

GET /healthz       Process liveness
GET /v1/providers  Configured capabilities and access tiers
GET /v1/doctor     Live dependency health

完全な OpenAPI コントラクトをご覧ください。

TypeScript SDK

import {
  CrossrefProvider,
  GithubProvider,
  JinaReader,
  SearchForge,
} from "searchforge-rag";

const forge = new SearchForge({
  providers: [new GithubProvider(), new CrossrefProvider()],
  reader: new JinaReader(),
  timeoutMs: 8_000,
});

const evidence = await forge.search({
  query: "agentic retrieval",
  category: "academic",
  limit: 10,
});

const page = await forge.read("https://example.com/research");

npm でリリースされるまでは、次のようにします。

npm install github:divyanshu-iitian/SearchForge

プロバイダーの詳細

プロバイダー機能アクセス有効化
SearXNGウェブセルフホスト、ベンダー料金なしSEARCHFORGE_SEARXNG_URL
Wikipediaウェブ知識のフォールバックキー不要常時
GitHubコードリポジトリキー不要。認証なしの REST リクエストは1時間あたり60回。検索にはさらに厳しい制限があります常時
Crossref学術メタデータキー不要。mailto を推奨常時
HN Algoliaコミュニティキー不要。コミュニティ運営のため、利用可能性は変動します常時
Jina ReaderURL から Markdown への変換キー不要。現在、公表されているキー不要の利用枠は20 RPMです常時
Brave SearchウェブAPI キーBRAVE_SEARCH_API_KEY

SearchForge は、公開されている SearXNG インスタンスを意図的に設定しません。JSON を無効にしていたり、自動化されたトラフィックを制限していたりすることが多いためです。安定した無料の方法は Docker スタックです。

仕組み

Agent / RAG / MCP client
           |
      validate + route
           |
  +--------+---------+-----------+
  |        |         |           |
 web      code    academic   community       read_url
  |        |         |           |              |
SearXNG  GitHub   Crossref   Hacker News    Jina Reader
Wikipedia
  +--------+---------+-----------+
           |
 normalize -> canonicalize -> deduplicate -> reciprocal-rank fusion
           |
 versioned evidence + provenance + per-source health

冪等なプロバイダー呼び出しはそれぞれ、中断可能な独自のタイムアウトを持ちます。1つの障害によって、正常な結果が失われることはありません。重複排除の前にトラッキングパラメーターを削除し、結果に寄与した各プロバイダーを sources に保持します。

この機能優先の設計は、Agent Reach に着想を得ています。Agent Reach は、エージェントが多くの上流ツールを直接操作できるようにします。SearchForge は、RAG アプリケーション向けの安定した埋め込み可能な検索 API を提供することで、このアプローチを補完します。

設定

変数デフォルト用途
SEARCHFORGE_SEARXNG_URL未設定プライベートな SearXNG ベース URL
GITHUB_TOKEN未設定GitHub のクォータを増やすオプション
CROSSREF_MAILTO未設定Crossref の polite-pool 識別情報
BRAVE_SEARCH_API_KEY未設定Brave バックエンドのオプション
SEARCHFORGE_API_KEY未設定REST のベアラー認証または x-api-key
SEARCHFORGE_PORT3000REST ポート
SEARCHFORGE_HOST127.0.0.1バインドアドレス
SEARCHFORGE_TIMEOUT_MS8000依存先ごとのタイムアウト
SEARCHFORGE_CACHE_TTL_MS300000メモリ内キャッシュの TTL
SEARCHFORGE_CACHE_MAX_ENTRIES500キャッシュエントリ数の上限
SEARCHFORGE_RATE_LIMIT60クライアントあたりのリクエスト数/分

本番環境での注意点

  • パブリックインターフェースにバインドする前に、API キーを設定してください。
  • 検索結果とページコンテンツは信頼できない入力です。これらを区切り、プロンプトインジェクション対策を適用してください。
  • 組み込みのキャッシュとレートリミッターはプロセス内でのみ機能します。複数のレプリカを使用する場合は、共有インフラストラクチャを使用してください。
  • プロバイダーのレスポンス本文と認証情報は、表示されるエラーには含まれません。
  • healthz はプロセスが稼働中であることを確認し、/v1/doctor は依存関係を確認します。

SECURITY.md、CONTRIBUTING.md、CHANGELOG.md をご覧ください。

原則

  1. 生成された回答よりも根拠を重視
  2. ベンダーロックインよりも無料でセルフホスト可能な選択肢を優先
  3. 完全な失敗よりも部分的な結果を優先
  4. 機能とクォータを誠実に報告
  5. 安定した契約と明示的な出典情報
  6. デフォルトではテレメトリーを収集しない

ライセンス

MIT © Divyanshu.

SearchForge がエージェントに役立った場合は、リポジトリにスターを付け、Discussions で連携方法を共有してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。