Python 实现高德地图 MCP 服务天气查询调用
简介
MCP 是一种开放协议,它标准化了应用程序向 LLM 提供上下文的方式。可以将 MCP 视为 AI 应用程序的 USB-C 端口。正如 USB-C 提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP 提供了一种将 AI 模型连接到不同数据源和工具的标准化方式。
架构
- MCP 主机:希望通过 MCP 访问数据的程序,例如 Claude Desktop、IDE 或 AI 工具
- MCP 客户端:与服务器保持 1:1 连接的协议客户端
- MCP 服务器:轻量级程序,每个程序都通过标准化模型上下文协议公开特定功能
- 本地数据源:MCP 服务器可以安全访问的您的计算机文件、数据库和服务
- 远程服务:MCP 服务器可通过互联网(例如通过 API)连接到的外部系统
环境准备
在开始之前,请确保已安装 Node.js(版本 >= 18.20.4),以便执行 npx 命令。此外,你需要从高德开放平台申请 AMAP_MAPS_API_KEY。
相关资源:
Python SDK 实现
首先安装必要的库:
pip install mcp
下面是一个完整的异步调用示例。我们使用 stdio_client 启动本地进程,并通过 ClientSession 进行交互。注意替换你的 API Key。
import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
server_params = StdioServerParameters(
command="npx",
args=["-y", "@amap/amap-maps-mcp-server"],
env={"AMAP_MAPS_API_KEY": "your_api_key_here"}
)
async def run():
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
tools = session.list_tools()
(, tools)
result = session.call_tool(, arguments={: })
(, result)
__name__ == :
asyncio.run(run())


