文档首页/ 智果(AgentArts)智能体平台/ 高代码开发/ 组件库/ 网关/ 示例:集成高德的mcp服务实现旅行攻略制定
更新时间:2026-06-11 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 网关基础信息与权限身份认证配置

      参数

      说明

      名称

      可自定义。

      描述(可选)

      网关的描述信息,可自定义。

      委托

      使用平台的默认值。

      入站身份认证

      选择API Key认证。

      API Key名称

      可自定义。

      日志记录

      选择开启。

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

      参数

      说明

      名称

      可自定义。

      描述(可选)

      可自定义。

      类型

      选择“MCP”,使用现成的高德MCP服务,不需要使用直接对接外部REST API的方式。

      传输方式

      选择“Streamable HTTP”,与高德MCP的调用方式保持一致。

      MCP地址

      填写:https://mcp.amap.com/mcp

      出站身份认证

      选择“API Key”,单击“创建出站身份”,参数配置如下:

      • 身份名称:可自定义。
      • 认证类型:选择“API Key”。
      • API Key的值:填写高德开发平台中创建的API Key。

      出站身份创建完成后,返回“创建Target”页面,选择已创建的出站身份。

      • 位置:选择“查询参数”。
      • 参数名称:填写为key。
      • 前缀:不填。
      图2 创建出站身份
      图3 配置出站身份认证
    4. 配置完成后,单击“确定”创建Target。Target创建完成后,回到“创建网关”页面,高级配置选择“公网访问”后,单击“创建网关”。

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

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

  4. 在Python客户端通过调用代码调测网关。

    1. 网关创建完成后,回到网关列表页面,单击网关名称,进入网关详情页面。
      图6 网关列表
    2. 在网关详情页面获取网关URL。
      图7 获取网关URL
    3. 在网关详情页面单击URN链接。进入Agent Identity页面,获取网关的API Key。
      图8 单击URN链接
      图9 获取网关API Key
    4. 参考如下代码示例,将API Key及gateway_url替换为上述步骤中获取的值,在Python客户端运行。
      import requests
      import json
      import re
      def call_tool(gateway_url, access_token, tool_name, arguments):
          headers = {
              "Content-Type": "application/json",
              "mcp-session-id": "<MCP_SESSION_ID>",  # MCP会话ID,从网关响应头(Response Headers)中获取,相同的sessionid会使用同一个sandbox
              "Authorization": f"Bearer {access_token}",
              "Accept": "application/json, text/event-stream"
          }
          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)
          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
      # Example usage
      gateway_url = "<gateway_url>"   # 网关接口地址(业务API调用入口)
      access_token = "<API_KEY>"      # 认证凭证:APIKey认证直接填写密钥;无认证则留空/删除
      tool_name = "gaode-mcp_maps_weather"        # 待调用的工具名称,通过tools/list接口查询获取
      arguments = {"city": "杭州"}                 # 工具调用入参,严格按照工具定义的参数结构填写
      result = call_tool(gateway_url, access_token, tool_name, arguments)
      if result:
          print(json.dumps(result, indent=2, ensure_ascii=False))

      关于tools/list调用示例可参考API Key认证的tools/list调用示例

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

相关文档