Skip to main content
Glama
Biogod2020
by Biogod2020

dsh-bing-search

简体中文

**DeepSeek Harness (DSH)**용 웹 검색으로, curl_cffi로 구동되는 소형 MCP 서버로 구현되었습니다.

search 순서:

  1. DuckDuckGo HTML(html.duckduckgo.com)을 프로브하고 약 60초 동안 연결 가능성을 캐시합니다. 중국 본토에서는 프록시가 구성되지 않으면 이 프로브가 자주 실패합니다.

  2. 연결 가능하면 DDG를 사용합니다.

  3. DDG가 다운되었거나, 속도 제한(HTTP 202 / 챌린지)을 받거나, 결과 집합이 quality_label=poor인 경우 Bing으로 폴백합니다.

  4. Bing을 언어별로 라우팅합니다: 중국어 / zh-* 시장은 cn.bing.com으로, 그 외에는 www.bing.com으로 이동합니다.

모든 검색 응답에는 quality_score(0–1)와 quality_label(good / weak / poor)이 포함됩니다. poor는 사용할 수 없는 것으로 취급하세요(사전 페이지, 첫 토큰 쓰레기). 해당 제목은 인용하지 마세요.

DSH 에이전트에 세 가지 브라우저 스타일 도구를 제공합니다:

  • 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

중국 본토: 프록시나 VPN이 없으면 DuckDuckGo에 연결할 수 없는 경우가 많습니다. 이는 예상된 동작입니다. 플러그인은 이때 Bing을 사용하고 warningsduckduckgo_unreachable로 설정합니다. MCP 자식 프로세스는 셸의 HTTP_PROXY / HTTPS_PROXY를 상속하지 않습니다(trust_env=False). 프록시를 강제하려면 플러그인 프로세스에 DSH_WEB_PROXY를 설정하세요(예: cordis env: 맵에서 http://127.0.0.1:10808). 일반적인 중국 본토 가정용 또는 캠퍼스 네트워크에서 DDG가 작동할 것이라고 가정하지 마세요.

커뮤니티 플러그인: DeepSeek Harness는 서드파티 플러그인이 dsh-plugin GitHub 토픽을 사용하여 발견될 수 있도록 요청합니다.

가장 빠른 설치: 이 저장소를 에이전트에 넘기세요

코딩 에이전트에 터미널과 파일 시스템 접근 권한이 있다면(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: 10

cordis.patch.yml- id: mcp-web 항목을 단독으로 추가하지 마세요: 단독 항목은 기존 ID를 패치하며, 알 수 없는 ID는 건너뛸 수 있습니다. 루트 cordis.yml을 직접 편집하는 경우 일반적인 단독 플러그인 항목이 올바릅니다. cordis.example.yml을 참조하세요.

3. 확인

DSH가 프로필을 다시 로드한 후 모델은 다음을 볼 수 있어야 합니다:

mcp__web__search
mcp__web__open
mcp__web__find

그런 다음 에이전트에게 최신 주제를 검색하고 결과 하나를 열도록 요청하세요. 성공적인 왕복은 검색 접근과 MCP 등록을 모두 검증합니다. 플러그인 코드를 변경한 후에는 DSH(또는 MCP 자식 프로세스)를 다시 시작하세요. stdio 프로세스는 Python을 핫 리로드하지 않습니다.

도구

{
  "query": "DeepSeek Harness GitHub",
  "count": 8,
  "offset": 0,
  "market": "en-US",
  "safe_search": "Moderate"
}

반환:

필드

의미

provider

duckduckgo 또는 bing

title / url / snippet / rank

자연 검색 결과

source_id

정식 URL의 안정적인 ID

quality_score

쿼리와 제목/스니펫의 0–1 중첩 정도

quality_label

good / weak / poor

warnings

폴백 사유 및 품질 메모

중국어 쿼리에는 market=zh-CN을 사용하세요. 쿼리에 CJK가 포함된 경우 marketen-US여도 Bing 폴백은 여전히 cn.bing.com을 사용합니다.

DuckDuckGo /l/?uddg= 및 Bing /ck/a 리디렉션은 가능한 경우 디코딩됩니다. 일반적인 추적 매개변수는 제거되고 중복 URL은 병합됩니다.

사람, 논문, 일러스트 블로그의 경우 먼저 저자 이름이나 짧은 고유 명사를 검색하세요. quality_labelpoor이면 쿼리를 계속 늘리지 마세요. 중국 학술 메타데이터는 일반 웹 검색이 아닌 특수 코퍼스(예: CNKI)에 속합니다.

open

{
  "url": "https://example.com/article",
  "max_chars": 24000
}

curl_cffi로 공개 HTTP(S) 페이지를 가져오고 DNS/IP 검사와 안전한 리디렉션을 적용하며 응답 크기를 제한하고 자바스크립트를 실행하지 않고 읽을 수 있는 텍스트를 추출합니다.

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
}

전체 페이지를 모델 컨텍스트에 주입하지 않고 일치하는 영역을 반환합니다.

하나의 거대한 search_and_summarize 도구 대신 세 개의 도구가 필요한 이유는 무엇인가요?

플러그인은 검색을 결정적으로 유지하고 DSH 모델이 리서치 루프를 제어하도록 합니다:

search -> inspect candidates -> open -> find / search again -> synthesize

플러그인은 HTTP, 파싱, 정리, 캐싱, 엔진 폴백, 출처 추적, 품질 표시를 처리합니다. 에이전트는 무엇을 검색할지, 어떤 출처를 신뢰할지, 언제 쿼리를 다시 구성할지, 언제 충분한 증거가 수집되었는지를 결정합니다. 에이전트는 quality_labelwarnings를 읽어야 합니다.

구성

환경 변수

기본값

목적

DSH_BING_SEARCH_URL

https://www.bing.com/search

기본값이 아닌 값으로 설정된 경우에만 Bing HTML 엔드포인트를 재정의합니다(테스트). 그 외에는 호스트가 언어별로 선택됩니다

DSH_WEB_IMPERSONATE

chrome

curl_cffi 브라우저 지문

DSH_WEB_PROXY

empty

HTTP/HTTPS/SOCKS 프록시. 프로세스는 trust_env=False를 사용하며 HTTP_PROXY를 상속하지 않습니다

DSH_WEB_TIMEOUT_SECONDS

20

전송 타임아웃

DSH_WEB_CONNECT_TIMEOUT_SECONDS

8

연결 타임아웃

DSH_WEB_MAX_BODY_BYTES

5242880

open의 최대 본문 크기

DSH_BING_MAX_BODY_BYTES

2097152

검색 페이지 최대 본문 크기

DSH_WEB_MAX_REDIRECTS

8

최대 리디렉션 수

DSH_WEB_CONCURRENCY

8

프로세스 내 최대 동시 요청 수

DSH_BING_CACHE_TTL_SECONDS

90

검색 캐시 TTL

DSH_WEB_CACHE_TTL_SECONDS

600

페이지 캐시 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에 있으며 엔진에 독립적입니다.

  • 요청은 브라우저 임의화(impersonation)와 함께 curl_cffi.AsyncSession을 사용합니다.

  • 사용자가 제공한 페이지 URL은 공개 HTTP(S) 대상으로 제한되며 안전한 리디렉션 처리가 활성화됩니다.

  • 응답 본문은 크기가 제한됩니다.

  • CAPTCHA / 챌린지 / HTTP 202 페이지는 status="blocked"로 보고됩니다. 플러그인은 이를 우회하려 시도하지 않습니다.

  • www.bing.com의 헤드리스 Bing은 구조적으로 유효하지만 관련 없는 카드를 자주 반환합니다. cn.bing.com은 일부 인기 중국어 쿼리에 도움이 되지만, 롱테일 이름과 제목은 여전히 첫 번째 토큰으로 축소될 수 있습니다. 이것이 품질 표시의 목적입니다.

  • open은 느린 대상 사이트를 자동으로 재시도하지 않습니다. 필요한 경우 타임아웃 환경 변수를 늘리세요.

커뮤니티

DeepSeek Harness는 현재 개발자 미리보기 상태이므로 플러그인 인터페이스는 계속 변경될 수 있습니다. DSH 관련 지원 및 검색을 원한다면:

기여와 파서 수정을 환영합니다.

라이선스

MIT

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    -
    quality
    C
    maintenance
    MCP server for web search and content extraction using DuckDuckGo or SearXNG, with Playwright-based fetching and LLM-powered data extraction.
    140
    MIT
  • A
    license
    -
    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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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