Skip to main content
Glama
sheep-programmer

dsh-web-search-free

dsh-web-search-free

中文 | English — Complemento DSH (dsh-plugin) · Proveedor de búsqueda web gratuito + interruptor de configuración + servidor MCP (compatible con Claude Code / Codex)

Cambia con un solo clic la «búsqueda oficial de DeepSeek con pago por uso» a la búsqueda gratuita del mismo estilo que OpenCode (anónima, sin clave), y el mismo backend de búsqueda gratuito funciona directamente como servidor MCP para que lo usen Claude Code, Codex o cualquier cliente MCP.

  • 🆓 Backend gratuito: Parallel (predeterminado) / Exa (respaldo) — ambos son los mismos endpoints MCP gratuitos que usa la herramienta websearch integrada en OpenCode, anónimos, sin necesidad de clave API y sin cargos.

  • 🔄 Interruptor de configuración de DSH: alterna entre oficial ↔ gratuito con un clic y mantiene automáticamente el parche de perfil.

  • 🔌 Servidor MCP: cero dependencias, doble transporte (stdio + HTTP/SSE de doble puerto), listo para usar con claude mcp add / codex mcp add.

Antecedentes: por qué se usa por defecto la clave oficial de DeepSeek

La herramienta web_search de DSH utiliza la costura de capacidad ctx.web. El proveedor predeterminado es @deepseek-ai/dsh-web-search-deepseek (id = deepseek-official, incluido automáticamente por la dependencia dsh-base): cada búsqueda llama a la API nativa compatible con Anthropic de DeepSeek (https://api.deepseek.com/anthropic/v1/messages) con la herramienta de servidor web_search_20250305, reutilizando DEEPSEEK_API_KEY, con cobro por token.

Related MCP server: Search MCP Server

Funciones

Backend gratuito (dentro de DSH)

Registra dos proveedores de búsqueda gratuitos en ctx.web; la llamada a la herramienta web_search desde el lado del modelo no cambia:

id del proveedor

backend

endpoint

descripción

parallel-free(predeterminado)

Parallel Web Search

https://search.parallel.ai/mcp

anónimo, sin clave

exa-free(respaldo)

Exa

https://mcp.exa.ai/mcp

anónimo, sin clave; define EXA_API_KEY para aumentar el límite

Interruptor de configuración (Configuración de DSH → Configuración del complemento → Configurable → Búsqueda web gratuita)

  • Interruptor enabled (predeterminado desactivado = búsqueda oficial): activado → gratuito; desactivado → oficial.

  • Selección de backend gratuito: Parallel (predeterminado) / Exa (respaldo), selección única.

  • Los cambios mantienen automáticamente el parche de capa de usuario del perfil ~/.dsh/profiles/web/cordis.patch.yml en la línea web de config.searchProvider (activado → escribe el id del proveedor seleccionado; desactivado → elimina el bloque de anulación).

    No se puede escribir en ~/.dsh/.env: dsh-app-boot rechaza cualquier variable DSH_* en .env.

  • Los cambios requieren reiniciar DSH para aplicarse (WebRuntime lee la configuración de la línea web al iniciar).

Servidor MCP (Claude Code / Codex / cualquier cliente MCP)

Servidor MCP independiente de cero dependencias (lib/mcp-server.js, no depende de DSH), expone la herramienta web_search (parámetros: query obligatorio, provider opcional parallel/exa, numResults opcional). Admite doble transporte: stdio (predeterminado) y HTTP/SSE (puerto de escucha, compatible con HTTP POST / de Streamable y el estilo antiguo GET /sse + POST /messages).

Transporte uno: stdio (predeterminado, sin puerto)

# 本地路径方式(clone 后)
claude mcp add dsh-web-search -- node /绝对路径/dsh-web-search-free/lib/mcp-server.js
codex mcp add dsh-web-search -- node /绝对路径/dsh-web-search-free/lib/mcp-server.js

# 或 npm 全局安装后(npx,需先发布到 npm registry)
claude mcp add dsh-web-search -- npx -y @dsh-external/dsh-web-search-free
codex mcp add dsh-web-search -- npx -y @dsh-external/dsh-web-search-free

Transporte dos: HTTP/SSE (puerto de escucha, modo de doble puerto)

# 启动 MCP server(默认 http://127.0.0.1:3100;可用 --host/--port 调整)
node /绝对路径/dsh-web-search-free/lib/mcp-server.js --http --port 3100
  • Claude Code (HTTP de Streamable):

    claude mcp add --transport http dsh-web-search http://127.0.0.1:3100
  • Codex (CLI de OpenAI Codex):

    codex mcp add --transport http dsh-web-search http://127.0.0.1:3100
  • Clientes SSE antiguos (la URL apunta al canal SSE):

    # 客户端配置 http://127.0.0.1:3100/sse(GET /sse 建立通道,POST /messages 发请求)
  • Verificación: abre http://127.0.0.1:3100/ en el navegador y devuelve {"name":"dsh-web-search-free","version":"0.3.0","transport":"http/sse","port":3100}.

Otros clientes MCP

Cualquier cliente MCP que admita transporte stdio o HTTP/SSE puede conectarse (mismo comando/URL). Variable de entorno opcional: EXA_API_KEY (aumenta el límite anónimo de Exa).

Instalación (cuerpo del complemento DSH)

⚠️ ¿Por qué otros no ven la tarjeta en la configuración después de instalarlo? Para que la tarjeta de configuración aparezca se deben cumplir todas estas condiciones:

  1. El paquete está declarado en dsh.profile.bundles (no basta con poner el paquete en node_modules);

  2. Reinicia DSH después de instalar (el ensamblado del host y el grafo de clientes se resuelven al iniciar);

  3. Actualiza la página del navegador antes de abrir la configuración;

  4. El perfil es web (tui/headless no tienen interfaz de navegador);

  5. Instalación con ruta local/link:/tgz (npx @dsh-external/dsh-web-search-free requiere publicarlo antes en npm registry; no está disponible hasta que se publique). Después de instalarlo, puedes confirmar con dev_plugin_status que aparece client ✓, o simplemente mira Configuración → Complementos → Configurables.

Efecto en la interfaz (Configuración → Complementos → Configurables → Búsqueda web gratuita):

Tarjeta de configuración de búsqueda web gratuita

Método uno: montaje en caliente local (dsh-super-injector, sin reiniciar)

dev_install_package   # dir = 插件包目录(含 package.json 与 lib/)

Método dos: declaración en el perfil (requiere reinicio)

Declarar en ~/.dsh/profiles/web/package.json:

{
  "dsh": { "profile": { "bundles": [
    "@deepseek-ai/dsh-base",
    "@deepseek-ai/dsh-web-app",
    // ...其他 bundle...
    "@dsh-external/dsh-web-search-free"
  ]}},
  "dependencies": {
    "@dsh-external/dsh-web-search-free": "link:/绝对路径/dsh-web-search-free"
  }
}

Método tres: paquete npm (tgz)

npm run build && npm pack
# 把产物 tgz 加入 profile 依赖后重装(pnpm install),重启生效

Verificación

npm run verify   # 补丁联动 + Parallel/Exa 真实搜索 + 选择矩阵 + MCP 冒烟

Volver al oficial

Desactiva el interruptor enabled en la configuración (el bloque de anulación se elimina automáticamente) y reinicia DSH. (O elimina manualmente el bloque entre # >>> web-search-free y # <<< web-search-free en ~/.dsh/profiles/web/cordis.patch.yml).

Nota sobre permisos (transparencia y seguridad)

  • Complemento DSH: al activar el modo gratuito, las solicitudes de web_search solo se envían a search.parallel.ai / mcp.exa.ai; solo modifica ~/.dsh/profiles/web/cordis.patch.yml (anulación de la línea web con marcadores de límite, formato como se indicó arriba) y no toca ninguna otra configuración. Sin claves, sin recopilación de datos, sin escuchas.

  • Servidor MCP: solo llama a los endpoints gratuitos mencionados; no lee ningún archivo o variable de entorno tuyo (excepto la EXA_API_KEY opcional). En modo stdio no escucha ningún puerto; en modo HTTP/SSE solo ofrece el endpoint MCP en el --host:--port que especifiques (predeterminado 127.0.0.1:3100), y por defecto solo se vincula a la dirección de bucle local.

Desarrollo

bash scripts/build.sh   # tsc 编译 host + core + mcp-server,复制 client 到 lib/
npm run verify          # 端到端验证

Estructura:

src/core.ts           # 零依赖搜索核心:Parallel + Exa(host 与 MCP 共用)
src/index.ts          # host:双 provider 注册 + settings 开关 + profile 补丁联动
src/mcp-server.ts     # MCP server:stdio + HTTP/SSE 双传输(bin:dsh-web-search-mcp)
src/client/client.js  # client:设置面板「免费网页搜索」开关卡片(含后端选择)
scripts/build.sh      # 构建(自动探测 DSH_CHECKOUT)
scripts/verify.mjs    # 端到端验证脚本
cordis.patch.yml      # bundle 装配层(含 web 行 searchProvider 解除固定)

Licencia

MIT © sheep-programmer

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for internet search via direct Google and DuckDuckGo HTML scraping with AI-powered result normalization and optional summarization, requiring no API keys for search.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Free web search MCP server using SearXNG, supporting web search, news search, and search summaries.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Multi-level web search MCP server that wraps Claude, Gemini, Perplexity, and Tavily behind a unified interface, enabling multi-depth searches with session management and provider selection.
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that brings Parallel web search and URL extraction to Codex and other Model Context Protocol clients.
    2
    35 npm
    -