dsh-icp:在 DSH 裏直連工信部 ICP 備案查詢

前言

在 DeepSeek Harness(DSH)裏做安全調研、合規覈對或域名/App 背景覈查時,經常需要查工信部 ICP 備案與違法違規黑名單。常見做法是單獨開瀏覽器查官網,或掛一個 MCP 服務、第三方 API,再讓 Agent 間接調用——多一層部署、多一層憑據與網絡依賴。

dsh-icp(維護者 keyblues)是 DSH 社區目錄中的「聯網工具」類原生插件:在 Node 進程內復現工信部備案查詢協議(訪問令牌、滑塊驗證碼、條件查詢與 App 詳情補全),註冊 icp_query / `icp_query_types 兩個工具,無需 MCP、外部中繼或 API Key。下文介紹它的能力、安裝方式與使用注意。

這是什麼

一句話:dsh-icp 是 DSH bundle,直連官方接口 https://hlwicpfwc.miit.gov.cn/icpproject_query/api,本地求解滑塊驗證碼後查詢網站 / APP / 小程序 / 快應用備案,以及四類違法違規黑名單;結果在會話裏以官方樣式的可展開工具卡片呈現。

插件未發佈到 npm;npm 上另有同名無關包,README 明確不要通過 npm 安裝本插件。

核心功能

兩個 Agent 工具

  1. icp_query — 按類型與關鍵詞查詢一類備案或黑名單數據,普通備案類型支持分頁。
  2. icp_query_types — 無參數,返回 8 種查詢類型的說明、官方基地址、當前生效配置與使用提示。

工具名即爲上述名稱,沒有 MCP 前綴。

支持的查詢類型

type 含義 search 可填 分頁
web 網站備案 域名 / 主辦單位名稱 / 備案號 支持
app APP 備案 應用名稱 / 主辦單位 / 備案號 支持(可自動補詳情)
mapp 小程序備案 同上 支持(可自動補詳情)
kapp 快應用備案 同上 支持(可自動補詳情)
bweb 違法違規網站 域名 單條,忽略分頁參數
bapp 違法違規 APP APP 名稱 單條
bmapp 違法違規小程序 小程序名稱 單條
bkapp 違法違規快應用 快應用名稱 單條

普通查詢只有一個 search 參數承擔域名、單位名、備案號、應用名等條件,沒有單獨的 domain / unitName 字段。

實現上的幾個要點

  • 直連官方:無中轉、無第三方數據商;憑據爲進程內匿名令牌,不需 API Key。
  • 驗證碼:本地解碼 PNG 並定位滑塊缺口;令牌與會話在插件生命週期內緩存,連續查詢時 README 稱首查約 0.9 秒、後續約 0.2–0.4 秒(以實際網絡爲準)。
  • App 類詳情:列表結果可再調 queryDetailByAppAndMiniId 補全服務名稱等,可用配置 includeDetails: false 關閉以提速。
  • 模型可見輸出:精簡爲一行一條記錄,並提示下一頁 page_num;完整字段與分頁信息在工具返回 schema 與會話卡片中。
  • 零 npm 運行時依賴:僅用 Node 內置 fetch / crypto / zlib 等,無構建步驟。

與典型「DSH → MCP → 第三方接口」方案相比,本插件查詢鏈路是 Node 進程直接訪問工信部接口,不部署 MCP Server。

安裝與啓用

社區插件通過 DSH 側邊欄安裝,不要用 dsh plugin add github:... 這類自行拼接的命令(除非你的環境文檔明確支持且與 README 一致;本插件 README 給出的方式如下)。

從 GitHub 安裝(推薦)

  1. 打開 DSH 側邊欄「插件」頁。
  2. 點「添加插件」→「安裝第三方插件」。
  3. 在「包名或地址」中填寫:
https://github.com/keyblues/dsh-icp
  1. 安裝完成後,icp_query / icp_query_types 自動註冊。

也可讓 Agent 執行:

plugin_manager(action: "install_bundle", target: "github:keyblues/dsh-icp")

安裝後檢查

  • application 應爲 applied,bundle 行 dsh-icp 激活。
  • 無 pnpm、無構建、無 approvedBuilds 額外步驟。
  • 首次安裝或升級後若修改了 client.js,需刷新瀏覽器頁面才能看到工具卡片;Host 側工具無需刷新。
  • 若改了 index.js 或 lib/**,在插件頁禁用再啓用該 bundle,或重啓 DSH,以重載 Host 模塊。

卸載可在插件頁操作,或:

plugin_manager(action: "remove_bundle", target: "@local/dsh-icp")

典型用法

查網站備案

在對話中讓 Agent 調用工具,或直接理解參數含義自行構造調用。示例語義:

  • type: web
  • search: baidu.com(也可填主辦單位全稱或備案號如 京ICP證030173號)
  • 可選 page_num(從 1 起)、page_size(默認受 maxPageSize 限制,默認 10,最大 26)

查 APP / 小程序 / 快應用

  • type 分別爲 app / mapp / kapp
  • search 可填應用名(如 微信)、主辦單位或備案號

查違法違規黑名單

  • type 爲 bweb / bapp / bmapp / bkapp 之一
  • search 填域名或對應應用名稱;不分頁

先看類型與配置

調用 icp_query_types,參數 {},可得到 8 類 search_hint、官方 endpoint 以及當前 config(如 timeout_ms、include_details)。

返回中的 hasNextPage 由插件根據官方 pageNum / pages 推導;README 說明官方返回的同名字段恆爲 false,不可直接依賴。

配置

配置寫在 bundle 的 cordis.patch.yml,也可在 profile 的 cordis.patch.yml 裏用行 id dsh-icp 覆蓋:

- id: dsh-icp
  config:
    timeoutMs: 45000
    includeDetails: false
配置項 默認 作用
captchaMaxAttempts 5 單次查詢內滑塊最大嘗試次數
timeoutMs 30000 單次上游 HTTP 超時(毫秒)
maxPageSize 10 每頁條數上限(1–26)
detailConcurrency 5 併發拉取 App 類詳情的數量
includeDetails true 是否補全 App / 小程序 / 快應用詳情

修改後需重啓 DSH 或重載該 bundle 行;本 bundle 無插件設置表單,非法值會回退默認並在範圍內截斷。

適用場景與注意

適合誰

  • 已在用 DSH、希望 Agent 在會話內查備案與黑名單、且能直連 hlwicpfwc.miit.gov.cn 的環境。
  • 不想維護 MCP 或購買第三方 ICP API 的個人或小團隊。

環境與權限

  • 平臺:macOS / Windows / Linux(純 JS)。
  • 網絡:需能訪問工信部上述域名;README 的 icp_query_types 說明裏會提到驗證碼成本與反爬、限頻,頻繁調用需自行節制。
  • 安全:插件以當前 DSH Host(Node)進程權限運行,會向外網發起 HTTP 請求;安裝前請閱讀倉庫源碼與 MIT 許可證,確認符合你的合規要求。社區目錄 skillhub.cn 與 DeepSeek / 幻方無官方從屬關係,僅作發現入口。

卡片與持久化

Client 半通過 tool.call.toolview 註冊摺疊/展開卡片;Host 寫入 output.presentationMeta,fork 或重開會話後卡片仍可重繪。運行中、失敗、用戶停止等狀態在 UI 上有區分。

結尾

dsh-icp 把工信部 ICP 查詢流程收進 DSH 原生 bundle:兩個工具、八種類型、本地過驗證碼、零 npm 依賴。若你在 Harness 裏做備案與黑名單核查,可按 README 從 GitHub 安裝,用 icp_query_types 對齊參數,再用 icp_query 分頁拉取結果。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜