ai-search-mcp
AI Search MCP
MCP-сервер для веб-поиска, созданный для агентов: готовая бесплатная поисковая система из коробки, подключаемые высококачественные движки, встроенный кэш, фильтрация по времени и комбинированный инструмент
research, выполняющий целое исследование одним вызовом.Agent-friendly web search MCP server — бесплатные движки без настройки, отказоустойчивость с учётом региона, фильтрация по свежести и инструмент
researchв один вызов.
Почему это нужно (Why)
Поиск — самый частый инструмент агентов, но у существующих решений есть серьёзные недостатки:
Существующее решение | Проблема |
Официальный MCP | Может получить только известные URL, не умеет искать |
Официальные MCP Tavily / Brave / Exa | Качественно, но всем нужен платный API-ключ |
Community DuckDuckGo MCP | Бесплатный, но хрупкий, вывод неструктурированный, нет кэша/повторов |
ai-search-mcp заполняет этот пробел: без настройки работает сразу (DuckDuckGo / Bing / 百度 / 搜狗), автоматически выбирает лучший движок по региону с отказоустойчивостью, поддерживает фильтр по свежести и ужимает весь цикл «поиск → выбор → извлечение → резюме» в один вызов research.
Related MCP server: websearch-skill
Возможности (Features)
🆓 Без настройки и сразу готово:
npx ai-search-mcpзапускается напрямую, никаких API-ключей не требуется.🔌 Много движков, подключаемые: бесплатные
duckduckgo·bing·baidu·sogou+ платныеbrave·tavily🌄 Автоматический выбор движка по региону:
SEARCH_ENGINE=auto(по умолчанию) → для Китаяbing→baidu→sogou, для остальныхduckduckgo→bing; автоматический фейловер при 429/таймауте, поддержка цепочки движков через запятую🕒 Фильтр по времени:
freshness=day|week|month|yearилиtimeRange="YYYY-MM-DD..YYYY-MM-DD", автоматическое сопоставление с движком🧠 Удобный вывод для агента: структурированный JSON (
{ id, title, url, snippet, domain }), а не сырой HTML; каждый результат имеет стабильныйid, который можно использовать🧭 Комбинированный инструмент
research: один вызов = поиск + извлечение Top-страниц → сводка фактов (устраняет 5~10 обращений к инструментам)⚡ Встроенный кэш (TTL, по умолчанию 10 минут): сокращает повторные запросы, быстрее и популярнее
🛡️ Инженерная отказоустойчивость: таймауты, экспоненциальные повторные попытки, единые коды ошибок; ошибка
RATE_LIMITEDсопровождается рекомендациямиsuggestedEngine/retryAfter🐢 Встроен вежливый паук: ограничение частоты по движку (по умолчанию 8 раз/мин) + случайная пауза между запросами, чтобы не провоцировать антibot-системы; никакого обхода защиты от скрапинга (приоритет соответствия)
📄 Инструмент
fetch_page: любой URL (илиidиз результатов поиска) превращается в читаемый Markdown🌏 Поддержка прокси:
SEARCH_HTTP_PROXY/HTTP(S)_PROXY🧪 Ноль сборки — чистый JS (CommonJS), 130 unit-тестов + сквозные смоук-тесты
Быстрый старт (Quick Start)
Требуется Node.js >= 18.
# 直接用 npx 运行(无需安装)
npx -y ai-search-mcp
# 或全局/本地安装
npm i -g ai-search-mcp
ai-search-mcpClaude Desktop
В /claude_desktop_config.json добавьте:
{
"mcpServers": {
"ai-search-mcp": {
"command": "npx",
"args": ["-y", "ai-search-mcp"]
}
}
}Cursor / Cline / другие клиенты, поддерживающие MCP
{
"mcpServers": {
"ai-search-mcp": {
"command": "npx",
"args": ["-y", "ai-search-mcp"],
"env": {
"SEARCH_REGION": "cn-zh"
}
}
}
}Китайским пользователям рекомендуется добавить
SEARCH_REGION=cn-zh— автоматически будет использоваться цепочка движков с прямым доступом в Китае (bing → baidu → sogou), без прокси.
Запуск из исходников
git clone https://github.com/zhulingyu666/ai-search-mcp.git
cd ai-search-mcp
npm install
npm startОписание инструментов (Tools)
search — поиск
{
"query": "2026年 大模型 最新进展",
"maxResults": 10,
"site": "github.com",
"region": "us-en",
"freshness": "week"
}Возвращает (структурированный JSON):
{
"query": "2026年 大模型 最新进展",
"queryRewritten": "大模型 最新进展",
"queryYear": 2026,
"engine": "bing",
"engineSwitched": false,
"cached": false,
"total": 10,
"deduped": 2,
"freshnessApplied": true,
"freshnessAutoInferred": true,
"timeRange": "2025-08-25..2026-08-25",
"results": [
{
"id": "a1b2c3d4",
"title": "...",
"url": "https://...",
"snippet": "...",
"domain": "example.com"
}
]
}Автоматическая перезапись китайских запросов: когда запрос содержит китайские знаки и слово «20xx年» (например, «2026年 大模型 最新进展»), инструмент убирает исходный год и автоматически добавляет
freshness=year, чтобы компенсировать временное намерение. Потому что такие движки, как Bing, слабо обрабатывают китайскую сегментацию, и годовой префикс приводит к нерелевантным результатам (например, «энциклопедия/календарь 2026»). Перезапись прозрачно возвращается черезqueryRewritten/queryYear/freshnessAutoInferred, и агент может сам решить, принимать её.
Параметр | Тип | По умолчанию | Описание |
| string . | — | Поисковый запрос (обязательно) |
| число | 10 | Количество результатов (1–20) |
| string | — | Ограничение одним доменом, напр. |
| string[] | — | Возвращать только результаты с этих доменов, напр. |
| string[] | — | Исключить результаты с этих доменов, напр. |
| string | — | Подсказка региона: código |
| string | — |
|
| string | — | Точный интервал |
Каждый результат имеет стабильный
id(префикс sha1). Передайте этотidвfetch_page, чтобы прочитать страницу подробнее, не собирая URL вручную.
research — полное исследование за один вызов
Заменяет цикл агента «поиск → выбор страниц → извлечение → резюме» — один вызов:
{
"query": "2026 LLM open source models comparison",
"maxResults": 5,
"fetchTopN": 2,
"freshness": "month"
}Возвращает краткую сводку (evidence brief):
{
"query": "...",
"engine": "bing",
"overview": { "total": 5, "results": [ { "id": "...", "title": "...", "url": "...", "snippet": "...", "domain": "..." } ] },
"pages": [ { "id": "...", "url": "...", "title": "...", "headings": [ { "level": 1, "text": "..." } ], "content": "...", "length": 4000, "truncated": false } ],
"note": "证据简报已就绪,请基于页面内容总结并标注来源 URL。"
}Многостраничное параллельное извлечение; сбой одной страницы фиксируется как
{ url, error }, не влияя на общий результатУмный выбор страниц: pages подбираются по разнообразию доменов (сначала один результат с самым высоким рангом на каждый домен, затем добивается по рейтингу), чтобы один сайт не монополизировал результат — если один сайт блокирует парсинг, страницы других доменов не страдают; поле
rankпомечает исходный ранг результата в поисковой выдачеextractMode(по умолчаниюsummary):summaryвозвращает очищенные ключевые точки текста (экономит токены),fullвозвращает полный Markdown страницыАнализирует окончание модели хоста — MCP не зависит от каких-либо LLM, сохраняя нулевую внешнюю зависимость и нейтральность по вендору.
fetch_page — извлечение web-страницы в структурированный контент
{
"url": "https://example.com/article",
"extractMode": "summary",
"maxLength": 8000
}extractMode:summary(по умолчанию, экономный по токенам, возвращает очищенный текстmainText) /full(возвращает полныйmarkdownстраницы)Возвращает
{ url, title, description, headings, mainText, markdown, length, truncated, cached }—headings— это outline заголовков страницы, чтобы агент мог сначала посмотреть структуру и решить, стоит ли углубляться.
Можно также использовать id результата: { "id": "a1b2c3d4", "maxLength": 8000 }.
Конфигурация (Переменные окружения)
Переменная | По умолчанию | Описание |
|
| Один движок или цепочка устройств через запятую (например, |
| — | Регион по умолчанию для автовыбора движка, напр. |
|
| Количество результатов по умолчанию (1–20) |
|
| Время жизни кэша (сек., 0 отключает) |
| — | Путь к файлу персистентного кэша, напр. |
|
| Таймаут одного запроса (мс) |
|
| Максимум запросов в минуту на один движок (0 отключает лимит) |
|
| Диапазон случайных задержек между запросами (мс, 0 отключает) |
|
|
|
|
|
|
|
|
|
|
| Максимальная длина Markdown отдельной страницы для |
| — | Обязательно для движка |
| — | Обязательно для движка |
| — | Адрес прокси, напр. |
| встроенный | КастиOM User-Agent |
Сравнение движков
Движок | Бесплатный | API-ключ | Фильтр по времени | Описание | |
| ✅ | ❌ | ❌ | Только за рубежом (недоступен из-за стены); глобально лучшее качество индекса, сильный противобот, нужен зарубежный IP + сессия (cookie) | |
| ✅ |
| ✅( | Глобально; по умолчанию для китайского региона, хорошее покрытие китайского/английского, в Китае прямой доступ без прокси | |
| ✅ | ️❌ | ✅( | Глобальный запасный вариант; в материковом Китае может завывать таймаут (нужен прокси) | |
| ✅ | ́ | ✅ | Только за рубежом; силён для русскоязычного/СНГ, хорошая сеть в некоторых окружениях, средний антибот | % |
| ✅ | ️❌ | ✅ | 360 Поиск; ** прямой доступ с дата-центров и китайских IP**, относительно мягкий антибот, нативный китайский движок | |
| ✅ | ❌ | Только Китай; сильный китайский индекс, но строгий антибот (на датацентровом IP всё равно появляется графическая капча wappass) | ||
| ✅ | ❌ | Только Китай; хорошее покрытие WeChat, но без сгенерированной JS-сессии SNUID агент может получить 302-редирект | ||
| ️❌ | ✅ | ✅( | Официальный API, высокое качество, есть бесплатный лимит | |
| ❌ | ✅ | ✅( | Специально разработан для поиска в LLM/RAG сценариях |
Сетевые замечания
Китай без прокси: по умолчанию
SEARCH_ENGINE=auto+SEARCH_REGION=cn-zh→bing → so360 → baidu → sogou, все работают напрямую, ничего настраивать не нужно. Из них 360 Поиск (so360) наиболее терпим к IP дата-центров/машинных залов и является самым надёжным нативным китайским движком.Развернуто за рубежом: не задавайте
SEARCH_REGION(или используйте не-cnпрефикс) → по умолчанию цепьgoogle → bing → duckduckgo → yandex. Google наилучший по качестству, Bing стабильнее всех; при сбое любого движка происходит автоматический переход. Довёр на то, что Google/Yandex недостижимы/перехватываются капчей в Китае — это ожидаемо (под текущей сетью произойдет таймаут илиRATE_LIMITED, затем автоматическое переключение).Бесплатные движки имеют лимиты. При 429 возвращается структурированная ошибка (
RATE_LIMITEDсsuggestedEngineиretryAfter); цепочка движков автоматически делает фейловер при 429/таймауте.Некоторые сайты (например, 百度百科, многие китайские порталы) отклоняют скрипты (HTTP 403):
fetch_pageвозвращает структурированную ошибку,researchпомечает соответствующую страницу как сбой и продолжает работу.Нужен доступ к DuckDuckGo / Brave / Tavily, но вы внутри Китая? Используйте прокси:
SEARCH_ENGINE=duckduckgo SEARCH_HTTP_PROXY=http://127.0.0.1:7890 ai-search-mcpВежливый краулер: инструмент встроенно ограничивает частоту по движку (по умолчанию 8 запросов/мин) и случайные интервалы между запросами; для Baidu/搜狗 «посев» сессионных cookies на главной/ поисковике (BAIDUID / SUID) повышает успех, но не выполняет обход каптчи, подмену интернетов, смену UA или обход антибот-двига — это соответствие красной линией. При блокировке 403/каптчей стоит снизить частоту или сменить движок.
Примечание о доступности Baidu/搜狗 (проверено): эти движки очень чувствительны к сетевой среде — на IP дата-центров/зарубежных IP даже с «посевными» cookies Baidu показывает капчу (
wappass), а Sogou при отсутствии сгенерированной JS-сессии SNUID получает 302-редирект (antispider). Поэтому в стандартном окружении они автоматически переключаются на Bing/360. Если у вас жилой IP на материковом Китае и Baidu/Sogou доступны, можно задатьSEARCH_LANG_ROUTING=1, чтобы китайские запросы шли через 百度/搜狗/360 (нативные китайские движки с лучшей сегментацией).Мы соблюдаем
robots.txtи условия обслуживания целевых сайтов; инструмент возвращает лиSpec search summaries and links, не воспроизводит полные тексты.
Разработка (Development)
npm test # 126 个单元测试(Node 内置 test runner)
node scripts/smoke-test.js # 端到端冒烟:search + freshness + research(需要网络)Пример журнала (stderr, SEARCH_LOG_LEVEL=debug)
[ai-search-mcp] [info] ready (version 0.3.2, engine=auto, region=cn-zh, logLevel=debug)
[ai-search-mcp] [info] rewrite q="2026年 大模型 最新进展" -> q="大模型 最新进展" +freshness=year
[ai-search-mcp] [info] search q="大模型 最新进展" engine=bing cached=false took=972ms total=3 deduped=1
[ai-search-mcp] [info] fetch url=https://example.com/ len=130 mode=summary took=1189ms
[ai-search-mcp] [debug] engine-fail engine=baidu err=RATE_LIMITED took=1203ms
[ai-search-mcp] [warn] fetch-fail url=https://baike.baidu.com/... err=ENGINE_ERROR took=512msЛицензия (License)
Отказ от ответственности: этот проект является независимым открытым исходным проектом и не связан с DuckDuckGo, Bing/Microsoft, Brave, Tavily, 百度, 搜狗, не одобрен ими и не спонсируется. Парсинг Baidu/搜dog основан на публичных HTML; если эти сайты изменят структуру страниц, парсинг может перестать работать.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
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.
- 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 gradedqualityBmaintenanceEnables AI agents to perform web searches with full content retrieval and multi-engine provenance, including trust scoring and local corpus persistence, via MCP integration.42Apache 2.0
- AlicenseAqualityAmaintenanceA multi-engine web search MCP server that integrates with coding agents, offering parallel search, page fetching, X/Twitter search, deep research, and configurable free/API layers.65MIT
Related MCP Connectors
Stealth web browser for agents: search, fetch, click and type through persistent sessions over MCP.
Web research for agents: quality-scored Google search, webpage extraction, and deep research.
Multi-engine search for AI agents. Trust scoring, local corpus, MCP-native. Self-hostable, BYOK.
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/zhulingyu666/ai-search-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server