Wuxing Search MCP
Что такое Wuxing Search MCP?
Wuxing Search MCP — это мощный сервер для неограниченного поиска, построенный на базе SearXNG. Он легко интегрируется с Claude Code через протокол Model Context Protocol (MCP), предоставляя бесплатные и неограниченные возможности поиска за счет агрегации результатов более чем 100 поисковых систем.
Почему стоит выбрать Wuxing Search?
Традиционные API для поиска имеют ограничения:
❌ Ограничения по частоте запросов и квоты
❌ Высокая стоимость API
❌ Результаты из одного источника
Wuxing Search решает все эти проблемы:
✅ Полностью бесплатно — собственный экземпляр SearXNG, никаких затрат на API
✅ Неограниченный поиск — отключены лимиты по частоте запросов, поддержка высокочастотного поиска
✅ Агрегация множества источников — Google, Bing, DuckDuckGo, Brave и более 100 других движков
✅ Конфиденциальность — без отслеживания и логирования
✅ Интеграция с MCP — идеальная совместимость с рабочим процессом Claude Code
Related MCP server: SearXNG MCP Server
Описание архитектуры
┌─────────────┐ ┌──────────────┐ ┌─────────────┐ ┌─────────────┐
│ 你 │ ───▶ │ Claude Code │ ───▶ │ Wuxing │ ───▶ │ SearXNG │
│ (用户) │ │ (MCP 客户端) │ │ Search MCP │ │ (Docker) │
└─────────────┘ └──────────────┘ │ (Node.js) │ │ (Python) │
└──────────────┘ └─────────────┘
│
▼
┌───────────────────────────┐
│ 搜索引擎聚合 (13+) │
│ 通用: Google, Bing... │
│ 代码: GitHub, HuggingFace│
│ 问答: StackOverflow │
│ 包: npm, PyPI │
│ 学术: arXiv │
│ 社区: HN, Reddit │
│ 以及 100+ 更多... │
└───────────────────────────┘Функциональные особенности
✨ Текущие возможности
🔍 Неограниченный веб-поиск
Отсутствие лимитов API и квот
Поддержка высокочастотного поиска
Настраиваемое количество результатов (1-100)
🌐 Агрегация множества источников
Общие: Google, Bing, DuckDuckGo, Baidu
Код: GitHub, Hugging Face, GitLab
Вопросы и ответы: Stack Overflow
Пакеты: npm, PyPI, crates.io, Docker Hub
Академические: arXiv, Google Scholar, Semantic Scholar, PubMed
Сообщества: HackerNews, Reddit, Mastodon
Документация: MDN
Новости: Google News
Поддержка более 100 поисковых систем
📊 Расширенные параметры поиска
Фильтрация по времени (день, неделя, месяц, год)
Фильтрация по категориям (общие, изображения, видео, новости, IT, наука, файлы, социальные сети)
Фильтрация по языку
Уровни безопасного поиска
🔌 Интеграция с MCP
Бесшовная интеграция с Claude Code
Связь через stdio (MCP не требует сетевых портов)
Протокол JSON-RPC 2.0
🐳 Простая установка
Развертывание SearXNG на базе Docker
Установка в один клик
Кроссплатформенная поддержка (Windows, macOS, Linux)
🔒 Приоритет конфиденциальности
Без отслеживания и логирования
Самостоятельный хостинг, данные не покидают ваш компьютер
Анонимный поиск через SearXNG
Быстрый старт
4 простых шага для начала работы:
Предварительные требования
1. Клонирование проекта
git clone https://github.com/MaesHughes/wuxing-search-mcp.git
cd wuxing-search-mcp2. Установка зависимостей
npm install3. Запуск SearXNG
Вариант А: Использование команды Docker (рекомендуется)
docker run -d \
--name wuxing-searxng \
--restart unless-stopped \
-p 18080:8080 \
-v "$(pwd)/searxng/config:/etc/searxng/" \
-v "$(pwd)/searxng/data:/var/cache/searxng/" \
searxng/searxng:latestВариант Б: Использование Docker Compose
docker-compose up -d4. Настройка Claude Code
Найдите файл конфигурации Claude Code:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS / Linux:
~/.config/Claude/claude_desktop_config.jsonШаг 1: Получение пути к проекту
Выполните следующую команду в директории проекта, чтобы получить абсолютный путь:
Windows (PowerShell):
Resolve-Path src\index.jsWindows (Git Bash / Bash):
pwd -W && echo "/src/index.js"
# 或手动拼接:$(pwd -W)/src/index.jsmacOS / Linux:
pwd && echo "/src/index.js"
# 或手动拼接:$(pwd)/src/index.jsШаг 2: Добавление конфигурации
Добавьте следующую конфигурацию в файл, ⚠️ обязательно заменив YOUR_FULL_PATH_HERE на фактический путь, полученный на предыдущем шаге:
Пример конфигурации для Windows
{
"mcpServers": {
"wuxing-search": {
"type": "stdio",
"command": "cmd",
"args": [
"/c",
"node",
"D:\\\\path\\\\to\\\\wuxing-search-mcp\\\\src\\\\index.js"
],
"env": {
"SEARXNG_URL": "http://localhost:18080",
"MAX_RESULTS": "20",
"TIMEOUT": "30000"
}
}
}
}Пример конфигурации для macOS / Linux
{
"mcpServers": {
"wuxing-search": {
"type": "stdio",
"command": "node",
"args": [
"/home/username/wuxing-search-mcp/src/index.js"
],
"env": {
"SEARXNG_URL": "http://localhost:18080",
"MAX_RESULTS": "20",
"TIMEOUT": "30000"
}
}
}
}Примечания по конфигурации:
Параметр | Windows | macOS/Linux | Описание |
|
|
| Тип протокола связи |
|
|
| Windows использует обертку cmd |
|
|
| Путь должен быть абсолютным |
| Адрес сервиса SearXNG | - | По умолчанию |
| Кол-во результатов | - | По умолчанию 20, диапазон 1-100 |
| Тайм-аут запроса (мс) | - | По умолчанию 30000 |
⚠️ Важное примечание:
Обратные косые черты в путях Windows должны быть экранированы двойными
\\(требование формата JSON)Либо используйте прямые косые черты
/(Windows также их поддерживает)Путь должен быть абсолютным, относительные пути не работают
После изменения конфигурации необходимо полностью перезапустить Claude Code
5. Перезапуск Claude Code
Полностью закройте и снова откройте Claude Code.
Использование
Базовый поиск
Введите прямо в Claude Code:
请搜索最新的 AI 编程工具Параметры расширенного поиска
Вы также можете указать параметры:
请搜索最近一周的 React 教程,返回 10 条结果Доступные инструменты
1. web_search
Выполняет веб-поиск и возвращает результаты.
Параметр | Описание | Обязательно | По умолчанию |
| Поисковый запрос | Да | - |
| Кол-во результатов (1-100) | Нет | 20 |
| Категория поиска | Нет | general |
| Код языка | Нет | all |
| Фильтр по времени | Нет | none |
| Уровень безопасного поиска (0-2) | Нет | 1 |
Опции категорий:
general- общий поискimages- поиск изображенийvideos- поиск видеоnews- поиск новостейit- IT-технологииscience- наукаfiles- файлыsocial- социальные сети
Опции временного диапазона:
day- последние 24 часаweek- последняя неделяmonth- последний месяцyear- последний годnone- без фильтрации по времени
2. get_server_info
Получение информации о состоянии поискового сервера. Без параметров.
Примеры использования
Пример 1: Поиск проектов с открытым исходным кодом
请搜索 GitHub 上热门的 AI agent 项目Пример 2: Поиск технических вопросов
在 Stack Overflow 上搜索 MCP 连接错误的解决方案Пример 3: Поиск научных статей
请搜索 arXiv 上关于多智能体协作的最新论文Пример 4: Поиск библиотек Python
在 PyPI 上搜索 LangChain agents 相关的包Пример 5: Поиск обсуждений разработчиков
请搜索 HackerNews 上关于 AI 编程的讨论Пример 6: Проверка состояния сервера
查询搜索服务器状态Команды управления
Команды NPM
# 查看 SearXNG 状态
npm run status:searxng
# 查看 SearXNG 日志
npm run logs:searxng
# 重启 SearXNG
npm run restart:searxng
# 停止 SearXNG
npm run stop:searxng
# 启动 SearXNG
npm run start:searxng
# 测试搜索服务
npm run test:searxngКоманды Docker
# 查看容器状态
docker ps | grep wuxing-searxng
# 查看实时日志
docker logs -f wuxing-searxng
# 重启服务
docker restart wuxing-searxng
# 停止服务
docker stop wuxing-searxng
# 启动服务
docker start wuxing-searxng
# 删除并重建
docker stop wuxing-searxng && docker rm wuxing-searxng
# 然后重新运行启动命令Параметры конфигурации
Настройка MCP-сервера через переменные окружения:
Переменная | Описание | По умолчанию |
| Адрес сервиса SearXNG | |
| Кол-во результатов по умолчанию | 20 |
| Тайм-аут запроса (мс) | 30000 |
Добавьте эти переменные в поле env конфигурации Claude Code для настройки поведения.
Устранение неполадок
Проблема 1: Инструменты поиска не отображаются или выдают ошибку
Чек-лист:
✅ Запущен ли контейнер SearXNG?
docker ps | grep wuxing-searxng✅ Работает ли сервис SearXNG нормально?
curl http://localhost:18080✅ Правильно ли указан путь к файлу конфигурации (используется ли абсолютный путь)?
✅ Версия Node.js >= 18?
node --version✅ Был ли перезапущен Claude Code?
Проблема 2: Контейнер SearXNG не запускается
Проверка:
Занят ли порт 18080?
# Windows netstat -ano | findstr :18080 # Linux/Mac lsof -ti:18080Запущен ли сервис Docker?
Проверьте логи контейнера:
docker logs wuxing-searxng
Решение:
# 删除旧容器并重新创建
docker stop wuxing-searxng && docker rm wuxing-searxng
# 然后重新运行启动命令Проблема 3: Поиск возвращает ошибку соединения
Возможная причина: Сервис SearXNG еще не полностью запущен
Решение:
# 等待 5-10 秒后重试
# 或重启 SearXNG
docker restart wuxing-searxngПроблема 4: Результаты содержат устаревший контент
Причина: Фильтрация по времени зависит от поддержки поисковой системы
Решение:
Используйте более короткий временной диапазон (
dayвместоweek)Добавьте явные временные ключевые слова в запрос (например,
январь 2025)Используйте комбинацию:
请搜索 2025年1月的 React 新特性
Техническая архитектура
MCP Server (Node.js)
Файл:
src/index.jsЗависимости: @modelcontextprotocol/sdk, axios
Связь: stdio (стандартный ввод/вывод)
Роль: реализация протокола MCP, пересылка запросов в SearXNG
SearXNG (Python/Docker)
Образ: searxng/searxng:latest
Порт: 18080 (хост) → 8080 (контейнер)
Конфигурация: searxng/config/settings.yml
Данные: searxng/data/ (кэш)
Роль: агрегация 100+ поисковых систем
Поток данных
用户输入
→ Claude Code
→ MCP Server (stdio)
→ HTTP 请求到 SearXNG
→ 并发请求到各搜索引擎
→ 聚合结果
→ 返回给用户Структура проекта
wuxing-search-mcp/
├── src/ # MCP Server 源码
│ └── index.js # MCP Server 主实现
├── searxng/ # SearXNG 配置
│ ├── config/ # SearXNG settings.yml
│ └── data/ # SearXNG 缓存(自动创建)
├── assets/ # 文档图片
│ └── banner.png # 项目横幅
├── package.json # NPM 包配置
├── docker-compose.yml # Docker Compose 配置
├── install.sh # Linux/Mac 安装脚本
├── install.ps1 # Windows 安装脚本
├── README.md # 英文版
├── README.zh-CN.md # 中文版(本文件)
└── INSTALL.md # 详细安装指南Часто задаваемые вопросы
В: Зачем нужен Docker?
О: SearXNG — это проект на Python, зависящий от 50+ пакетов Python. Docker обеспечивает:
Избежание сложной ручной установки зависимостей
Изоляцию среды
Упрощение развертывания и обновлений
В: Можно ли обойтись без Docker?
О: Теоретически можно, но не рекомендуется. Вам потребуется:
Установить Python 3.14
Вручную установить 50+ зависимостей Python
Настроить среду Python
Вариант с Docker проще и надежнее.
В: Есть ли лимиты на поиск?
О: Нет! Это главное преимущество проекта:
Полностью самостоятельный хостинг
Нет ограничений на вызовы API
Нет ограничений по частоте запросов
В: Какие поисковые системы поддерживаются?
О: SearXNG поддерживает 245 поисковых систем, 89 включены по умолчанию.
Текущие 21 включенный движок:
Категория | Поисковая система |
Общий поиск | Google, Bing, DuckDuckGo, Baidu |
Репозитории кода | GitHub, Hugging Face, GitLab |
Технические вопросы | Stack Overflow |
Менеджеры пакетов | npm, PyPI, crates.io, Docker Hub |
Научные статьи | arXiv, Google Scholar, Semantic Scholar, PubMed |
Сообщества разработчиков | HackerNews, Reddit, Mastodon |
Документация | MDN Web Docs |
Источники новостей | Google News |
Другие доступные движки (можно включить в конфигурации):
Код: Bitbucket, Codeberg, Gitea, SourceHut
Пакеты: RubyGems, Go, Hex, Packagist
Социальные сети: Lemmy
Видео: YouTube, Vimeo, Bilibili
И другие...
В: Каково качество поиска?
О: Зависит от включенных поисковых систем. Конфигурация по умолчанию уже включает основные поисковые системы, качество хорошее. Если требуется настройка, можно отредактировать searxng/config/settings.yml.
Вклад в проект
Приветствуется вклад сообщества! Вы можете помочь нам так:
Fork этого репозитория
Создайте ветку функций (
git checkout -b feature/amazing-feature)Зафиксируйте изменения (
git commit -m 'Add amazing feature')Отправьте в ветку (
git push origin feature/amazing-feature)Откройте Pull Request
Способы участия
Улучшение конфигурации поисковых систем
Добавление новых функций в MCP-сервер
Сообщение об ошибках и проблемах
Предложение новых функций
Улучшение документации
Обмен вашими отзывами
Ресурсы
📚 Документация
Руководство по установке - подробные инструкции
Документация SearXNG - официальная документация
Спецификация MCP - протокол контекста модели
🌐 Официальный сайт
Блог Wuxing Codes - последние обновления и руководства
💬 Сообщество
GitHub Issues - сообщение о проблемах
GitHub Discussions - вопросы
Лицензия
MIT License - подробнее см. файл LICENSE.
Благодарности
Построено на базе проекта с открытым исходным кодом SearXNG
Создано для сообщества Claude Code
Является частью экосистемы Wuxing Codes
Сделано с ❤️ командой Wuxing
⭐ Поставьте нам звезду на GitHub — это очень помогает!
Available Tools
2 toolsget_server_infoB
获取搜索服务器信息,包括服务状态、版本等。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves information (implying read-only behavior) and lists examples of what information is included (service status, version). However, it doesn't disclose important behavioral traits like whether this requires authentication, has rate limits, returns structured or unstructured data, or has any side effects. For a tool with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the purpose and provides examples of what information is included. There's no wasted language or unnecessary elaboration. While it could be slightly more structured by separating purpose from examples, it's appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema, no annotations), the description provides adequate coverage of what the tool does. It explains the purpose and gives examples of returned information. However, without annotations or output schema, it should ideally provide more behavioral context (like authentication requirements or response format) to be fully complete. The description is minimally viable but has clear gaps in behavioral transparency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema description coverage is 100% (empty schema is fully documented). With no parameters to explain, the description appropriately doesn't discuss parameters. It focuses on what information is retrieved rather than how to call the tool, which is correct for a parameterless tool. The baseline for zero parameters with high schema coverage is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as '获取搜索服务器信息,包括服务状态、版本等' (Get search server information, including service status, version, etc.), which specifies the verb ('获取' - get) and resource ('搜索服务器信息' - search server information). It distinguishes from the sibling tool 'web_search' by focusing on server metadata rather than performing searches. However, it doesn't explicitly differentiate from potential other server-related tools beyond the single sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention the sibling tool 'web_search' or explain that this is for server diagnostics while 'web_search' is for content retrieval. There's no context about prerequisites, timing, or use cases beyond the basic purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_searchA
执行网页搜索,返回搜索结果列表。
用途:
搜索技术文档、教程、博客等内容
用于课程开发时收集参考资料
支持任意关键词搜索
参数说明:
query: 搜索关键词(必需)
max_results: 返回结果数量,默认 20,最大 100
category: 搜索类别,可选值:general, images, videos, files, it, map, music, science, social, news
language: 搜索语言,默认 zh-CN
time_range: 时间范围,可选值:day, week, month, year, none(默认)
safesearch: 安全搜索级别,可选值:0, 1, 2(默认 1)
返回格式:
title: 结果标题
url: 结果链接
content: 结果摘要
engine: 搜索引擎来源
score: 相关性评分
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | 搜索关键词 | |
| max_results | No | 返回结果数量(1-100) | |
| category | No | 搜索类别 | general |
| language | No | 搜索语言代码(如:zh、en、all) | all |
| time_range | No | 时间范围 | none |
| safesearch | No | 安全搜索级别(0=关闭, 1=中等, 2=严格) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes the return format (title, url, content, engine, score) which is valuable, but doesn't mention important behavioral aspects like rate limits, authentication requirements, pagination behavior, or whether this is a read-only operation. The description adequately covers what the tool does but lacks operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (用途, 参数说明, 返回格式) and every sentence earns its place. It's appropriately sized for a 6-parameter tool with no annotations, providing necessary information without redundancy. The information is front-loaded with the core purpose stated first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 6 parameters, no annotations, and no output schema, the description does a good job covering the essentials. It explains the tool's purpose, provides usage examples, documents all parameters with their semantics, and describes the return format. The main gap is the lack of behavioral constraints (rate limits, authentication, etc.) that would be important for production use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds meaningful context by explaining the purpose of each parameter beyond what's in the schema (e.g., '用于课程开发时收集参考资料' provides context for the query parameter, and the category parameter explanation gives practical use cases). However, it doesn't provide examples or edge case guidance that would elevate it to a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('执行网页搜索' - perform web search) and resource ('搜索结果列表' - search results list). It distinguishes this general web search tool from the only sibling tool (get_server_info) by focusing on external content discovery rather than server information retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage contexts with three specific examples (searching technical documentation/tutorials/blogs, collecting reference materials for course development, and supporting arbitrary keyword searches). However, it doesn't explicitly state when NOT to use this tool or mention alternatives for different types of searches beyond the category parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v1.0.0- First observed
get_server_info - First observed
web_search
TDQS
Scored across 2 tools
The two tools have completely distinct purposes: get_server_info retrieves server metadata, while web_search performs actual web searches. There is no overlap or ambiguity between them, making it easy for an agent to select the correct tool based on the task.
Both tools follow a consistent verb_noun naming pattern (get_server_info and web_search). The naming is clear, predictable, and adheres to the same convention throughout, with no mixing of styles or deviations.
With only 2 tools, the server feels under-scoped for its stated purpose of supporting web search for tasks like collecting references for course development. While the tools are functional, the count is too low to provide comprehensive coverage, lacking operations like advanced search filtering or result management.
The server covers basic search functionality with web_search and server status with get_server_info, but there are notable gaps. For example, it lacks tools for saving, organizing, or analyzing search results, which would be useful for the described use cases like course development. The surface is functional but incomplete for sustained workflows.
Maintenance
Related MCP Connectors
Web search for AI agents — one tool across 6 engines, routed to the cheapest + cached.
The best web search for your AI Agent
Agent-native search engine with live web research optimized for AI agents.
Google, Bing, DuckDuckGo and Google Maps search results, free without an API key.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides privacy-focused web search capabilities through SearXNG metasearch engine, enabling web, image, video, and news searches without tracking. Includes comprehensive research tools that aggregate and analyze results from multiple search engines.34MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to perform privacy-respecting web searches through SearXNG, with support for multiple search engines, categories, and advanced filtering options.153 npm27MIT
- AlicenseNot gradedqualityDmaintenanceA free and unlimited web search server that enables AI models to search, crawl, and research web content using DuckDuckGo without requiring API keys. It features parallel crawling and a smart ranking system to prioritize the most relevant information for complex queries.185 npm4MIT
- FlicenseNot gradedqualityDmaintenanceProvides free web search, content fetching, image search, and deep research via SearXNG, no API keys required.-