MyWebSearch MCP
WebSearch Forge MCP
AIエージェント向けの軽量で統合されたWebSearch MCP。
1つのMCPサーバーで公開Webの検索、読み取り、クロール、解析、リサーチを実現します。
クイックスタート · ツール · アーキテクチャ · 検索エンジンの設定 · 中文文档
概要
WebSearch Forge MCPは、エージェント駆動のWebリサーチのための自己完結型MCPサービスです:
Question → search sources → fetch pages → extract content → crawl related pages → compile evidence明確なレイヤーに分割されています:
transportsはMCP stdioとオプションのFastAPIアダプターを公開します。coreは設定、キャッシュ、セキュリティチェック、オーケストレーション、リサーチワークフローを処理します。providersは検索、フェッチ、抽出、クロール、メディア機能を実装します。SearXNGは、Bing、Baidu、Brave、DuckDuckGo、その他の設定済みエンジンに対する単一の検索ゲートウェイです。
Related MCP server: myscrape
特長
1つのMCPサーバー、6つの機能
transports/mcp_stdio.pyに一度接続するだけです:
ツール | 目的 |
| SearXNGを通じて候補ソースを検索 |
| 1つの公開URLをフェッチして抽出 |
| 検索してから上位結果を読み取る |
| 複数検索を実行してレポートをまとめる |
| 制限付きの同一ドメインサイトを再帰的にクロール |
| YouTubeのキャプションを取得 |
統合検索ゲートウェイ
engines引数はフィルターとしてSearXNGに渡されます。WebSearch Forgeは検索ウェブサイトに独立してファンアウトしません:
WebSearch Forge MCP → SearXNG → Bing / Baidu / Brave / DuckDuckGoデフォルトで軽量
MCP stdioは公開アプリケーションポートやデータベースサーバーを必要としません。キャッシュはSQLiteです。オプションパッケージは、MCP契約を変更せずにTrafilatura、Readability、ステルスリクエスト、Playwright、Office/PDF解析、Scrapy、YouTubeキャプション、FastAPIを追加します。
制限付きクロール
crawl_siteは依存関係ゼロのネイティブバックエンドとオプションのScrapyバックエンドをサポートします。ページ数と深さの制限を強制し、開始ホストに留まり、相対リンクを解決し、ページ障害を分離します。
クイックスタート
以下のコマンドはWindows PowerShell用です。
インストール
cd D:\my-websearch\my_websearch
py -3.12 -m pip install -r requirements.txtSearXNGの起動
docker version
cd D:\my-websearch\my_websearch
docker compose up -d searxng
docker compose psデフォルトのゲートウェイはhttp://127.0.0.1:8080です。設定はconfig/searxng/settings.ymlにあります。
MCPクライアントの設定
mcp_config.example.jsonを使用し、絶対パスを維持してください:
{
"mcpServers": {
"websearch-forge": {
"command": "py",
"args": [
"-3.12",
"D:\\my-websearch\\my_websearch\\transports\\mcp_stdio.py"
],
"env": {
"SEARXNG_URL": "http://127.0.0.1:8080",
"CACHE_TTL": "300"
}
}
}
}stdioアダプターはWindowsでUTF-8を強制します。ループバックトラフィックはデフォルトでマシン全体のプロキシ変数をバイパスします。必要に応じてPROXY_URLを明示的に設定してください。
ツール
search_web
ページ本文をダウンロードせずにSearXNG経由で検索します。
{
"name": "search_web",
"arguments": {
"query": "Python 3.14 new features",
"engines": ["bing", "baidu", "brave"],
"limit": 5,
"time_range": "month"
}
}fetch_web_content
1つの公開URLをフェッチして抽出します。HTML、PDF、DOCX、XLSX、PPTX、CSV、Markdown、プレーンテキストに対応しています。
{
"name": "fetch_web_content",
"arguments": {
"url": "https://www.python.org",
"max_chars": 10000,
"stealth_mode": "off",
"render_mode": "auto",
"extraction_mode": "auto"
}
}レスポンスには、最終URL、HTTPステータス、タイトル、抽出方法、単語数、コンテンツ、検出されたリンクが含まれます。
search_and_fetch
最初に検索し、次に上位結果を個別にフェッチします。失敗したページはその項目に記録され、バッチ全体はキャンセルされません。
{
"name": "search_and_fetch",
"arguments": {
"query": "FastAPI MCP server",
"limit": 3,
"max_chars": 12000
}
}deep_research
関連クエリを並行して実行し、最も有力な結果をフェッチし、ソースレベルの失敗を含むMarkdownレポートを返します。
{
"name": "deep_research",
"arguments": {
"queries": ["SearXNG engine configuration", "MCP stdio deployment"],
"breadth": 3,
"max_chars": 12000
}
}crawl_site
ページ数と深さの厳格な制限付きで同一ホストのサイトをクロールします。
{
"name": "crawl_site",
"arguments": {
"url": "https://www.python.org",
"max_pages": 10,
"max_depth": 2,
"backend": "native",
"stealth_mode": "off"
}
}nativeがデフォルトです。Scrapyをインストールし、backendをscrapyに設定するとオプションのバックエンドを使用できます。各ページはURL、深さ、ステータス、フェッチ方法、タイトル、コンテンツ、単語数を報告します。
youtube_transcript
オプションのソース言語と翻訳言語を指定してYouTubeのキャプションを取得します。
レスポンス形式
{
"query": "OpenAI",
"provider": "searxng",
"engines": ["bing", "baidu", "brave"],
"total_results": 3,
"results": [
{
"title": "OpenAI | Research & Deployment",
"url": "https://openai.com/",
"description": "...",
"source": "openai.com",
"engine": "bing",
"score": 1.0
}
],
"partial_failures": []
}成功した部分的な結果は保持されます。エンジン、ページ、ドキュメントのエラーは構造化された失敗エントリとして返されます。
アーキテクチャ
flowchart LR
A[Agent / MCP Client] -->|stdio JSON-RPC| B[transports/mcp_stdio.py]
B --> C[core/service.py]
C --> D[providers/search]
D --> E[SearXNG]
E --> F[Bing / Baidu / Brave / DDG]
C --> G[providers/content]
G --> H[HTTP / stealth / Playwright]
C --> I[providers/crawl]
C --> J[providers/media]
C --> K[(SQLite TTL cache)]transportsはプロトコルを適応させます。MCPとFastAPIは同じサービスを共有します。coreはオーケストレーション、キャッシュポリシー、設定、URLセキュリティを担当します。providers/searchはSearXNGと通信し、エンジン名を検証します。providers/contentはHTTP、ステルストランスポート、レンダリング、抽出を処理します。providers/crawlにはネイティブとScrapyのクローリングバックエンドが含まれます。providers/mediaにはYouTubeトランスクリプトプロバイダーが含まれます。
検索エンジンの設定
プロジェクト所有のSearXNGソースは:
config/searxng/settings.ymlエンジンを呼び出せるかどうかを決定する2つの設定:
settings.ymlがSearXNG内でエンジンを有効にします。providers/search/registry.pyがSUPPORTED_ENGINESに受け入れ可能な名前をリストします。
変更後は再起動してください:
cd D:\my-websearch\my_websearch
docker compose up -d --force-recreate searxngSearXNGがまだそのエンジンを提供していない場合は、まずそのSearXNGエンジンを実装してください。
セキュリティと信頼性
HTTPとHTTPSのURLのみ受け付けます。
localhost、ループバック、プライベートIPv4、リンクローカル、プライベートIPv6のターゲットは拒否されます。
リダイレクト先は再度検証されます。
検索とフェッチ操作はSQLite TTLキャッシュを使用し、デフォルトは300秒です。
部分的な失敗は成功した作業を破棄しません。
stdoutはMCP JSON-RPC用に予約されています。
オプション機能
機能 | 有効化方法 |
Trafilatura / Readability |
|
ステルスリクエスト |
|
JavaScriptレンダリング | Playwrightをインストールし |
PDF / DOCX / XLSX / PPTX | 対応するドキュメントパッケージをインストール |
Scrapyクロール | Scrapyをインストールし |
FastAPI HTTPサービス |
|
YouTubeキャプション |
|
プロジェクト構成
my_websearch/
├── assets/ # Project logo
├── config/searxng/ # SearXNG settings.yml
├── core/ # Config, cache, security, orchestration
├── providers/
│ ├── search/ # SearXNG gateway and engine allow-list
│ ├── content/ # Requests, rendering, extraction
│ ├── crawl/ # Native and Scrapy backends
│ └── media/ # YouTube transcript provider
├── transports/ # MCP stdio and FastAPI adapters
├── tests/ # Dependency-free self-checks
├── docker-compose.yml # Local SearXNG gateway
├── mcp_config.example.json # MCP client template
├── requirements.txt # Dependency entry point
├── README.md # English documentation
└── README.zh-CN.md # 中文文档開発チェック
cd D:\my-websearch
py -3.12 -m my_websearch.tests.test_server期待される出力:
my_websearch self-check: okオプションのFastAPIサービス:
cd D:\my-websearch\my_websearch
py -3.12 -m transports.api次にhttp://127.0.0.1:8787/docsを開きます。
ライセンス
ライセンスはまだ設定されていません。公開配布前にルートレベルのLICENSEファイルを追加してください。
This server cannot be deployed
Maintenance
Related MCP Connectors
Scrape, crawl and search the web for AI agents via MCP.
Free web search for AI agents. No API key required. Hosted MCP in active development.
One MCP server for all web data. Scrape, search, crawl, and AI research in one install.
Web scraping, browser automation, screenshots and AI data extraction for AI agents via MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP tool server that gives any AI agent the ability to search, scrape, and analyze content across the internet.42MIT
- AlicenseNot gradedqualityCmaintenanceA self-contained web-research MCP server that lets local LLM agents search, fetch, and synthesize web content using tools like web_search, web_fetch, and web_research.2MIT
- AlicenseNot gradedqualityDmaintenanceMulti-purpose research MCP server integrating web search, deep research, web scraping, research methodology routing, and GPT Researcher report generation.MIT
- AlicenseNot gradedqualityAmaintenanceAn MCP server that gives agents a unified search and perception layer across web search, Bilibili, Xiaohongshu, Zhihu, YouTube, academic metadata, recruitment sites, and webpage extraction, plus research planning, health checks, and task status.MIT