Wuxing Search MCP
¿Qué es Wuxing Search MCP?
Wuxing Search MCP es un potente servidor de búsqueda ilimitada construido sobre SearXNG. Se integra perfectamente con Claude Code a través del Protocolo de Contexto de Modelo (MCP), proporcionando capacidades de búsqueda gratuitas e ilimitadas al agregar resultados de más de 100 motores de búsqueda.
¿Por qué elegir Wuxing Search?
Las APIs de búsqueda tradicionales tienen limitaciones:
❌ Límites de tasa y cuotas
❌ Costes de API elevados
❌ Resultados de una sola fuente
Wuxing Search resuelve todos estos problemas:
✅ Totalmente gratuito - SearXNG autohospedado, sin costes de API
✅ Búsqueda ilimitada - Limitadores de tasa desactivados, admite búsquedas de alta frecuencia
✅ Agregación multifuente - Más de 100 motores como Google, Bing, DuckDuckGo, Brave, etc.
✅ Respetuoso con la privacidad - Sin rastreo, sin registros
✅ Integración MCP - Adaptación perfecta al flujo de trabajo de Claude Code
Related MCP server: SearXNG MCP Server
Descripción de la arquitectura
┌─────────────┐ ┌──────────────┐ ┌─────────────┐ ┌─────────────┐
│ 你 │ ───▶ │ Claude Code │ ───▶ │ Wuxing │ ───▶ │ SearXNG │
│ (用户) │ │ (MCP 客户端) │ │ Search MCP │ │ (Docker) │
└─────────────┘ └──────────────┘ │ (Node.js) │ │ (Python) │
└──────────────┘ └─────────────┘
│
▼
┌───────────────────────────┐
│ 搜索引擎聚合 (13+) │
│ 通用: Google, Bing... │
│ 代码: GitHub, HuggingFace│
│ 问答: StackOverflow │
│ 包: npm, PyPI │
│ 学术: arXiv │
│ 社区: HN, Reddit │
│ 以及 100+ 更多... │
└───────────────────────────┘Características
✨ Funcionalidades actuales
🔍 Búsqueda web ilimitada
Sin límites de tasa de API ni cuotas
Admite búsquedas de alta frecuencia
Cantidad de resultados configurable (1-100)
🌐 Agregación multifuente
General: Google, Bing, DuckDuckGo, Baidu
Código: GitHub, Hugging Face, GitLab
Preguntas y respuestas: Stack Overflow
Paquetes: npm, PyPI, crates.io, Docker Hub
Académico: arXiv, Google Scholar, Semantic Scholar, PubMed
Comunidad: HackerNews, Reddit, Mastodon
Documentación: MDN
Noticias: Google News
Admite más de 100 motores de búsqueda
📊 Opciones de búsqueda avanzada
Filtro de rango de tiempo (día, semana, mes, año)
Filtro de categoría (general, imágenes, vídeos, noticias, IT, ciencia, archivos, social)
Filtro de idioma
Nivel de búsqueda segura
🔌 Integración MCP
Integración perfecta con Claude Code
Comunicación stdio (MCP no requiere puertos de red)
Protocolo JSON-RPC 2.0
🐳 Despliegue sencillo
Despliegue de SearXNG basado en Docker
Instalación con un solo clic
Soporte multiplataforma (Windows, macOS, Linux)
🔒 Privacidad primero
Sin rastreo, sin registros
Autohospedado, los datos no salen de tu máquina
Búsqueda anónima a través de SearXNG
Inicio rápido
Comienza en 4 sencillos pasos:
Requisitos previos
1. Clonar el proyecto
git clone https://github.com/MaesHughes/wuxing-search-mcp.git
cd wuxing-search-mcp2. Instalar dependencias
npm install3. Iniciar SearXNG
Opción A: Usar comandos de Docker (recomendado)
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:latestOpción B: Usar Docker Compose
docker-compose up -d4. Configurar Claude Code
Busca tu archivo de configuración de Claude Code:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS / Linux:
~/.config/Claude/claude_desktop_config.jsonPaso 1: Obtener la ruta de tu proyecto
Ejecuta el siguiente comando en el directorio del proyecto para obtener la ruta absoluta:
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.jsPaso 2: Añadir configuración
Añade la siguiente configuración al archivo de configuración, ⚠️ Asegúrate de reemplazar YOUR_FULL_PATH_HERE con la ruta real obtenida en el paso anterior:
Ejemplo de configuración en 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"
}
}
}
}Ejemplo de configuración en 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"
}
}
}
}Notas de configuración:
Elemento | Windows | macOS/Linux | Descripción |
|
|
| Tipo de protocolo de comunicación |
|
|
| Windows usa el envoltorio cmd |
|
|
| La ruta debe ser absoluta |
| Dirección del servicio SearXNG | - | Por defecto |
| Número de resultados devueltos | - | Por defecto 20, rango 1-100 |
| Tiempo de espera de solicitud (ms) | - | Por defecto 30000 |
⚠️ Nota importante:
Las barras invertidas en las rutas de Windows deben escaparse como barras dobles
\\(requisito de formato JSON)O usa barras normales
/(Windows también las admite)La ruta debe ser absoluta, las rutas relativas no funcionan
Debes reiniciar completamente Claude Code para que los cambios de configuración surtan efecto
5. Reiniciar Claude Code
Cierra y vuelve a abrir Claude Code completamente.
Modo de uso
Búsqueda básica
Escribe directamente en Claude Code:
请搜索最新的 AI 编程工具Parámetros de búsqueda avanzada
También puedes especificar parámetros:
请搜索最近一周的 React 教程,返回 10 条结果Herramientas disponibles
1. web_search
Realiza una búsqueda web y devuelve los resultados.
Parámetro | Descripción | Obligatorio | Valor por defecto |
| Palabras clave de búsqueda | Sí | - |
| Cantidad de resultados (1-100) | No | 20 |
| Categoría de búsqueda | No | general |
| Código de idioma | No | all |
| Filtro de rango de tiempo | No | none |
| Nivel de búsqueda segura (0-2) | No | 1 |
Opciones de categoría:
general- Búsqueda generalimages- Búsqueda de imágenesvideos- Búsqueda de vídeosnews- Búsqueda de noticiasit- Tecnología ITscience- Cienciafiles- Archivossocial- Redes sociales
Opciones de rango de tiempo:
day- Últimas 24 horasweek- Última semanamonth- Último mesyear- Último añonone- Sin filtro de tiempo
2. get_server_info
Obtiene información sobre el estado del servidor de búsqueda. Sin parámetros.
Ejemplos de uso
Ejemplo 1: Buscar proyectos de código abierto
请搜索 GitHub 上热门的 AI agent 项目Ejemplo 2: Buscar problemas técnicos
在 Stack Overflow 上搜索 MCP 连接错误的解决方案Ejemplo 3: Buscar artículos académicos
请搜索 arXiv 上关于多智能体协作的最新论文Ejemplo 4: Buscar librerías de Python
在 PyPI 上搜索 LangChain agents 相关的包Ejemplo 5: Buscar discusiones de desarrolladores
请搜索 HackerNews 上关于 AI 编程的讨论Ejemplo 6: Consultar estado del servidor
查询搜索服务器状态Comandos de gestión
Comandos 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:searxngComandos 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
# 然后重新运行启动命令Opciones de configuración
Configura el servidor MCP a través de variables de entorno:
Variable | Descripción | Valor por defecto |
| Dirección del servicio SearXNG | |
| Número de resultados devueltos | 20 |
| Tiempo de espera de solicitud (ms) | 30000 |
Añade estas variables en el campo env de la configuración de Claude Code para personalizar el comportamiento.
Solución de problemas
Problema 1: La herramienta de búsqueda no aparece o da error
Lista de verificación:
✅ ¿Está ejecutándose el contenedor SearXNG?
docker ps | grep wuxing-searxng✅ ¿Funciona correctamente el servicio SearXNG?
curl http://localhost:18080✅ ¿Es correcta la ruta del archivo de configuración (usando ruta absoluta)?
✅ ¿Es la versión de Node.js >= 18?
node --version✅ ¿Se ha reiniciado Claude Code?
Problema 2: El contenedor SearXNG no arranca
Comprobar:
¿Está ocupado el puerto 18080?
# Windows netstat -ano | findstr :18080 # Linux/Mac lsof -ti:18080¿Está ejecutándose el servicio Docker?
Ver los registros del contenedor:
docker logs wuxing-searxng
Solución:
# 删除旧容器并重新创建
docker stop wuxing-searxng && docker rm wuxing-searxng
# 然后重新运行启动命令Problema 3: La búsqueda devuelve error de conexión
Causa posible: El servicio SearXNG aún no se ha iniciado completamente
Solución:
# 等待 5-10 秒后重试
# 或重启 SearXNG
docker restart wuxing-searxngProblema 4: Los resultados contienen contenido antiguo
Causa: El filtrado de tiempo depende del soporte del motor de búsqueda
Solución:
Usa un rango de tiempo más corto (
dayen lugar deweek)Añade palabras clave de tiempo explícitas en la consulta (ej.
enero 2025)Uso combinado:
请搜索 2025年1月的 React 新特性
Arquitectura técnica
Servidor MCP (Node.js)
Archivo:
src/index.jsDependencias: @modelcontextprotocol/sdk, axios
Comunicación: stdio (entrada/salida estándar)
Función: Implementar el protocolo MCP, reenviar solicitudes a SearXNG
SearXNG (Python/Docker)
Imagen: searxng/searxng:latest
Puerto: 18080 (host) → 8080 (contenedor)
Configuración: searxng/config/settings.yml
Datos: searxng/data/ (caché)
Función: Agregar más de 100 motores de búsqueda
Flujo de datos
用户输入
→ Claude Code
→ MCP Server (stdio)
→ HTTP 请求到 SearXNG
→ 并发请求到各搜索引擎
→ 聚合结果
→ 返回给用户Estructura del proyecto
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 # 详细安装指南Preguntas frecuentes
P: ¿Por qué necesito Docker?
R: SearXNG es un proyecto de Python que depende de más de 50 paquetes de Python. Docker proporciona:
Evitar la compleja instalación manual de dependencias
Aislamiento del entorno
Simplificación del despliegue y actualizaciones
P: ¿Puedo prescindir de Docker?
R: Teóricamente sí, pero no se recomienda. Necesitarías:
Instalar Python 3.14
Instalar manualmente más de 50 dependencias de Python
Configurar el entorno de Python
La solución Docker es más sencilla y fiable.
P: ¿Tiene límites la búsqueda?
R: ¡No! Esta es la ventaja principal del proyecto:
Totalmente autohospedado
Sin límites de llamadas a la API
Sin límites de tasa de solicitudes
P: ¿Qué motores de búsqueda admite?
R: SearXNG admite 245 motores de búsqueda, con 89 habilitados por defecto.
Los 21 motores habilitados actualmente:
Categoría | Motor de búsqueda |
Búsqueda general | Google, Bing, DuckDuckGo, Baidu |
Repositorios de código | GitHub, Hugging Face, GitLab |
Preguntas técnicas | Stack Overflow |
Gestores de paquetes | npm, PyPI, crates.io, Docker Hub |
Artículos académicos | arXiv, Google Scholar, Semantic Scholar, PubMed |
Comunidades de desarrolladores | HackerNews, Reddit, Mastodon |
Documentación de desarrollo | MDN Web Docs |
Fuentes de noticias | Google News |
Otros motores disponibles (se pueden habilitar en la configuración):
Código: Bitbucket, Codeberg, Gitea, SourceHut
Gestión de paquetes: RubyGems, Go, Hex, Packagist
Social: Lemmy
Vídeo: YouTube, Vimeo, Bilibili
Y más...
P: ¿Cómo es la calidad de la búsqueda?
R: Depende de los motores de búsqueda habilitados. La configuración por defecto ya incluye los principales motores, por lo que la calidad es buena. Si necesitas ajustes, puedes editar searxng/config/settings.yml.
Contribución
¡Las contribuciones de la comunidad son bienvenidas! Puedes ayudarnos de la siguiente manera:
Haz un Fork de este repositorio
Crea una rama de funciones (
git checkout -b feature/amazing-feature)Envía tus cambios (
git commit -m 'Add amazing feature')Empuja a la rama (
git push origin feature/amazing-feature)Abre un Pull Request
Formas de contribuir
Mejorar la configuración de los motores de búsqueda
Añadir nuevas funciones al servidor MCP
Informar de errores y problemas
Sugerir nuevas funciones
Mejorar la documentación
Compartir tus comentarios
Recursos
📚 Documentación
Guía de instalación - Instrucciones detalladas de instalación
Documentación de SearXNG - Documentación oficial de SearXNG
Especificación MCP - Protocolo de Contexto de Modelo
🌐 Sitio web oficial
Blog de Wuxing Codes - Últimas actualizaciones y tutoriales
💬 Comunidad
GitHub Issues - Informar de problemas
GitHub Discussions - Hacer preguntas
Licencia
Licencia MIT - Ver el archivo LICENSE para más detalles.
Agradecimientos
Construido sobre el proyecto de código abierto SearXNG
Creado para la comunidad de Claude Code
Parte del ecosistema de Wuxing Codes
Hecho con ❤️ por el equipo de Wuxing
⭐ Danos una estrella en GitHub — ¡nos ayuda mucho!
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.-