
Higress 路径规划 MCP Server 实战基于 REST-to-MCP 配置接入云市场路线规划 API【免费下载链接】higress AI Gateway | AI Native API Gateway项目地址: https://gitcode.com/GitHub_Trending/hi/higress本篇以 Higress 仓库中plugins/wasm-go/mcp-servers/mcp-route-planning目录下的路径规划 MCP Server 文档与配套配置为主体系统讲解如何把阿里云云市场的路径规划 API公交、步行、骑行、驾车、距离测量通过 Higress 的 REST-to-MCP 能力零代码封装为 AI 可直接调用的 MCP 工具读完后你将掌握 AppCode 认证配置、六大工具bus-route、walking-route、elevator-route、bicycle-route、destination-distance、car-route的完整参数用法以及requestTemplate/responseTemplate模板渲染在源码层面的执行机制。一、云市场 API MCP 服务背景阿里云云市场是生态伙伴的交易服务平台其 API 服务涵盖应用开发、身份验证与金融、车辆交通与物流、企业服务、短信与运营商、AI 应用与 OCR、生活服务等多个类目。云市场 API 依托 Higress 提供 MCP 服务开发者只需在云市场完成订阅并获取 AppCode再通过 Higress MCP Server 进行配置即可无缝集成云市场 API 服务。1.1 订阅与 AppCode 获取步骤根据 README_ZH.md 的说明使用流程如下进入路径规划 API 的详情页订阅该 API可优先使用免费试用。该 API 的认证所需 APP Code 需在阿里云 API 市场申请前往云市场用户控制台使用阿里云账号登录后查看已订阅 API 服务的 AppCode并配置到 Higress MCP Server 的config.appCode字段中。注意订阅 API 服务后获得的 AppCode 对该账号订阅的所有 API 服务是相同的只需使用这一个 AppCode 即可访问所有已订阅的服务云市场用户控制台会实时展示已订阅的预付费 API 服务的可用额度若免费试用额度用完可以选择重新订阅。1.2 目录结构与文件角色mcp-route-planning目录下包含三个核心文件各自承担不同职责文件作用README_ZH.md中文功能文档介绍工具用途与核心参数mcp-server.yamlREST-to-MCP 插件配置定义服务端身份、认证模板与 6 个工具的完整参数 schemaapi.json上游 API 的 OpenAPI 3.0.1 规范标题为聚美智数路径规划-路线规划用于描述请求/响应结构二、MCP 服务器功能与工具总览路径规划 MCP Server 提供了一套全面的路线规划解决方案支持公交、步行、自行车骑行、电动车骑行、驾车等多种出行方式的路线规划并提供行程距离测量功能。这些服务帮助用户根据不同需求和偏好选择最合适的出行方案从而提高出行效率并节省时间同时该服务会考虑实际交通状况和个人偏好设置等因素以确保提供的路线是最优解。服务在 mcp-server.yaml 中声明如下节选server: name: route-planning config: appCode: tools: - name: bus-route description: 公交路线规划 # ...server.name为route-planning是 MCP Server 的身份标识请求按该名称路由到此 Serverserver.config.appCode是唯一的服务端配置项存放云市场订阅获得的 AppCode。所有工具的requestTemplate.headers中均通过模板APPCODE {{.config.appCode}}引用它见下文机制说明6 个工具全部采用POST方法调用https://jmlxgh.market.alicloudapi.com域名下的路径规划接口请求体统一为application/x-www-form-urlencoded。三、工具详解与完整参数表以下参数表完整继承自 mcp-server.yaml并补充了源码中确认的语义所有args的position均为body即参数最终会被序列化为 form 表单请求体。3.1 bus-route公交路线规划用途基于用户的起始点与目的地信息计算一条或多条合理的公交乘车路线。使用场景适用于需要乘坐公交车出行的乘客特别是当用户不熟悉当地公交线路或希望找到最快捷、经济的乘车方案时。接口POST https://jmlxgh.market.alicloudapi.com/route/public-transit参数必填说明alternativeRoute否返回方案条数可传入 1-10 的阿拉伯数字代表返回的不同条数date否请求日期例如2023-10-28time否请求时间例如9-54destAddCode否终点所在行政区域编码参考国家行政区域编码表origAddCode否起点所在行政区域编码参考国家行政区域编码表destCityCode是目的地所在城市仅支持 citycode相同时代表同城不同时代表跨城譬如西湖区 citycode 为 330106origCityCode是起点所在城市仅支持 citycode含义同上destination是目的地经纬度经度在前、纬度在后用,分割经纬度小数点后不得超过 6 位origin是起点经纬度格式同destinationmaxTrans否最大换乘次数0 直达、1 最多换乘 1 次 …… 4 最多换乘 4 次multiexPort否地铁出入口数量0 只返回一个地铁出入口1 返回全部地铁出入口nightFlag否是否考虑夜班车0 不考虑1 考虑showFields否返回结果控制多个字段以,分割未设置时只返回基础信息类字段strategy否公共交通换乘策略0 推荐模式综合权重同高德 APP 默认1 最经济票价最低2 最少换乘3 最少步行4 最舒适尽可能乘坐空调车5 不乘地铁6 地铁图模式起终点都是地铁站此时 originpoi 及 destinationpoi 为必填项7 地铁优先步行距离不超过 4KM8 时间短模式方案花费总时间最少3.2 walking-route步行路线规划用途为用户提供从一个地点到另一个地点的最佳步行路线。使用场景适合短途旅行或者在不适合开车的情况下使用。接口POST https://jmlxgh.market.alicloudapi.com/route/walk参数必填说明origin是起点经纬度经度在前、纬度在后destination是目的地经纬度格式同上alternativeRoute否返回路线条数1 返回多备选路线中第一条2 返回前两条3 返回三条不传则默认返回一条路线方案showFields否返回结果控制用法同公交工具3.3 elevator-route / bicycle-route电动车 / 自行车骑行路线规划用途分别为电动自行车骑行者和普通自行车骑行者提供优化后的骑行路线建议。适用情况特别适合日常通勤或休闲骑行活动。配置选项与步行路线规划完全一致同样支持设定多条备选路线alternativeRoute与showFields。工具接口elevator-route电动车骑行POST https://jmlxgh.market.alicloudapi.com/route/electric-bicyclebicycle-route自行车骑行POST https://jmlxgh.market.alicloudapi.com/route/ride参数表与 walking-route 相同origin、destination必填alternativeRoute1/2/3、showFields可选。3.4 destination-distance行程距离测量目的估算两个地理位置之间的直线距离或按照特定交通方式进行的距离。应用场景对于需要了解两地间大致距离的用户非常有用。接口POST https://jmlxgh.market.alicloudapi.com/route/distance-measurement参数必填说明origins是出发点经度和纬度用,分隔destination是目的地规则lon,lat经度、纬度用,分割小数点后不得超过 6 位type否路径计算的方式和方法0 直线距离1 驾车导航距离仅支持国内坐标会考虑路况故不同时间请求结果可能不同策略与驾车路径规划接口的strategy4基本一致3 步行规划距离仅支持 5km 之间的距离3.5 car-route驾车路线规划功能描述给定出发点和目的地后系统会综合考虑当前路况、限行规定等因素来推荐最佳驾驶路线。目标群体面向私家车主或职业司机尤其是经常需要长途驾驶的人士。重要特性支持设置避让区域avoidpolygons、特殊车辆类型carType以及不同的驾驶策略strategy等高级选项。接口POST https://jmlxgh.market.alicloudapi.com/route/drive参数必填说明origin是起点经纬度destination是目的地经纬度strategy否驾车算路策略0 速度优先只返回一条路线不一定距离最短1 费用优先不走收费路段且耗时最少2 距离优先仅走距离最短路线可能穿越小路/小区3 速度优先且不走快速路32 默认高德推荐同高德地图 APP 默认33 躲避拥堵34 高速优先35 不走高速36 少收费37 大路优先38 速度最快39 躲避拥堵高速优先40 躲避拥堵不走高速41 躲避拥堵少收费42 少收费不走高速43 躲避拥堵少收费不走高速44 躲避拥堵大路优先45 躲避拥堵速度最快carType否车辆类型0 普通燃油汽车1 纯电动汽车2 插电式混动汽车plate否车牌号码如京AHA322支持 6 位传统车牌和 7 位新能源车牌用于判断限行相关waypoints否途经点坐标串多个途经点按顺序以英文分号;分隔最大支持 16 个途经点avoidpolygons否避让区域默认支持 1 个避让区域每个区域最多 16 个顶点多个区域坐标按顺序以英文竖线符号分隔最大支持 32 个避让区域每个避让区域不能超过 81 平方公里否则避让区域会失效同时传入避让区域及避让道路时仅支持避让道路avoidroad否避让道路名只支持一条避让道路ferry否是否使用轮渡0 使用渡轮1 不使用渡轮originType否起点处道路类型辅助更精准的起点算路0 普通道路、1 高架上、2 高架下、3 主路、4 辅路、5 隧道、7 环岛、9 停车场内部showFields否返回结果控制用法同公交工具四、底层机制REST-to-MCP 是如何执行的以上 6 个工具没有任何 Go 代码实现——它们完全由 YAML 声明式配置驱动由 Higress 内建的 REST-to-MCP 引擎执行。结合 rest_server.go 的源码可以看清完整调用链。4.1 参数按 position 分类body 参数序列化为表单每个RestToolArg都带有Position字段源码注释明确其合法取值为query、path、header、cookie、body见 rest_server.go。路径规划的 6 个工具所有参数均为position: body。在RestMCPTool.Call中工具会先按 position 将参数分组rest_server.go随后发现请求头中已声明Content-Type: application/x-www-form-urlencoded于是走表单分支将 body 参数写入url.Values后调用Encode()生成请求体rest_server.go。这也解释了为何配置里不写body模板、参数却能正确送达——这是 Higress 对参数即表单场景的默认处理。4.2 模板渲染AppCode 认证与防重放 Nonce每次工具调用时引擎先把服务端配置与工具入参注入模板数据templateDataBytes, _ sjson.SetBytes(templateDataBytes, config, serverConfig) templateDataBytes, _ sjson.SetBytes(templateDataBytes, args, t.arguments)见 rest_server.go。随后 URL 与每个 header 作为 GJSON Template 模板执行渲染。以驾车规划为例渲染后发出的请求头为Content-Type: application/x-www-form-urlencoded Authorization: APPCODE 你配置的appCode值 X-Ca-Nonce: 随机UUIDv4其中{{uuidv4}}是模板引擎内置的 UUID 生成函数GJSON Template 包含全部 Sprig 函数每次请求生成不同的 nonce满足云市场 API 网关对请求唯一性的要求。配置值通过.config.appCode、工具参数通过.args.参数名访问二者共同构成了请求模板的变量空间。4.3 响应处理prependBody 前缀拼装路径规划工具没有使用全量重写的responseTemplate.body而使用了prependBody。源码中对应的分支逻辑为当未提供body模板但配置了prependBody/appendBody时最终结果为PrependBody 原始响应 AppendBody的简单拼接rest_server.go。这正是该 MCP Server 采用的策略prependBody中以结构化 Markdown 预先写明了整棵响应 JSON 的字段说明## Response Structure一节含data.strategyList、data.strategyList.paths[].steps[].instruction等每个字段的类型与中文含义结尾以## Original Response分隔随后紧跟原始 API 响应。其工程意义在于大模型在拿到工具结果时字段字典与实际数据同屏呈现无需额外猜解未自描述的 JSON 字段从而显著降低误读概率——这是 Higress MCP 生态中把 schema 知识注入结果上下文的典型做法。4.4 入参 Schema 的自动生成RestMCPTool.InputSchema()会把args逐个转换为 JSON Schema未显式指定type时默认stringrequired: true的参数进入 schema 的required列表rest_server.go。因此本文第三节表格中标注必填的参数正是 AI 客户端在做tools/list时从 MCP Server 拿到的 required 字段——mcp-server.yaml里的required: true声明直接决定了工具调用的合法性约束。五、响应结构解析6 个接口共享统一的响应信封code返回码integer、msg返回码对应描述、taskNo本次请求号、data业务数据。各工具的业务数据差异如下均提取自 mcp-server.yaml 中的responseTemplate.prependBody说明5.1 公交bus-routedata.strategyNum为方案总数data.strategyList内含origin/destination坐标与distance总距离核心是transits[]方案数组每个方案的segments[]是换乘段每段可能含以下子对象bus.buslines[]公交线路明细含name线路名、type如地铁线路、id、start_time/end_time、via_num途经站数、departure_stop/arrival_stop含id、name、location地铁站还含entrance/exit出入口信息、via_stops[]途经站点railway铁路/市域线路段含trip车次号、type车次类型、time耗时、departure_stop/arrival_stop含到发时间大于 24:00 表示跨天、via_stop途径站及停靠分钟数wait、spaces[]仓位费用taxi打车段含distance、drivetime、price预计花费、polyline折线walking步行段含distance米、duration秒与steps[]instruction行走介绍、road道路、polyline折线。5.2 步行 / 电动车 / 自行车三者结构一致data.strategyList.paths[]方案数组每条方案含distance米、duration或cost.duration耗时以及steps[]分段明细——instruction步行/骑行指示、orientation进入道路方向、road_name分段道路名称、step_distance分段距离。5.3 驾车car-routedata.strategyList.paths[]中额外提供restriction0 代表限行已规避或未限行1 代表限行无法规避即该线路有限行路段、steps[]行驶指示instruction/orientation/road_name/step_distance以及方案级taxi_cost预计出租车费用元。5.4 距离测量destination-distancedata.count为结果总数data.results[]每项含origin_id/dest_id坐标序列号从 1 开始、distance路径距离米、duration预计行驶时间秒。六、部署要点与适用前提Higress 版本根据 MCP Server 实现指南MCP Server 插件要求 Higress 版本 2.1.0 或更高REST-to-MCP 能力内建于所有 MCP Server可直接在 all-in-one 插件中使用。name 匹配插件级配置中的server.name必须与路由到该 MCP Server 的声明一致本服务中即route-planning。appCode 必填server.config.appCode留空时Authorization: APPCODE {{.config.appCode}}渲染出的凭证为空所有工具调用都会因上游认证失败而返回错误需在部署前填入云市场控制台获取的 AppCode。额度管理预付费/免费试用额度在云市场用户控制台实时展示免费额度用尽后可重新订阅调用受上游 API 配额限制建议在高斯斯网关层面为对应路由叠加限流策略以保护额度Higress 对工具调用统一提供认证、限流与审计能力详见 MCP Server 实现指南 的 Background 章节。扩展方式若要新增云市场其他类目的 API只需参照 mcp-server.yaml 的tools条目格式追加工具定义——args声明参数、requestTemplate声明上游请求、responseTemplate声明响应包装——无需编写任何 Go 代码这正是该目录作为配置即 MCP Server参考实现的价值所在。综合来看路径规划 MCP Server 展示了 Higress 将云市场订阅制 API转化为AI 原生工具的完整范式声明式配置承担 schema 与认证职责模板引擎承担请求构造与上下文增强职责网关自身承担路由、鉴权与可观测性职责三方分工清晰、可复制性强。【免费下载链接】higress AI Gateway | AI Native API Gateway项目地址: https://gitcode.com/GitHub_Trending/hi/higress创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考