dsh-bing-search
dsh-bing-search
Websuche für DeepSeek Harness (DSH), implementiert als kleiner MCP-Server und unterstützt von curl_cffi.
search-Reihenfolge:
DuckDuckGo-HTML (
html.duckduckgo.com) prüfen und die Erreichbarkeit für etwa 60 Sekunden zwischenspeichern. Vom chinesischen Festland aus schlägt diese Prüfung oft fehl, sofern kein Proxy konfiguriert ist.DDG verwenden, wenn es erreichbar ist.
Auf Bing zurückfallen, wenn DDG nicht verfügbar ist, rate-limitiert (HTTP 202 / Challenge) ist oder das Ergebnisset
quality_label=pooraufweist.Bing je nach Sprache weiterleiten: Chinesische /
zh-*-Märkte gehen ancn.bing.com, andernfalls anwww.bing.com.
Jede Suchantwort enthält quality_score (0–1) und quality_label (good / weak / poor). Behandle poor als unbrauchbar (Wörterbuchseiten, Erst-Token-Müll). Zitiere diese Titel nicht.
Es gibt einem DSH-Agenten drei browserartige Werkzeuge:
mcp__web__search— durchsuche das öffentliche Web und gib normalisierte organische Ergebnisse zurück.mcp__web__open— öffne eine öffentliche Webseite und extrahiere lesbaren Text.mcp__web__find— finde Text in einer langen Seite und gib umliegenden Kontext zurück.
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.comFestlandchina: DuckDuckGo ist ohne Proxy oder VPN oft nicht erreichbar. Das ist zu erwarten. Das Plugin verwendet dann Bing und setzt warnings auf duckduckgo_unreachable. Der MCP-Kindprozess erbt nicht die HTTP_PROXY/HTTPS_PROXY-Einstellungen Ihrer Shell (trust_env=False). Um einen Proxy zu erzwingen, setzen Sie DSH_WEB_PROXY im Plugin-Prozess (zum Beispiel http://127.0.0.1:10808 in der env:-Map von cordis). Gehen Sie nicht davon aus, dass DDG in einem typischen Festland-Heim- oder Campusnetzwerk funktioniert.
Community-Plugin: DeepSeek Harness bittet Drittanbieter-Plugins, das GitHub-Thema
dsh-pluginzur Auffindbarkeit zu verwenden.
Schnellste Installation: Dieses Repository einem Agenten übergeben
Wenn Ihr Coding-Agent Terminal- und Dateisystemzugriff hat (Codex, Claude Code, Pi, OpenCode usw.), fügen Sie Folgendes ein:
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.Das ist der empfohlene Weg. INSTALL.md enthält einen deterministischen Installationsvertrag, der für Agenten geschrieben wurde.
Related MCP server: webmcp
Manuelle Installation
1. Die ausführbare Datei installieren
Python 3.10+ ist erforderlich. Mit uv:
uv tool install --force git+https://github.com/Biogod2020/dsh-bing-search.gitFinden Sie das Tool-Bin-Verzeichnis:
uv tool dir --binVerwenden Sie den absoluten Pfad zu dsh-bing-search (oder dsh-bing-search.exe unter Windows) in der DSH-Konfiguration unten.
Für die Entwicklung anstelle einer Tool-Installation:
git clone https://github.com/Biogod2020/dsh-bing-search.git
cd dsh-bing-search
uv sync --extra devDas Repository enthält uv.lock für reproduzierbare Entwicklungsinstallationen.
2. Zu DSH hinzufügen
DSH-Profile kombinieren eine Stamm-cordis.yml mit einer Patch-Schicht cordis.patch.yml. Wenn Sie ein neues Plugin über die Patch-Schicht hinzufügen, muss der Eintrag in insert eingebettet werden:
- 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: 10Fügen Sie keinen nackten Eintrag - id: mcp-web zu cordis.patch.yml hinzu: Nackte Einträge patchen vorhandene IDs, und eine unbekannte ID kann übersprungen werden. Wenn Sie die Stamm-cordis.yml direkt bearbeiten, ist ein normaler nackter Plugin-Eintrag korrekt. Siehe cordis.example.yml.
3. Überprüfen
Nachdem DSH das Profil neu geladen hat, sollte das Modell Folgendes sehen:
mcp__web__search
mcp__web__open
mcp__web__findBitten Sie den Agenten dann, nach etwas Aktuellem zu suchen und ein Ergebnis zu öffnen. Ein erfolgreicher Roundtrip bestätigt sowohl den Suchzugriff als auch die MCP-Registrierung. Starten Sie DSH (oder den MCP-Kindprozess) neu, nachdem Sie Plugin-Code geändert haben; der Stdio-Prozess lädt Python nicht neu.
Werkzeuge
search
{
"query": "DeepSeek Harness GitHub",
"count": 8,
"offset": 0,
"market": "en-US",
"safe_search": "Moderate"
}Gibt zurück:
Feld | Bedeutung |
|
|
| Organisches Ergebnis |
| Stabile ID aus der kanonischen URL |
| 0–1 Überlappung der Abfrage mit Titeln/Textauszügen |
|
|
| Fallback-Grund und Qualitätshinweise |
Verwenden Sie market=zh-CN für chinesische Abfragen. Wenn die Abfrage CJK enthält, verwendet der Bing-Fallback auch bei market=en-US weiterhin cn.bing.com.
DuckDuckGo-/l/?uddg=- und Bing-/ck/a-Weiterleitungen werden nach Möglichkeit dekodiert. Häufige Tracking-Parameter werden entfernt und doppelte URLs werden zusammengeführt.
Suchen Sie bei Personen, Papieren oder illustrierten Blogs zuerst nach dem Autorennamen oder einem kurzen Eigennamen. Wenn quality_label poor ist, verlängern Sie die Abfrage nicht weiter. Chinesische akademische Metadaten gehören in ein spezialisiertes Korpus (z. B. CNKI), nicht in diese allgemeine Websuche.
open
{
"url": "https://example.com/article",
"max_chars": 24000
}Ruft öffentliche HTTP(S)-Seiten mit curl_cffi ab, wendet DNS/IP-Prüfungen und sichere Weiterleitungen an, begrenzt die Antwortgröße und extrahiert lesbaren Text ohne JavaScript auszuführen.
open ist für artikelähnliches HTML gebaut. Es ist kein Browser. Live-DSH-Läufe zeigten, dass Wetter- und andere Widget-lastige Websites (tianqi.com, weather.com.cn und ähnliche) oft Navigations-Chrome oder fast leeren Text liefern: Trafilatura findet keinen Hauptartikel, und der Fallback gibt das gesamte DOM aus. status kann trotzdem ok sein. Vertrauen Sie bei diesen Seiten dem Such-snippet oder öffnen Sie eine einfachere Artikel-URL. Erwarten Sie keine Live-Temperatur, Karten oder andere JS-gerenderte Benutzeroberfläche.
find
{
"url": "https://example.com/article",
"pattern": "DeepSeek",
"max_matches": 5,
"context_chars": 700
}Gibt passende Bereiche zurück, ohne die gesamte Seite in den Modellkontext einzufügen.
Warum drei Werkzeuge statt eines riesigen search_and_summarize-Werkzeugs?
Das Plugin hält die Abfrage deterministisch und lässt das DSH-Modell die Recherche-Schleife steuern:
search -> inspect candidates -> open -> find / search again -> synthesizeDas Plugin übernimmt HTTP, Parsing, Bereinigung, Caching, Engine-Fallback, Herkunft und eine Qualitätskennzeichnung. Der Agent entscheidet, wonach gesucht wird, welchen Quellen er vertraut, wann die Abfrage umformuliert wird und wann genügend Beweise gesammelt wurden. Der Agent muss quality_label und warnings lesen.
Konfiguration
Umgebungsvariable | Standard | Zweck |
|
| Bing-HTML-Endpunkt nur überschreiben, wenn ein Nicht-Standardwert gesetzt ist (Tests). Andernfalls wird der Host anhand der Sprache gewählt |
|
|
|
| leer | HTTP/HTTPS/SOCKS-Proxy. Der Prozess verwendet |
|
| Übertragungs-Timeout |
|
| Verbindungs-Timeout |
|
| Maximale Größe des Inhalts für |
|
| Maximale Größe des Suchseiteninhalts |
|
| Maximale Anzahl an Weiterleitungen |
|
| Maximale gleichzeitige Anforderungen pro Prozess |
|
| Suchcache-TTL |
|
| Seiten-Cache-TTL |
Tests
Offline-Tests (Parser, Qualitätswert, Locale-Routing, DDG-zuerst / Bing-Fallback):
uv run pytest -m "not live"Live-Smoke-Test:
RUN_LIVE_BING=1 uv run pytest -m live -sDer Markername ist weiterhin live / RUN_LIVE_BING. Ein Live-Lauf greift zuerst auf DDG zu und verwendet Bing nur, wenn DDG nicht verfügbar ist.
CI umfasst Python 3.10, 3.12, 3.13 und 3.14.
Design- und Sicherheitshinweise
Dies ist ein inoffizieller DuckDuckGo-HTML- und Bing-HTML-Adapter. Er verwendet die eingestellte Bing-Such-API nicht.
DDG-Markup befindet sich in
src/dsh_bing_search/providers/ddg.py.Bing-Markup befindet sich in
src/dsh_bing_search/providers/bing_parser.py.Die Qualitätsbewertung befindet sich in
src/dsh_bing_search/quality.pyund ist engine-agnostisch.Anforderungen verwenden
curl_cffi.AsyncSessionmit Browser-Imitation.Benutzer bereitgestellte Seiten-URLs sind auf öffentliche HTTP(S)-Ziele beschränkt, und eine sichere Weiterleitungsbehandlung ist aktiviert.
Antwortkörper sind größenbegrenzt.
CAPTCHA-/Challenge-/HTTP-202-Seiten werden als
status="blocked"gemeldet; das Plugin versucht nicht, sie zu umgehen.Headless Bing auf
www.bing.comliefert oft strukturierte, aber unpassende Karten.cn.bing.comhilft bei einigen heißen chinesischen Abfragen; Long-Tail-Namen und Titel können weiterhin auf das erste Token kollabieren. Dafür ist die Qualitätskennzeichnung da.openwiederholt langsame Zielseiten nicht automatisch; erhöhen Sie bei Bedarf die Timeout-Umgebungsvariablen.
Community
DeepSeek Harness befindet sich derzeit in der Entwicklervorschau, daher können sich Plugin-Schnittstellen noch ändern. Für DSH-spezifischen Support und Auffindbarkeit:
Durchsuchen Sie das Thema
dsh-plugin.Siehe das DeepSeek Harness Repository.
Treten Sie den DSH-Community-Kanälen bei, die im offiziellen Repository verlinkt sind.
Beiträge und Parser-Fixes sind willkommen.
Lizenz
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