
# 示例：集成高德的MCP服务实现旅行攻略制定
本示例介绍如何通过集成高德的MCP服务来实现旅行攻略的制定。
#### 集成高德的MCP服务实现旅行攻略制定
1. 在高德开放平台创建并获取API Key。 
   高德MCP如下，使用前，请参考[高德开放平台文档](https://lbs.amap.com/api/mcp-server/create-project-and-key)，创建获取API Key。
   ```
   {
     "mcpServers": {
       "amap-maps-streamableHTTP": {
         "url": "https://mcp.amap.com/mcp?key=您在高德官网上申请的key"
       }
     }
   }
   ```
   
   
2. 在AgentArts平台创建网关。 
   网关创建完成后，您可以通过控制台调测网关，具体请参考[3]，也可以在Python客户端通过调用代码调测网关，具体请参考[4]。
   1. 在AgentArts平台左侧导航栏中选择"开发中心 \> 组件库"，并进入"网关"页面，单击"创建网关"。
   
   2. 填写网关基础信息并配置权限与身份认证。参考下表进行配置。
      表1网关基础信息与权限身份认证配置 
      | 参数        | 说明            |
      |:---|:---|
      | 名称        | 可自定义。         |
      | 描述（可选）    | 网关的描述信息，可自定义。 |
      | MCP 版本    | 2025-03-26    |
      | 委托        | 使用平台的默认值。     |
      | 入站身份认证    | 选择API Key认证。  |
      | API Key名称 | 可自定义。         |
      | 日志记录      | 选择开启。         |
         
      图1填写网关基础信息与权限身份认证   
      ![](https://support.huaweicloud.com/highcode-agentarts/zh-cn_image_0000002630304656.png "点击放大") 
   
   3. 单击"创建Target"，配置高德MCP服务。
      表2高德Target配置 
      | 参数     | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
      |:---|:---|
      | 名称     | 可自定义，例如"target-gaode"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
      | 描述（可选） | 可自定义。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
      | 类型     | 选择"MCP"，使用现成的高德MCP服务，不需要使用直接对接外部REST API的方式。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
      | 传输方式   | 选择"Streamable HTTP"，与高德MCP的调用方式保持一致。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
      | MCP地址  | 填写：https://mcp.amap.com/mcp                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
      | 出站身份认证 | 选择"API Key"，单击"创建出站身份"，参数配置如下： - 身份名称：可填写为"gaodemcp"。  - 认证类型：选择"API Key"。  - API Key的值：填写高德开发平台中创建的API Key。   出站身份创建完成后，返回"创建Target"页面，选择已创建的出站身份。 - 位置：选择"查询参数"。  - 参数名称：填写为key。  - 前缀：不填。   图2创建出站身份 ![](https://support.huaweicloud.com/highcode-agentarts/zh-cn_image_0000002588703040.png "点击放大") 图3配置出站身份认证 ![](https://support.huaweicloud.com/highcode-agentarts/zh-cn_image_0000002680426640.png "点击放大") |
         
      
   
   4. 配置完成后，单击"确定"创建Target。
      Target创建完成后，回到"创建网关"页面。
      1. 开启"语义检索"，其他使用默认即可。
      
      2. 高级配置选择"公网访问"。
      
      
      图4配置语义检索   
      ![](https://support.huaweicloud.com/highcode-agentarts/zh-cn_image_0000002664684205.png "点击放大") 
   
   5. 单击"创建网关"。
    
   
   
3. 通过控制台调测网关。
   
   1. 在网关列表中单击已创建的网关名称。
   
   2. 在"调测"页签，单击"连接测试"，待连接成功后单击"下一步"。
      图5调测网关   
      ![](https://support.huaweicloud.com/highcode-agentarts/zh-cn_image_0000002664830557.png "点击放大") 
   
   3. 在"工具检索"页面，检索框中输入"天气"，单击"开始检索"，然后单击"下一步"。
      图6工具检索   
      ![](https://support.huaweicloud.com/highcode-agentarts/zh-cn_image_0000002664846613.png "点击放大") 
   
   4. 进入"工具调试"页面，选择"target-gaode_maps_weather"，参考[图7]设置请求参数，单击"开始调试"，即可查看到调试结果。
      在工具列表中关于各工具的介绍请参考[高德开放平台MCP Server介绍](https://lbs.amap.com/api/mcp-server/summary)。
      图7查询天气   
      ![](https://support.huaweicloud.com/highcode-agentarts/zh-cn_image_0000002634568776.png "点击放大") 
   
   
   
   
4. 通过调用代码调测网关。
   
   1. 网关创建完成后，回到网关列表页面，单击网关名称，进入网关详情页面。
      图8网关列表   
      ![](https://support.huaweicloud.com/highcode-agentarts/zh-cn_image_0000002634409192.png "点击放大") 
   
   2. 在网关详情页面获取网关URL。
      图9获取网关URL   
      ![](https://support.huaweicloud.com/highcode-agentarts/zh-cn_image_0000002664848461.png "点击放大") 
   
   3. 在网关详情页面单击URN链接。进入Agent Identity页面，获取网关的API Key。
      图10单击URN链接   
      ![](https://support.huaweicloud.com/highcode-agentarts/zh-cn_image_0000002664848689.png "点击放大")
      图11获取网关API Key   
      ![](https://support.huaweicloud.com/highcode-agentarts/zh-cn_image_0000002634409896.png "点击放大") 
   
   4. 参考如下代码示例，将API Key及gateway_url替换为上述步骤中获取的值，并配置MCP_SESSION_ID，配置后在Python客户端运行。
      ```
      import requests
      import json
      import re
      def call_tool(gateway_url, access_token, tool_name, arguments):
          headers = {
              "Content-Type": "application/json",
              "Accept": "application/json, text/event-stream",
              "mcp-session-id": "<MCP_SESSION_ID>",  # MCP会话ID，相同的sessionid会使用同一网关资源，调用时请配置此参数，例如：4ada96ff-1e16-4e5b-8fb4-b3f0f207a4f3
              "Mcp-Protocol-Version": "2025-03-26",   # MCP协议版本，2025-06-18版本新增请求头 
              "Authorization": f"Bearer {access_token}"
          }
          payload = {"jsonrpc": "2.0","id": "call-tool-request","method": "tools/call","params": {"name": tool_name,"arguments": arguments}}
          response = requests.post(gateway_url, headers=headers, json=payload) # 若需要忽略ssl校验，可补充参数verify=False
          raw = response.content.decode('utf-8', errors='replace')
          ct = response.headers.get('content-type', '')
          if 'text/event-stream' in ct:
              for line in raw.strip().split('\n'):
                  if line.startswith('data:'):
                      try:
                          return json.loads(line[5:].strip())
                      except json.JSONDecodeError:
                          continue
              m = re.search(r'\{.*\}', raw, re.DOTALL)
              if m:
                  return json.loads(m.group())
          try:
              return json.loads(raw)
          except json.JSONDecodeError:
              print(f"[Fail]: {raw[:200]}")
              return None
      gateway_url = "<gateway_url>"   # 网关接口地址（业务API调用入口）
      access_token = "<API_KEY>"      # 认证凭证：APIKey认证直接填写密钥；无认证则留空/删除
      tool_name = "x_agentarts_gateway_tool_semantic_search"    # 语义检索调用的工具名称，固定为 "x_agentarts_gateway_tool_semantic_search"
      arguments = {"query": "查询杭州的天气"}        # 语义检索调用入参
      result = call_tool(gateway_url, access_token, tool_name, arguments)
      if result:
          print(json.dumps(result, indent=2, ensure_ascii=False))
      ```
      关于其他的调用方法示例可参考[使用网关](https://support.huaweicloud.com/highcode-agentarts/agentarts_10_026.html)。
      
   
   5. 查看调试结果。
      图12调试结果   
      ![](https://support.huaweicloud.com/highcode-agentarts/zh-cn_image_0000002664835297.png "点击放大") 
   
   
   
   
 
