Communitygithub.com

qwased/dsh-web-search-browser

DeepSeek Harness (DSH) 向けブラウザWeb検索スキル:Playwright MCPでローカルのEdgeを操作してBing検索を実行し、信頼・疑わしい・ブロックの3段階セキュリティフィルタリングを行って出力します。

dsh-web-search-browser とは?

このスキルは、DeepSeek Harness (DSH) 上でMicrosoft EdgeとPlaywright MCPを連携させ、実際のブラウザを使用したWeb検索を実行します。DSHの組み込み`web_search`インターフェースではなく、モデルがMCPブラウザツールを呼び出してEdgeを操作し、Bingの検索結果ページをスクリーンショットしてDSHのコンテキストに取り込みます。その後、信頼できるサイト/疑わしいサイト/ブロックサイトの3段階のルールベースフィルタリングを適用し、安全な結果のみを出力します。これにより、SEOファームやフィッシングサイトなどの悪質な結果を排除しつつ、最新のリアルなWeb情報を取得できます。Windows + Edge + Node.js環境で動作し、`cordis.yml`にMCPクライアント設定を追加するだけで簡単に導入できます。

対応✓Claude Code~Codex CLI~Cursor
npx skills add qwased/dsh-web-search-browser

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

web-search — DSH 駆動 Edge ブラウザ ネット検索

DSH でローカル Edge + Playwright MCP を使い、「本物のブラウザ」によるネット検索を実現します。モデルが MCP ブラウザツールを呼び出して実際の Edge を操作し、Bing で検索を実行。ページのスナップショットを DSH コンテキストに取り込み、セキュリティルールに従って結果をフィルタリングし、要約を出力します。DSH 組み込みの web_search インターフェースではなく、実際のブラウザ検索を行います。

機能構成(2点セット)

構成場所説明
Playwright MCP 設定DSH の cordis.yml(dsh-mcp-client プラグイン)DSH が Edge を操作できるようにする
本説明スキル.agents/skills/web-search/SKILL.mdセットアップ手順、検索フロー、セキュリティルールを記録

両方が揃って初めて、検索機能が完全に動作します。

一、新しいPCでのセットアップ

前提条件

  • Node.js(npm 含む)がインストールされていること
  • Microsoft Edge がインストールされていること(Win10/11 標準搭載)
  • DSH が起動できる状態であること

手順 1:Playwright MCP パッケージのインストール

PowerShell の実行ポリシーで .ps1 がブロックされる場合は、npm.cmd / npx.cmd を使用してください。

npm install -g @playwright/mcp@latest --no-audit --no-fund

起動確認:

node "$env:APPDATA\npm\node_modules\@playwright\mcp\cli.js" --help

ヘルプオプションが表示されればインストール完了です。

手順 2:DSH の cordis.yml に MCP クライアントを登録

DSH を実行する profile / preset の cordis.yml に、@deepseek-ai/dsh-mcp-client プラグインを追加します(MCP サーバーごとに1つ):

- id: mcp-playwright
  name: '@deepseek-ai/dsh-mcp-client'
  config:
    serverName: playwright
    transport: stdio
    command: npx.cmd
    args: ['-y', '@playwright/mcp@latest', '--browser', 'msedge']
  • --browser msedge でローカルの Edge を直接使用し、Chromium のダウンロードは不要です。
  • command に npx.cmd を指定すると PowerShell の実行ポリシーを回避できます。ブロックされない場合は npx でも構いません。
  • DSH は MCP ツールを mcp__<serverName>__<元のツール名> として登録します。例:mcp__playwright__browser_navigate、mcp__playwright__browser_snapshot など。

手順 3:再起動して反映

cordis.yml は DSH 起動時に読み込まれ、MCP プラグインは接続時に listTools() を実行してツールを登録します。変更後は DSH を再起動してください。そうしないとツールが利用できません。

二、検索フロー

  1. mcp__playwright__browser_navigate を呼び出して Bing を開く:https://www.bing.com/search?q=<URL エンコードされたキーワード>。
  2. mcp__playwright__browser_snapshot を呼び出して結果ページのスナップショット(タイトル/ドメイン/URL/説明)を取得します。スナップショットの情報が不十分な場合は、mcp__playwright__browser_take_screenshot で画像を取得することもできます。
  3. 各結果を以下の「セキュリティレベリング」に従って評価します。
  4. 「信頼できる」レベルの結果のみ mcp__playwright__browser_click で詳細を開いて読み取ります。「疑わしい」と「ブロック」レベルは開きません。
  5. 「出力フォーマット」に従って結果を整理し、回答を返します。引用する URL はマークダウンリンクにします。

検索のたびに Edge ウィンドウが短時間表示されますが、これは正常な動作です。バックグラウンドで静かに実行したい場合は、MCP パラメータに --headless を追加してください。ただし、視覚的な確認ができなくなるため、通常は推奨しません。

三、セキュリティレベリング(中程度のフィルタリング)

検索エンジンの結果は玉石混交です(フィッシングのなりすまし、SEO ファーム、バンドルダウンロード、ウイルス混入ソフトウェアサイトなど)。そのため、結果を1つずつレベル分けする必要があります。外部ライブラリには依存せず、純粋にルールベースでフィルタリングします。

🔒 信頼できる(通常通り詳細を開いてよい)

  • 公式サイト(ドメインとブランドが完全に一致しているもの、例:brand.com / brand.com.cn)
  • 権威あるサイト:Wikipedia、知乎、公式ドキュメント、.gov / .edu ドメイン、大企業のドメイン
  • よく知られた成熟した大規模サイト(登録から長期間経過し、評判が確立されているもの)

⚠️ 疑わしい(タイトルとURLのみ表示、詳細は開かず、ダウンロードリンクも表示しない)

  • 結果に広告マークが付いているもの(Bing の ad マーク、sp=ad、推广 など)
  • ソフトウェアダウンロード集約サイト / リソースサイト(華軍、太平洋、ソフトウェアハウス、グリーンソフトウェア連盟、xpgod、ZOL ダウンロードなど)
  • なりすましドメイン:公式を模倣したもの(例:brand-official.com、brand-download.net、ハイフンや数字のバリエーションを含むもの)
  • 新しく登録されたドメイン、HTTPS なし、説明文にキーワードが大量に詰め込まれているもの

🚫 ブロック(赤色で表示し、採用しない)

  • 明らかなフィッシング、ギャンブル、ポルノ、exe のダウンロードを要求する疑わしいサイト
  • 「クラック版 / グリーン版 / ○○ソフトウェアダウンロードサイト」全般

四、絶対的なルール

  • いかなるファイルも自動でダウンロードしない(exe / apk / zip / dmg は一切触れない)
  • 疑わしいサイトのダウンロードリンクを直接提示しない
  • ソフトウェアが必要な場合は、公式サイトまたはシステムの公式アプリストアのみを推奨する
  • デフォルトでは疑わしいページの詳細を開かない。「信頼できる」レベルのみ詳細を読むために開く

五、出力フォーマット

以下の形式で返します(日本語):

🔒 信頼できる結果
1. 【タイトル】(ドメイン) – 一言説明
2. ...

⚠️ 参考情報(未確認)
- タイトル (ドメイン) – 注意:疑わしい理由
- ...

🚫 ブロック(アクセス非推奨)
- タイトル (ドメイン) – 理由

六、なぜフィルタリングルールを使い、検索エンジンを変えないのか

問題は検索エンジンではなく、フィルタリングレイヤーの欠如にあります。検索エンジンを変えても、広告やプロモーション枠が変わるだけです。フィルタリングルールを維持すれば、どの検索エンジンの結果もまずはレベル分けされます。また、サードパーティのURLブラックリスト(例:火绒のURLデータベース)を組み込もうとしないでください。そのようなリストはクローズドソースであり、公開クエリAPIがないため、フロー内で照会できません。

関連スキル