dsh-bing-search
dsh-bing-search
DeepSeek Harness (DSH) 用のウェブ検索。小さな MCP サーバーとして実装され、curl_cffi を利用しています。
search の順序:
DuckDuckGo HTML(
html.duckduckgo.com)をプローブし、到達可能性を約60秒間キャッシュします。中国本土からは、プロキシが設定されていない限り、このプローブは頻繁に失敗します。DDG が到達可能な場合はそれを使用します。
DDG がダウンしている、レート制限されている(HTTP 202 / チャレンジ)、または結果セットが
quality_label=poorの場合は、Bing にフォールバックします。Bing を言語でルーティングします: 中国語 /
zh-*マーケットはcn.bing.com、それ以外はwww.bing.comです。
すべての検索レスポンスには quality_score (0–1) と quality_label (good / weak / poor) が含まれます。poor は使用不可(辞書ページ、先頭トークンのジャンク)として扱ってください。それらのタイトルを引用しないでください。
DSH エージェントに3つのブラウザ風ツールを提供します:
mcp__web__search— 公開ウェブを検索し、正規化されたオーガニック結果を返します。mcp__web__open— 公開ウェブページを開き、読み取り可能なテキストを抽出します。mcp__web__find— 長いページ内のテキストを検索し、周辺のコンテキストを返します。
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.com中国本土: DuckDuckGo はプロキシや VPN なしでは到達できないことがよくあります。これは想定内です。プラグインはその場合 Bing を使用し、warnings に duckduckgo_unreachable を設定します。MCP 子プロセスはシェルの HTTP_PROXY / HTTPS_PROXY を継承しません(trust_env=False)。プロキシを強制するには、プラグインプロセスで DSH_WEB_PROXY を設定してください(例: cordis の env: マップ内で http://127.0.0.1:10808)。一般的な中国本土の家庭やキャンパスネットワークで DDG が機能するとは想定しないでください。
コミュニティプラグイン: DeepSeek Harness はサードパーティプラグインに対して、発見のために
dsh-pluginGitHub トピックを使用するよう求めています。
最速のインストール: このリポジトリをエージェントに渡す
コーディングエージェントがターミナルとファイルシステムへのアクセス権を持っている場合(Codex、Claude Code、Pi、OpenCode など)、以下を貼り付けてください:
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.これが推奨パスです。INSTALL.md には、エージェント向けに書かれた決定的なインストール契約が含まれています。
Related MCP server: webmcp
手動インストール
1. 実行可能ファイルをインストール
Python 3.10+ が必要です。uv を使用する場合:
uv tool install --force git+https://github.com/Biogod2020/dsh-bing-search.gitツールの bin ディレクトリを見つけます:
uv tool dir --bin以下の DSH 設定で dsh-bing-search(Windows では dsh-bing-search.exe)への絶対パスを使用してください。
ツールインストールの代わりに開発用の場合:
git clone https://github.com/Biogod2020/dsh-bing-search.git
cd dsh-bing-search
uv sync --extra devリポジトリには再現可能な開発インストール用の uv.lock が含まれています。
2. DSH に追加
DSH プロファイルはルート cordis.yml とパッチレイヤー cordis.patch.yml を組み合わせます。パッチレイヤー経由で新しいプラグインを追加する場合、エントリは 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: 10cordis.patch.yml に裸の - id: mcp-web エントリを追加しないでください: 裸のエントリは既存の ID をパッチし、未知の ID はスキップされる可能性があります。ルート cordis.yml を直接編集している場合は、通常の裸のプラグインエントリで正しいです。cordis.example.yml を参照してください。
3. 確認
DSH がプロファイルをリロードした後、モデルは以下を表示するはずです:
mcp__web__search
mcp__web__open
mcp__web__find次にエージェントに最新の何かを検索して1件の結果を開くよう依頼してください。ラウンドトリップが成功すれば、検索アクセスと MCP 登録の両方が検証されます。プラグインコードを変更した後は DSH(または MCP 子プロセス)を再起動してください。stdio プロセスは Python をホットリロードしません。
ツール
search
{
"query": "DeepSeek Harness GitHub",
"count": 8,
"offset": 0,
"market": "en-US",
"safe_search": "Moderate"
}戻り値:
フィールド | 意味 |
|
|
| オーガニック結果 |
| 正規URLからの安定ID |
| クエリとタイトル/スニペットの0–1の重なり |
|
|
| フォールバック理由と品質メモ |
中国語のクエリには market=zh-CN を使用してください。クエリに CJK が含まれる場合、market が en-US でも Bing フォールバックは cn.bing.com を使用します。
DuckDuckGo の /l/?uddg= と Bing の /ck/a リダイレクトは、可能な場合にデコードされます。一般的なトラッキングパラメータは除去され、重複 URL はマージされます。
人物、論文、イラスト付きブログの場合、まず著者名または短い固有名詞を検索してください。quality_label が poor の場合は、クエリを長くし続けないでください。中国の学術メタデータは、この一般的なウェブ検索ではなく、専門コーパス(例: CNKI)に属します。
open
{
"url": "https://example.com/article",
"max_chars": 24000
}curl_cffi を使用して公開 HTTP(S) ページを取得し、DNS/IP チェックと安全なリダイレクトを適用し、レスポンスサイズを制限し、JavaScript を実行せずに読み取り可能なテキストを抽出します。
open は記事のような HTML 向けに作られています。ブラウザではありません。実際の DSH 実行では、天気やその他のウィジェットが多いサイト(tianqi.com、weather.com.cn など)がナビゲーションチャームやほぼ空のテキストを返すことがよくありました。Trafilatura がメイン記事を見つけられず、フォールバックが DOM 全体をダンプします。status は依然として ok になる場合があります。そのようなページでは、検索 snippet を信頼するか、よりシンプルな記事 URL を open してください。ライブの気温、地図、その他の JS レンダリング UI を期待しないでください。
find
{
"url": "https://example.com/article",
"pattern": "DeepSeek",
"max_matches": 5,
"context_chars": 700
}ページ全体をモデルコンテキストに注入せずに、一致する領域を返します。
なぜ1つの巨大な search_and_summarize ツールではなく3つのツールなのか?
プラグインは取得を決定論的に保ち、DSH モデルが調査ループを制御できるようにします:
search -> inspect candidates -> open -> find / search again -> synthesizeプラグインは HTTP、解析、クリーニング、キャッシュ、エンジンのフォールバック、来歴、品質マークを処理します。エージェントは何を検索するか、どのソースを信頼するか、いつクエリを再構成するか、いつ十分な証拠が収集されたかを決定します。エージェントは quality_label と warnings を読む必要があります。
設定
環境変数 | デフォルト | 目的 |
|
| デフォルト以外の値に設定された場合のみ Bing HTML エンドポイントを上書きします(テスト用)。それ以外の場合、ホストは言語によって選択されます |
|
|
|
| empty | HTTP/HTTPS/SOCKS プロキシ。プロセスは |
|
| 転送タイムアウト |
|
| 接続タイムアウト |
|
|
|
|
| 検索ページの最大ボディサイズ |
|
| 最大リダイレクト数 |
|
| プロセス内の最大同時リクエスト数 |
|
| 検索キャッシュ TTL |
|
| ページキャッシュ TTL |
テスト
オフラインテスト(パーサー、品質スコア、ロケールルーティング、DDG 優先 / Bing フォールバック):
uv run pytest -m "not live"ライブスモークテスト:
RUN_LIVE_BING=1 uv run pytest -m live -sマーカー名は依然として live / RUN_LIVE_BING です。ライブ実行はまず DDG にアクセスし、DDG が利用できない場合のみ Bing を使用します。
CI は Python 3.10、3.12、3.13、3.14 をカバーしています。
設計と安全上の注意
これは非公式の DuckDuckGo HTML + Bing HTML アダプターです。廃止された Bing Search API は使用していません。
DDG のマークアップは
src/dsh_bing_search/providers/ddg.pyにあります。Bing のマークアップは
src/dsh_bing_search/providers/bing_parser.pyにあります。品質スコアリングは
src/dsh_bing_search/quality.pyにあり、エンジンに依存しません。リクエストはブラウザの偽装を伴う
curl_cffi.AsyncSessionを使用します。ユーザー指定のページ URL は公開 HTTP(S) ターゲットに制限され、安全なリダイレクト処理が有効です。
レスポンスボディはサイズ制限があります。
CAPTCHA / チャレンジ / HTTP 202 ページは
status="blocked"として報告され、プラグインはそれらをバイパスしようとはしません。www.bing.comのヘッドレス Bing は、構造的には有効だが無関係なカードを返すことがよくあります。cn.bing.comは一部の人気のある中国語クエリに役立ちますが、ロングテールの名前やタイトルは依然として最初のトークンに潰れることがあります。それが品質マークの目的です。openは遅いターゲットサイトを自動的に再試行しません。必要に応じてタイムアウトの環境変数を増やしてください。
コミュニティ
DeepSeek Harness は現在開発者プレビュー中です。そのため、プラグインインターフェースはまだ進化する可能性があります。DSH 固有のサポートと発見については:
dsh-pluginトピックを参照してください。DeepSeek Harness リポジトリ を参照してください。
公式リポジトリからリンクされている DSH コミュニティチャンネルに参加してください。
貢献とパーサーの修正を歓迎します。
ライセンス
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