dsh-bing-search
dsh-bing-search
Búsqueda web para DeepSeek Harness (DSH), implementada como un pequeño servidor MCP y basada en curl_cffi.
orden de search:
Comprueba el HTML de DuckDuckGo (
html.duckduckgo.com) y cachea la accesibilidad durante unos 60 segundos. Desde la China continental esta comprobación suele fallar a menos que se configure un proxy.Usa DDG cuando sea accesible.
Recurre a Bing cuando DDG está caído, limitado por tasa (HTTP 202 / challenge), o el conjunto de resultados es
quality_label=poor.Enruta Bing por idioma: los mercados chinos /
zh-*van acn.bing.com, de lo contrario awww.bing.com.
Cada respuesta de búsqueda incluye quality_score (0–1) y quality_label (good / weak / poor). Trata poor como no utilizable (páginas de diccionario, basura de primer token). No cites esos títulos.
Ofrece a un agente DSH tres herramientas de estilo navegador:
mcp__web__search— busca en la web pública y devuelve resultados orgánicos normalizados.mcp__web__open— abre una página web pública y extrae texto legible.mcp__web__find— encuentra texto dentro de una página larga y devuelve el contexto cercano.
DSH agent
-> @deepseek-ai/dsh-mcp-client
-> dsh-bing-search (MCP/stdio)
-> curl_cffi.AsyncSession(impersonate="chrome")
-> html.duckduckgo.com (if reachable)
-> else cn.bing.com / www.bing.comChina continental: DuckDuckGo suele ser inaccesible sin un proxy o VPN. Esto es lo esperado. El plugin entonces usa Bing y establece warnings a duckduckgo_unreachable. El proceso hijo MCP no hereda tu HTTP_PROXY / HTTPS_PROXY del shell (trust_env=False). Para forzar un proxy, establece DSH_WEB_PROXY en el proceso del plugin (por ejemplo http://127.0.0.1:10808 en el mapa env: de cordis). No asumas que DDG funcionará en una red doméstica o universitaria típica de China continental.
Plugin comunitario: DeepSeek Harness pide a los plugins de terceros que usen el tema de GitHub
dsh-pluginpara su descubrimiento.
Instalación más rápida: dale este repositorio a un agente
Si tu agente de codificación tiene acceso al terminal y al sistema de archivos (Codex, Claude Code, Pi, OpenCode, etc.), pega esto:
Install this DeepSeek Harness plugin into my current DSH setup:
https://github.com/Biogod2020/dsh-bing-search
Read the repository README and INSTALL.md first. Install it with uv, detect my active
DSH profile, add it through cordis.patch.yml using the required `insert` patch form,
preserve all unrelated config, use the absolute path of the installed dsh-bing-search
executable, then verify that mcp__web__search, mcp__web__open, and mcp__web__find are
registered. Finally run one real web search smoke test and report what changed.Ese es el camino recomendado. INSTALL.md contiene un contrato de instalación determinista escrito para agentes.
Related MCP server: webmcp
Instalación manual
1. Instala el ejecutable
Se requiere Python 3.10+. Con uv:
uv tool install --force git+https://github.com/Biogod2020/dsh-bing-search.gitEncuentra el directorio bin de la herramienta:
uv tool dir --binUsa la ruta absoluta a dsh-bing-search (o dsh-bing-search.exe en Windows) en la configuración de DSH de abajo.
Para desarrollo en lugar de una instalación de herramienta:
git clone https://github.com/Biogod2020/dsh-bing-search.git
cd dsh-bing-search
uv sync --extra devEl repositorio incluye uv.lock para instalaciones de desarrollo reproducibles.
2. Añádelo a DSH
Los perfiles de DSH combinan un cordis.yml raíz con una capa de parche cordis.patch.yml. Al añadir un nuevo plugin mediante la capa de parche, la entrada debe estar envuelta en insert:
- insert:
- id: mcp-web
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: web
transport: stdio
command: /ABSOLUTE/PATH/TO/dsh-bing-search
args: []
toolCallTimeoutMs: 30000
failOnStartupError: true
reconnect:
enabled: true
initialDelayMs: 500
maxDelayMs: 30000
maxAttempts: 10No añadas una entrada simple - id: mcp-web a cordis.patch.yml: las entradas simples parchean IDs existentes y un ID desconocido puede omitirse. Si editas directamente el cordis.yml raíz, una entrada simple de plugin normal es correcta. Consulta cordis.example.yml.
3. Verifica
Después de que DSH recargue el perfil, el modelo debería ver:
mcp__web__search
mcp__web__open
mcp__web__findLuego pide al agente que busque algo actual y abra un resultado. Un viaje de ida y vuelta exitoso verifica tanto el acceso a la búsqueda como el registro MCP. Reinicia DSH (o el hijo MCP) después de cambiar el código del plugin; el proceso stdio no recarga Python en caliente.
Herramientas
search
{
"query": "DeepSeek Harness GitHub",
"count": 8,
"offset": 0,
"market": "en-US",
"safe_search": "Moderate"
}Devuelve:
Campo | Significado |
|
|
| Resultado orgánico |
| ID estable de la URL canónica |
| Superposición 0–1 de la consulta con títulos/fragmentos |
|
|
| Motivo de la reserva y notas de calidad |
Usa market=zh-CN para consultas en chino. Si la consulta contiene CJK, la reserva de Bing sigue usando cn.bing.com incluso cuando market es en-US.
Los redireccionamientos de DuckDuckGo /l/?uddg= y de Bing /ck/a se decodifican cuando es posible. Los parámetros de seguimiento comunes se eliminan y las URL duplicadas se fusionan.
Para personas, artículos o blogs ilustrados, busca primero el nombre del autor o un nombre propio corto. Si quality_label es poor, no sigas alargando la consulta. Los metadatos académicos chinos pertenecen a un corpus especializado (por ejemplo CNKI), no a esta búsqueda web general.
open
{
"url": "https://example.com/article",
"max_chars": 24000
}Obtiene páginas HTTP(S) públicas con curl_cffi, aplica comprobaciones DNS/IP y redireccionamientos seguros, limita el tamaño de la respuesta y extrae texto legible sin ejecutar JavaScript.
open está diseñado para HTML tipo artículo. No es un navegador. Ejecuciones en vivo de DSH mostraron que los sitios de clima y otros con muchos widgets (tianqi.com, weather.com.cn y similares) a menudo producen una interfaz de navegación o texto casi vacío: Trafilatura no encuentra un artículo principal, y entonces la reserva vuelca todo el DOM. status puede seguir siendo ok. Para esas páginas, confía en el snippet de la búsqueda, o abre una URL de artículo más simple. No esperes temperatura en vivo, mapas u otra interfaz renderizada por JS.
find
{
"url": "https://example.com/article",
"pattern": "DeepSeek",
"max_matches": 5,
"context_chars": 700
}Devuelve las regiones coincidentes sin inyectar toda la página en el contexto del modelo.
¿Por qué tres herramientas en lugar de una gran herramienta search_and_summarize?
El plugin mantiene la recuperación determinista y permite que el modelo DSH controle el bucle de investigación:
search -> inspect candidates -> open -> find / search again -> synthesizeEl plugin maneja HTTP, análisis, limpieza, caché, reserva de motor, procedencia y una marca de calidad. El agente decide qué buscar, en qué fuentes confiar, cuándo reformular la consulta y cuándo se ha recopilado suficiente evidencia. El agente debe leer quality_label y warnings.
Configuración
Variable de entorno | Predeterminado | Propósito |
|
| Sobrescribir el endpoint HTML de Bing solo cuando se establece a un valor no predeterminado (pruebas). De lo contrario, el host se elige por idioma |
|
| Huella digital del navegador |
| empty | Proxy HTTP/HTTPS/SOCKS. El proceso usa |
|
| Tiempo de espera de transferencia |
|
| Tiempo de espera de conexión |
|
| Tamaño máximo del cuerpo para |
|
| Tamaño máximo del cuerpo de la página de búsqueda |
|
| Máximo de redireccionamientos |
|
| Máximo de solicitudes simultáneas en proceso |
|
| TTL de caché de búsqueda |
|
| TTL de caché de página |
Pruebas
Pruebas sin conexión (analizadores, puntuación de calidad, enrutamiento por configuración regional, DDG primero / reserva de Bing):
uv run pytest -m "not live"Prueba de humo en vivo:
RUN_LIVE_BING=1 uv run pytest -m live -sEl nombre del marcador sigue siendo live / RUN_LIVE_BING. Una ejecución en vivo usa DDG primero y solo utiliza Bing si DDG no está disponible.
CI cubre Python 3.10, 3.12, 3.13 y 3.14.
Notas de diseño y seguridad
Este es un adaptador no oficial de HTML de DuckDuckGo + HTML de Bing. No utiliza la API de Búsqueda de Bing retirada.
El marcado de DDG se encuentra en
src/dsh_bing_search/providers/ddg.py.El marcado de Bing se encuentra en
src/dsh_bing_search/providers/bing_parser.py.La puntuación de calidad se encuentra en
src/dsh_bing_search/quality.pyy es independiente del motor.Las solicitudes usan
curl_cffi.AsyncSessioncon suplantación de navegador.Las URL de páginas proporcionadas por el usuario están restringidas a destinos HTTP(S) públicos y se habilita el manejo seguro de redireccionamientos.
Los cuerpos de respuesta tienen un límite de tamaño.
Las páginas CAPTCHA / challenge / HTTP 202 se notifican como
status="blocked"; el plugin no intenta omitirlas.Bing sin interfaz en
www.bing.coma menudo devuelve tarjetas estructuralmente válidas pero no relacionadas.cn.bing.comayuda en algunas consultas chinas populares; los nombres y títulos de cola larga aún pueden colapsarse al primer token. Para eso está la marca de calidad.openno reintenta automáticamente los sitios de destino lentos; aumenta las variables de entorno de tiempo de espera si es necesario.
Comunidad
DeepSeek Harness está actualmente en vista previa para desarrolladores, por lo que las interfaces de los plugins aún pueden evolucionar. Para soporte y descubrimiento específicos de DSH:
Explora el tema
dsh-plugin.Consulta el repositorio de DeepSeek Harness.
Únete a los canales de la comunidad DSH enlazados desde el repositorio oficial.
Las contribuciones y correcciones de analizadores son bienvenidas.
Licencia
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceThis MCP server provides tools for AI agents to search the web, fetch page content, and query specific elements from pages using DuckDuckGo.18
- Alicense-qualityCmaintenanceMCP server for web search and content extraction using DuckDuckGo or SearXNG, with Playwright-based fetching and LLM-powered data extraction.140MIT
- AlicenseAqualityCmaintenanceA general MCP server providing web search capabilities using DeepSeek's native online search API.114027MIT
- Alicense-qualityDmaintenanceMCP 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
Related MCP Connectors
Serper MCP — wraps the Serper Google Search API (serper.dev)
MCP server for Google search results via SERP API
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/Biogod2020/dsh-bing-search'
If you have feedback or need assistance with the MCP directory API, please join our Discord server