Python 实现 MCP 客户端调用高德地图天气查询示例
Model Context Protocol (MCP) 是一种开放协议,旨在标准化应用程序向大语言模型(LLM)提供上下文的方式。你可以把它理解为 AI 应用的 USB-C 端口,让模型能够安全、统一地连接到各种数据源和工具。
MCP 架构简述
在构建 MCP 客户端之前,了解其基本架构很有必要:
- MCP 主机:希望访问数据的程序,如 IDE 或 AI 工具。
- MCP 客户端:负责与服务器保持 1:1 连接的协议端点。
- MCP 服务器:轻量级程序,通过标准协议公开特定功能。
- 数据源:包括本地文件、数据库或远程 API 服务。
环境准备
要运行高德地图的 MCP 服务,首先需要确保 Node.js 环境满足最低版本要求。
注意:Node 版本建议 >= 18.20.4,旧版本可能无法正确执行
npx命令。
安装 Python SDK:
pip install mcp
获取高德地图 API Key 后,即可开始编写客户端代码。
Python 客户端实现
下面是一个完整的异步调用示例。这段代码展示了如何初始化会话、列出可用工具以及调用具体的天气查询接口。
import asyncio
from mcp import ClientSession, StdioServerParameters, types
from mcp.client.stdio import stdio_client
server_params = StdioServerParameters(
command="npx",
args=["-y", "@amap/amap-maps-mcp-server"],
env={"AMAP_MAPS_API_KEY": "你的 API_KEY"}
)
async def run():
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# 查看当前可用的工具列表
tools = await session.list_tools()
print("工具列表:", tools)
# 调用天气查询工具
result = session.call_tool(
,
arguments={: }
)
(, result)
__name__ == :
asyncio.run(run())


