跳转到内容
Nacos3.0 开源开发者沙龙·上海站 Agent & MCP 专场 PPT 下载点此了解

存量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 }}"
}
}