更新时间:2026-06-11 GMT+08:00
示例:集成高德的mcp服务实现旅行攻略制定
本示例介绍如何通过集成高德的MCP服务来实现旅行攻略的制定。
集成高德的mcp服务实现旅行攻略制定
- 在高德开放平台创建并获取API Key。 高德MCP如下,使用前,请参考高德开放平台文档,创建获取API Key。
{ "mcpServers": { "amap-maps-streamableHTTP": { "url": "https://mcp.amap.com/mcp?key=您在高德官网上申请的key" } } } - 在AgentArts平台创建网关。 网关创建完成后,您可以通过控制台调测网关,具体请参考3,也可以在Python客户端通过调用代码调测网关,具体请参考4。
- 在AgentArts平台左侧导航栏中选择“开发中心 > 组件库”,并进入“网关”页面,单击“创建网关”。
- 填写网关基础信息并配置权限与身份认证。参考下表进行配置。
表1 网关基础信息与权限身份认证配置 参数
说明
名称
可自定义。
描述(可选)
网关的描述信息,可自定义。
委托
使用平台的默认值。
入站身份认证
选择API Key认证。
API Key名称
可自定义。
日志记录
选择开启。
图1 填写网关基础信息与权限身份认证
- 单击“创建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 配置出站身份认证
- 配置完成后,单击“确定”创建Target。Target创建完成后,回到“创建网关”页面,高级配置选择“公网访问”后,单击“创建网关”。
- 通过控制台调测网关。
- 在网关列表中单击已创建的网关名称。
- 在“调测”页签,单击“连接测试”,待连接成功后单击“下一步”。 图4 调测网关
- 在“工具列表”选择用于调试的工具,如进行天气查询,选择“target-gaode_maps_weather”,参考图5设置请求参数,单击“开始调试”,即可查看到调试结果。 在工具列表中关于各工具的介绍请参考高德开放平台MCP Server介绍。
- 在Python客户端通过调用代码调测网关。
- 网关创建完成后,回到网关列表页面,单击网关名称,进入网关详情页面。 图6 网关列表
- 在网关详情页面获取网关URL。 图7 获取网关URL
- 在网关详情页面单击URN链接。进入Agent Identity页面,获取网关的API Key。 图8 单击URN链接
图9 获取网关API Key
- 参考如下代码示例,将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调用示例。
- 查看调试结果。 图10 调试结果
- 网关创建完成后,回到网关列表页面,单击网关名称,进入网关详情页面。
父主题: 网关
