Python 实现 MCP 客户端调用高德地图天气查询示例
简介
MCP(Model Context Protocol)是一种开放协议,它标准化了应用程序向 LLM 提供上下文的方式。可以将 MCP 视为 AI 应用程序的 USB-C 端口。正如 USB-C 提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP 提供了一种将 AI 模型连接到不同数据源和工具的标准化方式。
架构
- MCP 主机:希望通过 MCP 访问数据的程序,例如 Claude Desktop、IDE 或 AI 工具
- MCP 客户端:与服务器保持 1:1 连接的协议客户端
- MCP 服务器:轻量级程序,每个程序都通过标准化模型上下文协议公开特定功能
- 本地数据源:MCP 服务器可以安全访问的您的计算机文件、数据库和服务
- 远程服务:MCP 服务器可通过互联网(例如通过 API)连接到的外部系统
官方资源
高德地图 MCP 客户端示例
前置准备
- Node.js 下载:https://nodejs.org/zh-cn/download
- 注意:Node 版本 >= 18.20.4,版本太低无法执行 npx 命令。
- 高德地图文档(申请 AMAP_MAPS_API_KEY):https://lbs.amap.com/api/mcp-server/summary
高德地图 MCP 服务 tools 列表包含 maps_weather 等工具,用于根据城市名称或者标准 adcode 查询指定城市的天气。
Python SDK 客户端
安装依赖:
pip install mcp
代码示例:
import asyncio
from mcp import ClientSession, StdioServerParameters, types
from mcp.client.stdio import stdio_client
server_params = StdioServerParameters(
command="npx",
args=[, ],
env={: }
)
():
stdio_client(server_params) (read, write):
ClientSession(read, write) session:
session.initialize()
tools = session.list_tools()
(, tools)
result = session.call_tool(, arguments={: })
(, result)
__name__ == :
asyncio.run(run())


