Higress 墨迹天气查询 MCP Server 实战:零代码将阿里云市场天气 API 接入 AI Agent
Higress 墨迹天气查询 MCP Server 实战零代码将阿里云市场天气 API 接入 AI Agent【免费下载链接】higress AI Gateway | AI Native API Gateway项目地址: https://gitcode.com/GitHub_Trending/hi/higress本文基于 Higress 开源仓库中的墨迹天气查询 MCP Serverweather-query展开讲解如何通过 Higress 的 MCPModel Context Protocol能力把阿里云云市场的墨迹天气专业版 API 封装成可供 AI Agent 直接调用的 MCP 工具。读者将掌握云市场 API 的订阅与 AppCode 配置、REST-to-MCP 免代码转换配置的完整结构以及九大天气工具实况、15 天预报、24 小时预报、AQI、天气预警、生活指数、短时预报、限行数据等的参数与返回字段并最终把 MCP Server 构建、部署到 Higress 网关。什么是墨迹天气查询 MCP Serverweather-query是 Higress 仓库 plugins/wasm-go/mcp-servers/mcp-weather-query 目录下的一个 MCP Server 示例。它是一个综合性的天气查询服务底层对接阿里云云市场「墨迹天气专业版经纬度全国天气查询预报、数据灾害预警空气质量接口」覆盖全国 5500 城市的天气信息提供 AQI 预报、实时天气、15 天预报等能力帮助 AI Agent 为用户规划日常活动、安排出行。Higress 本身是一个基于 Envoy 的 AI 原生 API 网关其插件机制原生支持托管 MCP ServerMCPModel Context Protocol本质上是一种面向 AI 的 API 协议让 AI Agent 更容易调用各类工具与服务。Higress 为这些工具调用提供了统一的认证授权、限流与可观测能力详见 plugins/wasm-go/mcp-servers/README.md。weather-query最大的特点在于它不需要编写任何 Go 代码而是通过 Higress 内置的 REST-to-MCP 能力用一份 YAML 配置即可把已有 REST API 转换为 MCP 工具。云市场 API 与 Higress MCP 服务的结合模式阿里云云市场是生态伙伴的交易服务平台提供覆盖应用开发、身份验证与金融、车辆交通与物流、企业服务、短信与运营商、AI 应用与 OCR、生活服务等多个类目的 API 服务。云市场 API 依托 Higress 提供 MCP 服务的基本模式是在云市场完成 API 订阅获取 AppCode将 AppCode 配置到 Higress MCP Server 的配置中通过 Higress 对外暴露 MCP 服务AI Agent 即可无缝集成云市场 API。订阅 API 并获取 AppCode三步流程按照 README_ZH.md 的说明接入分为三步订阅 API进入墨迹天气 API 详情页订阅该 API可以优先使用免费试用额度获取并配置 AppCode前往云市场用户控制台使用阿里云账号登录后查看已订阅 API 服务的 AppCode并配置到 Higress MCP Server 的配置中。注意AppCode 与订阅的 API 服务一一关联所有已订阅 API 服务共用同一个 AppCode因此只需一个 AppCode 即可访问所有已订阅的 API查看额度云市场用户控制台会实时展示已订阅的预付费 API 服务的可用额度若免费试用额度用完可以重新订阅。REST-to-MCP 配置深度解析weather-query的完整配置位于 mcp-server.yaml同时目录下还提供了 OpenAPI 3.0.1 规范的 api.json 作为接口定义依据。下面逐段拆解这份配置。server 段MCP Server 身份与全局配置server: name: weather-query config: appCode: nameMCP Server 的名称用于在 Higress 中标识并路由请求部署后必须与插件配置中的服务名保持一致config.appCode在云市场控制台获取的 AppCode填入后用于所有工具的 API 认证。tools 段声明式定义 MCP 工具每个工具通过name、description、args、requestTemplate、responseTemplate五个部分声明。以「天气实况」为例- name: weather-condition description: 提供温度、湿度、风向、风速、紫外线、气压、体感温度等实时数据 args: - name: lat description: 纬度 type: string required: true position: body - name: lon description: 经度 type: string required: true position: body - name: token description: 请求token默认参数必填 type: string position: body requestTemplate: url: https://finaljwd.market.alicloudapi.com/whapi/json/aliweather/condition method: POST headers: - key: Content-Type value: application/x-www-form-urlencoded - key: Authorization value: APPCODE {{.config.appCode}} - key: X-Ca-Nonce value: {{uuidv4}}关键点说明参数声明lat纬度与lon经度为必填项position: body表示参数随 POST 请求体提交token是默认认证参数请求模板使用 Higress REST-to-MCP 的 GJSON Template 语法参考 plugins/wasm-go/mcp-servers/README.md通过{{.config.appCode}}引用 server 段配置、{{.args.argName}}引用工具参数、{{uuidv4}}生成 UUID用于X-Ca-Nonce防重放请求头认证头阿里云云市场 API 使用Authorization: APPCODE AppCode标准鉴权方式。responseTemplate 段把 API 响应转成 AI 友好格式每个工具都通过responseTemplate.prependBody在原始 JSON 响应前附加一段 Markdown 格式的字段说明帮助 LLM 理解返回数据的语义。例如「天气实况」的响应模板会说明- **data.condition.temp**: 温度 (Type: string) - **data.condition.humidity**: 湿度 (Type: string) - **data.condition.windDir**: 风向 (Type: string) - **data.condition.windSpeed**: 风速 (Type: string) - **data.condition.realFeel**: 实际体感温度 (Type: string) - **data.condition.uvi**: 紫外线指数 (Type: string) - **data.condition.pressure**: 气压 (Type: string) - **data.condition.sunRise / sunSet**: 日出、日落时间这种字段说明 原始响应的组合既保留了数据的完整性又显著降低了 AI 解析响应时的歧义。九大天气工具详解weather-query一共暴露 9 个 MCP 工具全部通过 POST 方法调用均需要携带token认证参数。以下逐一说明每个工具的用途、适用场景、请求参数与核心返回字段返回字段依据 api.json 与 mcp-server.yaml 整理。1. AQI 预报 5 天aqi-forecast5days用途提供未来 5 天内的空气质量指数AQI数据使用场景了解未来几天空气质量变化趋势如旅游计划、户外活动安排请求参数lat纬度必填、lon经度必填、token必填核心返回字段data.aqiForecast[]每个元素包含date预报日期、publishTime发布时间、value空气质量指数。2. 天气实况weather-condition用途提供当前位置的实时天气数据包括温度、湿度、风速、紫外线、气压、体感温度等多个气象要素使用场景需要即时天气信息的应用如天气预报 App、智能穿戴设备请求参数lat、lon、token均必填核心返回字段data.condition包含temp温度、humidity湿度、windDir风向、windLevel风力等级、windSpeed风速、realFeel体感温度、uvi紫外线指数、pressure气压、condition天气状况、sunRise/sunSet日出日落、tips天气提示等。3. 天气预报 15 天weather-forecast15days用途预测未来 15 天的天气情况包括每日最高最低气温、天气状况等使用场景长期旅行规划、农业种植周期管理请求参数lat、lon、token均必填核心返回字段data.forecast[]包含predictDate预报日期、tempDay/tempNight昼夜温度、conditionDay/conditionNight昼夜天气状况、windDirDay/windDirNight、windLevelDay/windLevelNight、sunrise/sunset日出日落、moonphase月相等。4. 天气预报 24 小时weather-forecast24hours用途提供未来 24 小时内逐小时天气预报使用场景需要精确短期天气信息的服务如航班调度、户外赛事组织请求参数lat、lon、token均必填核心返回字段data.hourly[]包含hour小时、temp温度、condition天气状况、humidity湿度、pressure气压、realFeel实感温度、uvi紫外线指数、windDir/windSpeed等。5. 天气预警wather-alert用途发布针对特定地区的极端天气警告信息使用场景灾害预防系统、公共安全通知请求参数lat、lon、token均必填核心返回字段data.alert[]包含title预警标题、name预警名称、type预警类型如雷雨大风蓝色、level预警级别如蓝色、content预警内容、pub_time发布时间。6. 生活指数life-index用途根据当前天气条件给出穿衣建议、洗车指数等生活指南使用场景生活方式应用、健康管理软件请求参数lat、lon、token均必填核心返回字段data.liveIndex以日期为键的对象每项指数包含name指数名称、status状态、desc描述、day日期。7. 短时预报next-hour-forecast用途提供未来 2 小时内的详细天气预报使用场景需要短时间内天气更新的场景如临时户外活动请求参数lat、lon、token均必填核心返回字段data.sfc包含banner位置天气提示、sfCondition天气条件代码、percent[]逐时段数据含desc天气描述、percent下雨概率、icon图标编号、timestamp。8. 空气质量指数aqi-index用途显示当前地区的主要污染物浓度及总体空气质量指数使用场景环保监测、健康咨询请求参数lat、lon、token均必填核心返回字段data.aqi包含valueAQI 值、pm25/pm10颗粒物浓度、so2/no2/co/o3二氧化硫、二氧化氮、一氧化碳、臭氧浓度、rank空气质量排名、cityName城市名称、pubtime发布时间戳。9. 限行数据restriction-query用途提供某些城市基于尾号限行政策的车辆通行限制信息使用场景交通管理、出行助手类应用请求参数lat、lon、token均必填核心返回字段data.limit[]包含date日期、prompt提示信息以及data.city城市信息cityId、name、pname、counname。注以上工具的 MCP 工具名如aqi-forecast5days、wather-alert以 mcp-server.yaml 中的实际声明为准对应 REST 路径如/whapi/json/aliweather/condition可对照 api.json 中的operationId逐一核对。构建与部署到 Higressweather-query走的是 REST-to-MCP 配置路线无需编译自定义 WASM 二进制但如果需要以插件镜像方式发布或定制可参考仓库提供的通用 MCP Server 构建链路。使用 Makefile 构建 WASM 与镜像plugins/wasm-go/mcp-servers/Makefile 提供了标准构建入口默认SERVER_NAMEquark-search构建时需覆盖为weather-query# 构建 WASM 二进制 make SERVER_NAMEweather-query build # 构建并推送 Docker 镜像可指定版本 make SERVER_NAMEweather-query SERVER_VERSION1.0.0 build-image make SERVER_NAMEweather-query SERVER_VERSION1.0.0 build-push其中build目标实际执行的是GOOSwasip1 GOARCHwasm go build -buildmodec-shared -o main.wasm main.go产物为main.wasmDockerfileplugins/wasm-go/mcp-servers/Dockerfile基于scratch镜像仅包含 WASM 二进制一个文件镜像体积极小。在 Higress 中启用插件并注入 AppCodeHigress 通过WasmPluginCRD 配置插件参考 samples/wasmplugin/ingress-level-config.yaml 的写法。将weather-query的 mcp-server.yaml 内容整体作为插件配置并把server.config.appCode填入实际申请到的 AppCode 即可。若使用 all-in-one 插件模式还需保证插件配置中的server.name与代码内注册的服务名完全一致详见 plugins/wasm-go/mcp-servers/README.md。此外可通过allowTools白名单控制 AI 可调用的工具范围例如只开放weather-condition与weather-forecast15days两个最常用的工具避免无关工具被误调用。总结墨迹天气查询 MCP Server 是 Higress 云市场 API MCP 集成模式的一个完整范例零代码接入借助 REST-to-MCP 能力仅凭 mcp-server.yaml 一份 YAML 配置就把墨迹天气专业版 API 的 9 个接口全部封装为 MCP 工具AI 友好输出通过responseTemplate.prependBody为每个工具附上字段级语义说明显著提升 LLM 对返回数据的理解准确度统一网关能力AppCode 集中管理、鉴权头统一注入、工具白名单、限流与可观测均由 Higress 网关层承载AI 应用侧无需关心底层 API 细节。对于希望快速把各类云市场 API天气、金融、物流、OCR 等接入 AI Agent 的开发者这份配置即是最佳起步模板复制mcp-server.yaml替换 URL、参数与 AppCode即可完成一个全新 MCP Server 的接入。【免费下载链接】higress AI Gateway | AI Native API Gateway项目地址: https://gitcode.com/GitHub_Trending/hi/higress创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考