存量MCP协议转化中模版配置说明
Nacos MCP 存量服务模版配置
在添加tool的时候通过协议转化配置配置网关的模版
模版配置说明
模版是一个JSON配置,有如下的字段
- requestTemplate 请求参数模版
- responseTemplate 返回体模版
- argsPosition 参数位置映射信息
请求参数以及返回体模版
requestTemplate 和 responseTemplate 和 Higress定义的模版参数一致,可以参考文档配置
参数位置信息配置
Higress 支持配置参数的位置信息,我们通过通过argsPosition支持,argsPosition指定参数的位置,支持的值为
- query
- path
- header
- cookie
- body
这个字段的值对应于Higress的
tools[].args[].position
示例
{ "requestTemplate": { "url": "/v3/weather/weatherInfo", "argsToUrlParam": true, "method": "GET" }, "responseTemplate": { "body": "weather info {{ .weather }}" }, "argsPosition": { "city": "query" }}
在模版中直接引用nacos配置
可以在模版中直接引用nacos配置,作为模版的值,引用的语法为${nacos.dataId/group}
例如要引用的配置的dataid 为 appCode, 分组为 data,则模版中nacos配置引用的写法为${nacos.appCode/data}
如果配置本身是json格式,则可以使用jsonpath引用配置中具体的json object的属性值,例如 appCode/data 的值为 {"a": "b"}
则可以通过 {{ ${nacos.appCode/data}.a }}
引用appCode中的a的值 b
如果配置本身不是json格式,则会将整个配置的值作为string填充到引用处。
例如对amap的key进行引用,首先创建一个配置存储amap的key,例如存储在 dataId 为appKey, 分组为amap的配置中,配置内容为 {"data": "xxxx"}
,则可以通过一下例子使用对应的key
{ "requestTemplate": { "url": "/v3/weather/weatherInfo?key={{ ${nacos.appKey/amap}.data }}", "argsToUrlParam": true, "method": "GET" }, "responseTemplate": { "body": "response value {{ .value }}" }}