文档首页/ 智果(AgentArts)智能体平台/ 托管与运行智能体/ 网关/ 示例:集成高德 MCP 服务实现旅行攻略制定
更新时间:2026-09-24 GMT+08:00
分享

示例:集成高德 MCP 服务实现旅行攻略制定

本示例介绍如何通过集成高德的MCP服务来实现旅行攻略的制定。

集成高德的MCP服务实现旅行攻略制定

  1. 在高德开放平台创建并获取API Key。

    高德MCP如下,使用前,请参考高德开放平台文档,创建获取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

      委托

      使用平台的默认值。

      入网配置

      使用默认网关“defaultgw”即可。

      入站身份认证

      选择API Key认证。

      API Key名称

      可自定义。

      日志记录

      选择开启。

      图1 填写网关基础信息与权限身份认证
    3. 单击“创建Target”,配置高德MCP服务。
      表2 高德Target配置

      参数

      说明

      名称

      可自定义,例如“gaodemap”。

      描述(可选)

      可自定义。

      Target协议

      选择“MCP”协议。

      类型

      选择“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 创建出站身份
      图3 配置出站身份认证
    4. 配置完成后,单击“确定”创建Target。
      Target创建完成后,回到“创建网关”页面。
      1. 开启“语义检索”,其他使用默认即可。
      2. 高级配置选择“公网访问”,开启会话保持。
      图4 配置语义检索
    5. 单击“创建网关”。

  3. 通过控制台调测网关。

    1. 在网关列表中单击已创建的网关名称。
    2. 在“调测”页签,单击“连接测试”,待连接成功后单击“下一步”。
      图5 调测网关
    3. 在“工具检索”页面,检索框中输入“天气”,单击“开始检索”,然后单击“下一步”。
      图6 工具检索
    4. 进入“工具调试”页面,选择“gaodemap_maps_weather”,参考图7设置请求参数,单击“开始调试”,即可查看到调试结果。
      在工具列表中关于各工具的介绍请参考高德开放平台MCP Server介绍。
      图7 查询天气

  4. 通过调用代码调测网关。

    1. 网关创建完成后,回到网关列表页面,单击网关名称,进入网关详情页面。
      图8 网关列表
    2. 在网关详情页面获取网关URL(即MCP调用URL)。
      图9 获取网关URL
    3. 在网关详情页面单击URN链接。进入Agent Identity页面,获取网关的API Key。
      图10 单击URN链接
      图11 获取网关API Key
    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协议版本 
              "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))

      关于其他的调用方法示例可参考调测与调用MCP Target。

    5. 查看调试结果。
      图12 调试结果

相关文档