dsh-plugin-weather:为 DSH 与 MCP 智能体提供全球天气与空气质量

前言

在 DeepSeek Harness(DSH)或其它能调用工具的 Agent 里,模型若凭训练数据回答「今天会不会下雨」「PM2.5 多少」,往往缺少实时地点与数值。自行对接商业天气 API 还要申请 Key、维护 SDK。下面介绍社区插件 dsh-plugin-weather(维护者 whaoran1018-cmd),用 Open-Meteo 拉取实况与预报,无需 API Key、注册或专用 SDK;同一套逻辑可通过 DSH 插件、MCP 服务或命令行暴露,便于在 Cursor、Claude Code、Codex 等环境里复用。

这是什么

dsh-plugin-weather 归类为 DSH 社区目录中的「联网工具」。当前 package 版本为 0.4.1,许可证 MIT,运行需 Node.js ≥ 20。

插件向 Agent 注册两个可调用工具,模型可按自然语言意图选用:

工具 返回内容
get_weather 当前天气与空气质量;默认附带 3 天 outlook(days: 0 时仅当前)
get_weather_forecast 1–16 天逐日预报;可选逐小时(未来 48 小时,或指定 date 的 24 小时)

数据来源以 Open-Meteo 为主;配置项 provider 为 auto 时,Open-Meteo 失败会回退 wttr.in;设为 open-meteo 则不回退。

每次调用通常包含两块:本地化可读摘要(含等级说明)与 完整 JSON,便于模型引用精确数值。

核心功能

实况与空气质量

当前条件字段包括:温度、体感温度、湿度、露点、UV 指数及等级(Low / Moderate / High / Very high / Extreme)、当地时区的日出/日落/日照时长、16 方位风名与风向/风速/阵风、降水与雨雪、云量、气压、WMO 天气描述,以及 PM2.5、PM10、O₃、NO₂、SO₂、CO、US AQI 与 European AQI 及对应类别。

多日预报与趋势

逐日行包含:日期与星期、天气、最低/最高温与体感、降水概率与量、最大 UV 及等级、主导风向、日出日落。多日结果可带趋势线(温度区间、最湿日、UV 峰值等)。

多语言摘要

摘要可本地化(天气描述、16 方位风、UV 与 AQI 等级、星期、标签与错误信息等)。插件配置 language 默认 en;环境变量 WEATHER_LANG 可用于 MCP/CLI(例如 zh)。README 语言表在截断处仍列出 zh、ko 等代码,完整列表见仓库 Languages 一节。

多种接入面

同一套核心逻辑,注册层因运行时而异:

接入方式 入口 适用
DSH 插件 cordis.patch.yml + lib/index.js DeepSeek Harness
MCP(stdio) bin/mcp-server.mjs Claude Code、Codex CLI、Cursor、Windsurf、Gemini CLI、Cline、Zed 等
一次性 CLI bin/cli.mjs(命令名 dsh-weather) 能执行 shell 的 Agent、CI、cron
工具 Schema bin/schemas.mjs、schema/*.json OpenAI / Anthropic 等 function calling

安装与启用

在 DSH 中安装(推荐)

通过插件管理器安装 bundle,会写入 dsh.profile.bundles 并激活;若工具未立即出现,可重载或重启 DSH 一次。

plugin_manager { "action": "install_bundle", "target": "github:whaoran1018-cmd/dsh-plugin-weather" }

也可在 Agent 对话中说明安装,或使用 DSH 的 Plugins 页面(与 DeepSeek / 幻方无官方从属关系的社区目录见 SkillHub 插件页)。

手动挂到已有 Profile

在 ~/.dsh/profiles/<profile> 下用包管理器链接本地或已发布包,并在该 profile 的 package.json 的 dsh.profile.bundles 中加入 "dsh-plugin-weather"。包内自带 cordis.patch.yml,Loader 会自动插入插件行。

无包管理器的拷贝方式

将目录放到 ~/.dsh/profiles/<profile>/plugins/dsh-plugin-weather,并在 profile 的 cordis.patch.yml 追加:

- insert:
    - id: weather
      name: 'dsh-plugin-weather'

注意:勿放在以 . 开头的目录下,DSH 的 watcher 会忽略 **/.*。

全局 npm 与 MCP / CLI(非 DSH 专用)

若只需命令行或 MCP,可全局安装(README 原文):

npm i -g github:whaoran1018-cmd/dsh-plugin-weather

Cursor 等项目级 MCP 示例(路径需改为本机绝对路径):

{
  "mcpServers": {
    "dsh-weather": { "command": "node", "args": ["/absolute/path/to/dsh-plugin-weather/bin/mcp-server.mjs"] }
  }
}

中文摘要示例环境变量:

"env": { "WEATHER_LANG": "zh" }

配置项

可在插件设置 UI 或 profile 的 cordis.patch.yml 对应行的 config 中设置:

键 默认 含义
defaultLocation "" 未传地点时使用;空则按公网 IP 推断
language en 摘要语言
units metric metric 或 imperial
includeAirQuality true 是否附带空气质量块
cacheTtlSeconds 300 相同请求本地缓存秒数;0 关闭
requestTimeoutMs 15000 上游单次请求超时
provider auto auto 或 open-meteo(见上文)

MCP/CLI 等面还可通过环境变量统一配置:WEATHER_DEFAULT_LOCATION、WEATHER_LANG、WEATHER_UNITS、WEATHER_PROVIDER,以及 WEATHER_TOOL_PREFIX(为 MCP 工具名加前缀)。

典型用法

在 DSH 里直接提问

用自然语言即可,例如:

  • 「上海现在天气怎么样」/ “What’s the weather in Shanghai?”
  • 「上海未来 7 天会不会下雨」/ “Is it going to rain this week in New York?”
  • 「雅加达空气好不好」/ “Air quality in Jakarta”
  • 「明天几点日出」/ “What time is sunrise tomorrow?”
  • 指定日期逐小时:「Hourly forecast for Oct 7」(模型可传 date: "2026-10-07")
  • 坐标:「UV index at 31.23,121.47」

工具参数要点

参数 适用 说明
location 两者 中英文城市或 "lat,lon";否则用 defaultLocation,再否则公网 IP
latitude / longitude 两者 显式坐标,优先于 location
units 两者 metric 或 imperial
includeAirQuality 两者 默认跟随插件配置
days 两者 0–16;get_weather 默认 3,get_weather_forecast 默认 5
includeHourly 预报 从当前起最多 48 小时逐小时
date 预报 YYYY-MM-DD,返回该日 24 条逐小时;必要时自动扩到 16 天窗口

命令行示例

适合写在 AGENTS.md / 系统提示里,让 Agent 用命令代替猜测:

dsh-weather 上海 --days 7
dsh-weather "New York" --units imperial --json | jq '.current.uvIndex'
dsh-weather --lat -6.21 --lon 106.85 --date 2026-10-07 --json

适用场景与注意

适合谁: 需要在 DSH 或任意 MCP/shell Agent 中查询全球实况、1–16 日预报、UV、日出日落与 PM2.5/AQI,且不想维护天气 API Key 的开发者。

权限与安全: 插件以当前 DSH 进程权限访问网络并执行逻辑;安装前应自行审阅 GitHub 源码 与 MIT 许可证,确认符合你的环境策略。联网请求会打到 Open-Meteo(及 auto 模式下的 wttr.in 回退)。

生态说明: DSH 强调「一切皆插件」;SkillHub 目录页 为社区收录,并非 DeepSeek 官方应用商店。

结尾

dsh-plugin-weather 用两个 Agent 工具覆盖实况、预报与空气质量,数据来自 Open-Meteo、免 Key,并可通过 MCP 与 dsh-weather CLI 延伸到 Cursor、Claude Code 等运行时。目录与文档:

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

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

Xiaoye