MyWebSearch MCP
WebSearch Forge MCP
Легковесный унифицированный WebSearch MCP для AI-агентов.
Ищите, читайте, обходите, парсите и исследуйте публичный веб через один MCP-сервер.
Быстрый старт · Инструменты · Архитектура · Настройка движков · 中文文档
Что это такое
WebSearch Forge MCP — это автономный 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
Ключевые возможности
Один MCP-сервер, шесть возможностей
Подключитесь один раз к transports/mcp_stdio.py:
Инструмент | Назначение |
| Поиск потенциальных источников через SearXNG |
| Загрузка и извлечение одного публичного URL |
| Поиск, затем чтение лучших результатов |
| Несколько поисков и составление отчёта |
| Рекурсивный обход ограниченного сайта |
| Получение субтитров YouTube |
Единый поисковый шлюз
Аргумент engines передаётся в SearXNG как фильтр. WebSearch Forge не выполняет самостоятельный обход поисковых сайтов:
WebSearch Forge MCP → SearXNG → Bing / Baidu / Brave / DuckDuckGoЛёгкость по умолчанию
MCP stdio не требует открытого порта приложения или сервера базы данных. Кэш — SQLite. Опциональные пакеты добавляют Trafilatura, Readability, stealth-запросы, Playwright, парсинг Office/PDF, Scrapy, субтитры YouTube и FastAPI без изменения MCP-контракта.
Ограниченный обход
crawl_site поддерживает нативный бэкенд без зависимостей и опциональный бэкенд Scrapy. Он ограничивает количество страниц и глубину, остаётся на исходном хосте, разрешает относительные ссылки и изолирует сбои страниц.
Быстрый старт
Следующие команды предназначены для Windows PowerShell.
Установка
cd D:\my-websearch\my_websearch
py -3.12 -m pip install -r requirements.txtЗапуск SearXNG
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 принудительно включает UTF-8 в Windows. Loopback-трафик по умолчанию обходит системные прокси-переменные; при необходимости задайте 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
Загрузка и извлечение одного публичного 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, stealth-транспорт, рендеринг и извлечение.providers/crawlсодержит нативный и Scrapy-бэкенды обхода.providers/mediaсодержит провайдер субтитров YouTube.
Настройка поисковых движков
Исходный код SearXNG, принадлежащий проекту:
config/searxng/settings.ymlДва параметра определяют, можно ли вызывать движок:
settings.ymlвключает движок внутри SearXNG.providers/search/registry.pyперечисляет принятое имя вSUPPORTED_ENGINES.
Перезапустите после изменений:
cd D:\my-websearch\my_websearch
docker compose up -d --force-recreate searxngЕсли SearXNG ещё не предоставляет движок, сначала реализуйте этот движок SearXNG.
Безопасность и надёжность
Принимаются только URL с протоколами HTTP и HTTPS.
Цели localhost, loopback, частные IPv4, link-local и частные IPv6 отклоняются.
Адреса перенаправлений проверяются повторно.
Операции поиска и загрузки используют SQLite-кэш с TTL, по умолчанию 300 секунд.
Частичные сбои не отбрасывают успешную работу.
stdout зарезервирован для MCP JSON-RPC.
Дополнительные возможности
Возможность | Включение |
Trafilatura / Readability | Установите |
Stealth-запросы | Установите |
Рендеринг JavaScript | Установите Playwright и используйте |
PDF / DOCX / XLSX / PPTX | Установите соответствующие пакеты документов |
Обход Scrapy | Установите Scrapy и используйте |
HTTP-сервис FastAPI | Запустите |
Субтитры 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