io.github.MRNAQA/sourceweave-web-search
SourceWeave Web Search
Servidor MCP y CLI centrados en la búsqueda para investigación web.
[!NOTE]
sourceweave-search-mcpes el punto de entrada local predeterminado. Cuando no hay variables de endpointSOURCEWEAVE_SEARCH_*explícitas, descubre o inicia automáticamente la stack local respaldada por Docker. Si ya ejecutas los servicios tú mismo, define endpoints explícitos y los utilizará en su lugar.
Descripción general • Primeros pasos • Entorno de ejecución local gestionado • Configuración del cliente MCP • CLI • Despliegues en contenedores • OpenWebUI • Configuración del entorno de ejecución • Desarrollo
Descripción general
SourceWeave Web Search ofrece a los clientes MCP un contrato compacto de tres herramientas para la investigación web:
search_web(query, domains?, urls?, effort?)descubre fuentes y devuelve resultados compactos con identificadores establespage_id.read_pages(page_ids, focus?)lee las páginas almacenadas porpage_id.read_urls(urls, focus?)lee URLs directas sin buscar primero.
Combina:
Componente | Función |
SearXNG | Descubrimiento de búsquedas |
Crawl4AI | Extracción de HTML limpio |
Redis o Valkey | Caché de páginas persistida y almacén de |
MarkItDown | Conversión de documentos para PDF y otros archivos compatibles |
Related MCP server: Net-Syphon
Primeros pasos
Requisitos
Python
3.12+Docker compatible con Compose para el entorno de ejecución local gestionado predeterminado
Endpoints
SOURCEWEAVE_SEARCH_*explícitos únicamente si quieres servicios alojados o autogestionados
Entorno de ejecución local gestionado
Ejecuta el servidor desde el paquete publicado:
uvx --from sourceweave-web-search sourceweave-search-mcpO inicia el servidor MCP mediante HTTP:
uvx --from sourceweave-web-search sourceweave-search-mcp \
--transport streamable-http \
--host 127.0.0.1 \
--port 8000Cuando no hay variables de entorno de endpoint definidas, sourceweave-search-mcp:
Modo | Qué ocurre |
Stack gestionada encontrada | Únirse a la stack existente gestionada por SourceWeave en el directorio de estado actual del entorno de ejecución |
Stack externa en buen estado encontrada | Reutiliza los puertos locales canónicos |
Sin stack reutilizable | Inicia y supervisa una stack respaldada por Docker en puertos locales canónicos o libres |
El estado gestionado se encuentra en ~/.sourceweave-local/managed-runtime. Varios procesos MCP en la misma máquina comparten una única stack gestionada por directorio de estado.
[!IMPORTANTE] El entorno de ejecución gestionado elimina los contenedores solo cuando finaliza el último proceso activo gestionado por SourceWeave. Los volúmenes con nombre se conservan, por lo que los datos de caché sobreviven a los reinicios. Si falla el proceso propietario original, un proceso posterior puede recuperar la misma stack a partir de la identidad del proyecto Docker y del estado de ejecución persistido.
Modo de endpoint explícito
Si ya ejecutas SearXNG, Crawl4AI y Redis o Valkey, o quieres apuntar a servicios alojados, define endpoints explícitos y el punto de entrada MCP omitirá el inicio de Docker gestionado:
SOURCEWEAVE_SEARCH_SEARXNG_BASE_URL="http://127.0.0.1:19080/search?format=json&q=<query>" \
SOURCEWEAVE_SEARCH_CRAWL4AI_BASE_URL="http://127.0.0.1:19235" \
SOURCEWEAVE_SEARCH_CACHE_REDIS_URL="redis://127.0.0.1:16379/2" \
uvx --from sourceweave-web-search sourceweave-search-mcpCLI directa
sourceweave-search ejecuta la herramienta directamente. Úsalo cuando los servicios de soporte ya estén disponibles o cuando proporciones endpoints explícitos. No inicia Docker.
sourceweave-search --query "python programming" --read-first-pages 2
sourceweave-search --read-url "https://packaging.python.org/en/latest/"[!TIP] La CLI directa también acepta las anulaciones
--searxng-base-url,--crawl4ai-base-urly--cache-redis-url.
Configuración del cliente MCP
OpenCode
Ejemplo de opencode.json / opencode.jsonc / ~/.config/opencode/opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sourceweave": {
"type": "local",
"command": [
"uvx",
"--from",
"sourceweave-web-search",
"sourceweave-search-mcp"
],
"enabled": true,
"timeout": 300000
}
}
}Para un endpoint HTTP compartido local en su lugar:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sourceweave": {
"type": "remote",
"url": "http://127.0.0.1:18000/mcp",
"enabled": true,
"timeout": 300000
}
}
}VS Code Copilot
Ejemplo de .vscode/mcp.json:
{
"servers": {
"sourceweave": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"sourceweave-web-search",
"sourceweave-search-mcp"
]
}
}
}Para un endpoint HTTP compartido en su lugar:
{
"servers": {
"sourceweave": {
"type": "http",
"url": "http://127.0.0.1:18000/mcp"
}
}
}Claude Code
Ejemplo de .mcp.json:
{
"mcpServers": {
"sourceweave": {
"type": "stdio",
"command": "uvx",
"args": [
"--from",
"sourceweave-web-search",
"sourceweave-search-mcp"
]
}
}
}Para una configuración compartida de ámbito de proyecto, coloca el mismo bloque en .mcp.json en la raíz del repositorio.
CLI
La CLI directa es útil una vez que los servicios de soporte ya son accesibles. Ofrece el mismo flujo de trabajo de búsqueda en primer lugar sin envoltorio MCP.
sourceweave-search --query "react useEffect cleanup example" --read-first-page
sourceweave-search --query "HTTP overview" --domain developer.mozilla.org --read-first-page
sourceweave-search --read-url "https://packaging.python.org/en/latest/"Despliegues en contenedores
El entorno de ejecución local gestionado está pensado para los lanzamientos uvx o uv run en el host. Los despliegues en contenedores siguen usando conexión configurada de endpoints.
Imagen:
ghcr.io/mrnaqa/sourceweave-web-search-mcpPunto de entrada de Compose en el repositorio:
docker compose up -d --build mcp
Ejemplo de ejecución en contenedor:
docker run --rm -p 8000:8000 \
-e SOURCEWEAVE_SEARCH_SEARXNG_BASE_URL="http://host.docker.internal:19080/search?format=json&q=<query>" \
-e SOURCEWEAVE_SEARCH_CRAWL4AI_BASE_URL="http://host.docker.internal:19235" \
-e SOURCEWEAVE_SEARCH_CACHE_REDIS_URL="redis://host.docker.internal:16379/2" \
ghcr.io/mrnaqa/sourceweave-web-search-mcp:latestOpenWebUI
Este repositorio también incluye un archivo de herramienta autónomo generado para OpenWebAI en artifacts/sourceweave_web_search.py.
Cuando quieras la ruta de despliegue mediante archivo de herramienta autónomo, pega ese artefacto en OpenWebUI. El archivo generado reescribe los endpoints predeterminados para que correspondan a los servicios compose locales del repositorio y, de este modo, resulta compatible con la ruta de despliegue en contenedor de forma predeterminada.
uv run sourceweave-build-openwebui --checkConfiguración del entorno de ejecución
Variables de entorno opcionales:
Variable | Propósito |
| Plantilla de URL de SearXNG. Debe contener |
| URL base de Crawl4AI. |
| URL de Redis o Valkey utilizada para el caché. |
| Host para el transporte |
| Puerto para el transporte |
Si las variables de endpoint no están definidas, sourceweave-search-mcp usa por defecto el entorno de ejecución local gestionado.
Los endpoints canónicos del host siguen siendo los valores predeterminados preferidos y los destinos de la revisión de reutilización externa.
Una stack gestionada por SourceWeave puede usar puertos host libres distintos cuando los valores predeterminados canónicos ya están ocupados.
Varios procesos MCP en la misma máquina comparten una única stack gestionada por directorio de estado local del entorno de ejecución.
Valores de endpoints predeterminados:
SearXNG:
http://127.0.0.1:19080/search?format=json&q=<query>Crawl4AI:
http://127.0.0.1:19235Redis:
redis://127.0.0.1:16379/2
Puertos de host preferidos por defecto para el arranque gestionado:
SearXNG:
19080Crawl4AI:
19235Redis:
16379MCP:
8000cuando se ejecuta directamente conuvx;18000en/mcppara el servicio composemcpdel repositorio.
Desarrollo
git clone https://github.com/MRNAQA/sourceweave-web-search.git
cd sourceweave-web-search
uv sync --locked --group dev
uv run sourceweave-search-mcpComprobaciones útiles:
uv run sourceweave-build-openwebui --check
uv run sourceweave-search-mcp --help
uv run pytest tests/test_config.py tests/test_packaging.py tests/test_tool.py tests/test_managed_runtime.py -m "not integration"This server cannot be deployed
Maintenance
Related MCP Connectors
Scrape, crawl and search the web for AI agents via MCP.
One MCP for the Web. Easily search, crawl, navigate, and extract websites without getting blocked.…
Agent-driven search: build, import, tune, search, and score result quality — all over MCP.
Web MCP: scrape/crawl sites, web search, brand assets, app stores, YouTube, Reddit, Hacker News.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides agent-friendly web search via MCP with zero-config free engines, region-aware failover, freshness filtering, and a one-call research tool that searches, fetches, and summarizes pages.335 npm3MIT
- FlicenseAqualityBmaintenanceEnables web search and anonymous public-page retrieval through MCP, with provider-neutral selection, bounded plain-text results, and built-in auditing.2-
- AlicenseBqualityBmaintenanceEnables MCP clients to run live web searches, fetch and navigate readable web pages, search images, capture PDF screenshots, and retrieve finance, weather, sports, and world-time data through a zero-configuration authenticated backend.1111 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables MCP clients to perform web search, extract page content, crawl sites, and map URLs through read-only tools.28 PyPI2MIT