Skip to main content
Glama
MRNAQA

io.github.MRNAQA/sourceweave-web-search

by MRNAQA

SourceWeave Web Search

Python 3.12+ MIT License MCP Docker managed runtime

ウェブリサーチのための検索ファーストMCPサーバーおよびCLI。

[!NOTE] sourceweave-search-mcpはデフォルトのローカルエントリポイントです。明示的なSOURCEWEAVE_SEARCH_*エンドポイント変数がない場合、ローカルのDockerバックのスタックを自動的に検出または起動します。サービスを自分で実行している場合は、明示的なエンドポイントを設定すると、代わりにそれらを使用します。

概要 • はじめに • 管理されたローカルランタイム • MCPクライアント設定 • CLI • コンテナデプロイ • OpenWebUI • ランタイム設定 • 開発

概要

SourceWeave Web Searchは、MCPクライアントにウェブリサーチのためのコンパクトな3ツール契約を提供します:

  • search_web(query, domains?, urls?, effort?)はソースを発見し、安定したpage_idハンドルを持つコンパクトな結果を返します。

  • read_pages(page_ids, focus?)はpage_idで保存されたページを読み取ります。

  • read_urls(urls, focus?)は検索せずに直接URLを読み取ります。

以下を組み合わせます:

コンポーネント

役割

SearXNG

検索ディスカバリ

Crawl4AI

クリーンなHTML抽出

Redis or Valkey

永続化されたページキャッシュとpage_idストア

MarkItDown

PDFやその他のサポート対象ファイルのドキュメント変換

Related MCP server: codex-search-mcp

はじめに

要件

  • Python 3.12+

  • デフォルトの管理されたローカルランタイムのためのComposeサポート付きDocker

  • ホスト型または自己管理型サービスを希望する場合のみ、明示的なSOURCEWEAVE_SEARCH_*エンドポイント

管理されたローカルランタイム

公開パッケージからサーバーを実行します:

uvx --from sourceweave-web-search sourceweave-search-mcp

またはHTTPでMCPサーバーを起動します:

uvx --from sourceweave-web-search sourceweave-search-mcp \
  --transport streamable-http \
  --host 127.0.0.1 \
  --port 8000

エンドポイント環境変数が設定されていない場合、sourceweave-search-mcpは:

モード

動作

管理されたスタックが見つかった

現在のランタイム状態ディレクトリの既存のSourceWeave管理スタックに参加する

正常な外部スタックが見つかった

所有権なしで標準のローカルポート19080、19235、16379を再利用する

再利用可能なスタックがない

標準または空きローカルポートでDockerバックのスタックを起動して監視する

管理された状態は~/.sourceweave-local/managed-runtimeの下にあります。同じマシン上の複数のMCPプロセスは、状態ディレクトリごとに1つの管理されたスタックを共有します。

[!IMPORTANT] 管理されたランタイムは、最後のアクティブなSourceWeave管理プロセスが終了したときにのみコンテナを削除します。名前付きボリュームは保持されるため、キャッシュデータは再起動後も存続します。元の所有プロセスが終了した場合、後続のプロセスがDockerプロジェクトIDと永続化されたランタイム状態から同じスタックを復元できます。

明示的エンドポイントモード

SearXNG、Crawl4AI、RedisまたはValkeyを自分で実行している場合、またはホスト型サービスを指したい場合は、明示的なエンドポイントを設定すると、MCPエントリポイントは管理されたDocker起動をバイパスします:

SOURCEWEAVE_SEARCH_SEARXNG_BASE_URL="http://127.0.0.1:19080/search?format=json&q=<query>" \
SOURCEWEAVE_SEARCH_CRAWL4AI_BASE_URL="http://127.0.0.1:19235" \
SOURCEWEAVE_SEARCH_CACHE_REDIS_URL="redis://127.0.0.1:16379/2" \
uvx --from sourceweave-web-search sourceweave-search-mcp

直接CLI

sourceweave-searchはツールを直接実行します。サポートサービスがすでに利用可能な場合、または明示的なエンドポイントを提供する場合に使用します。Dockerは起動しません。

sourceweave-search --query "python programming" --read-first-pages 2
sourceweave-search --read-url "https://packaging.python.org/en/latest/"

[!TIP] 直接CLIは--searxng-base-url、--crawl4ai-base-url、--cache-redis-urlのオーバーライドも受け付けます。

MCPクライアント設定

OpenCode

例:opencode.json / opencode.jsonc / ~/.config/opencode/opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sourceweave": {
      "type": "local",
      "command": [
        "uvx",
        "--from",
        "sourceweave-web-search",
        "sourceweave-search-mcp"
      ],
      "enabled": true,
      "timeout": 300000
    }
  }
}

代わりに共有HTTPエンドポイントを使用する場合:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sourceweave": {
      "type": "remote",
      "url": "http://127.0.0.1:18000/mcp",
      "enabled": true,
      "timeout": 300000
    }
  }
}

VS Code Copilot

例:.vscode/mcp.json:

{
  "servers": {
    "sourceweave": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "--from",
        "sourceweave-web-search",
        "sourceweave-search-mcp"
      ]
    }
  }
}

代わりに共有HTTPエンドポイントを使用する場合:

{
  "servers": {
    "sourceweave": {
      "type": "http",
      "url": "http://127.0.0.1:18000/mcp"
    }
  }
}

Claude Code

例:.mcp.json:

{
  "mcpServers": {
    "sourceweave": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "--from",
        "sourceweave-web-search",
        "sourceweave-search-mcp"
      ]
    }
  }
}

プロジェクトスコープの共有設定の場合は、同じブロックをリポジトリルートの.mcp.jsonに配置します。

CLI

直接CLIは、サポートサービスがすでに到達可能な場合に便利です。MCPラッパーなしで同じ検索ファーストのワークフローを提供します。

sourceweave-search --query "react useEffect cleanup example" --read-first-page
sourceweave-search --query "HTTP overview" --domain developer.mozilla.org --read-first-page
sourceweave-search --read-url "https://packaging.python.org/en/latest/"

コンテナデプロイ

管理されたローカルランタイムは、ホスト側のuvxまたはuv run起動用です。コンテナ化されたデプロイでは、依然として明示的なエンドポイント配線を使用します。

  • イメージ:ghcr.io/mrnaqa/sourceweave-web-search-mcp

  • リポジトリローカルのcomposeエントリポイント:docker compose up -d --build mcp

コンテナ実行の例:

docker run --rm -p 8000:8000 \
  -e SOURCEWEAVE_SEARCH_SEARXNG_BASE_URL="http://host.docker.internal:19080/search?format=json&q=<query>" \
  -e SOURCEWEAVE_SEARCH_CRAWL4AI_BASE_URL="http://host.docker.internal:19235" \
  -e SOURCEWEAVE_SEARCH_CACHE_REDIS_URL="redis://host.docker.internal:16379/2" \
  ghcr.io/mrnaqa/sourceweave-web-search-mcp:latest

OpenWebUI

このリポジトリには、artifacts/sourceweave_web_search.pyに生成されたスタンドアロンのOpenWebUIツールファイルも同梱されています。

リポジトリのチェックアウトから、それが正規の実装と同期していることを確認します:

uv run sourceweave-build-openwebui --check

スタンドアロンのツールファイルデプロイパスが必要な場合は、そのアーティファクトをOpenWebUIに貼り付けます。生成されたファイルは、デフォルトのエンドポイントをリポジトリローカルのcomposeサービス名に書き換えるため、そのままコンテナデプロイパスに一致します。

ランタイム設定

オプションの環境変数:

変数

目的

SOURCEWEAVE_SEARCH_SEARXNG_BASE_URL

SearXNG URLテンプレート。<query>を含む必要があります。

SOURCEWEAVE_SEARCH_CRAWL4AI_BASE_URL

Crawl4AIのベースURL。

SOURCEWEAVE_SEARCH_CACHE_REDIS_URL

キャッシュに使用されるRedisまたはValkeyのURL。

FASTMCP_HOST

sseまたはstreamable-httpトランスポートのホスト。

FASTMCP_PORT

sseまたはstreamable-httpトランスポートのポート。

エンドポイント変数が設定されていない場合、sourceweave-search-mcpは管理されたローカルランタイムをデフォルトとします。

  • 標準のホストエンドポイントは、推奨されるデフォルトおよび外部再利用プローブのターゲットのままです。

  • SourceWeave管理スタックは、標準のデフォルトがすでに占有されている場合、異なる空きホストポートを使用する場合があります。

  • 同じマシン上の複数のMCPプロセスは、ローカルランタイム状態ディレクトリごとに1つの管理されたスタックを共有します。

デフォルトのエンドポイント値:

  • SearXNG: http://127.0.0.1:19080/search?format=json&q=<query>

  • Crawl4AI: http://127.0.0.1:19235

  • Redis: redis://127.0.0.1:16379/2

管理された起動のためのデフォルトの推奨ホストポート:

  • SearXNG: 19080

  • Crawl4AI: 19235

  • Redis: 16379

  • MCP: uvxで直接実行する場合は8000、リポジトリのmcp composeサービスを使用する場合は/mcpで18000

開発

git clone https://github.com/MRNAQA/sourceweave-web-search.git
cd sourceweave-web-search
uv sync --locked --group dev
uv run sourceweave-search-mcp

便利なチェック:

uv run sourceweave-build-openwebui --check
uv run sourceweave-search-mcp --help
uv run pytest tests/test_config.py tests/test_packaging.py tests/test_tool.py tests/test_managed_runtime.py -m "not integration"

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    B
    maintenance
    Enables web search and anonymous public-page retrieval through MCP, with provider-neutral selection, bounded plain-text results, and built-in auditing.
    2
    -
  • A
    license
    B
    quality
    B
    maintenance
    Enables MCP clients to run live web searches, fetch and navigate readable web pages, search images, capture PDF screenshots, and retrieve finance, weather, sports, and world-time data through a zero-configuration authenticated backend.
    11
    10 npm
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables MCP clients to run local web searches with automatic failover across multiple search providers and to extract public web pages as titles and Markdown content, using circuit breaking and key-redacted logging.
    -