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: hidrix-tools
特長
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 installed
Maintenance
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
- FlicenseNot gradedqualityDmaintenanceProvides comprehensive search capabilities including web search, content extraction, news search, academic search, and AI-powered multi-source research. Enables natural language access to web content and research through a production-ready MCP server.
- AlicenseNot gradedqualityFmaintenanceMCP tool server that gives any AI agent the ability to search, scrape, and analyze content across the internet.43MIT
- AlicenseAqualityBmaintenanceEnables AI agents to perform multi-engine web search, fetch web pages, and extract clean Markdown content via MCP, with no API keys required.35MIT
- AlicenseNot gradedqualityAmaintenanceA 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.MIT
Related MCP Connectors
Web research for agents: quality-scored Google search, webpage extraction, and deep research.
Hosted MCP with 91 agent tools: X, domains, SEO, Maps, Trends, Search, YouTube, TikTok, and more.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/iuiu-py/websearch-forge-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server