MCP(Model Context Protocol)是一种开放协议,标准化了应用程序向大语言模型提供上下文的方式。你可以把它理解为 AI 应用的 USB-C 接口:就像 USB-C 统一了设备连接标准一样,MCP 让 AI 模型能更规范地接入各种数据源和工具。
架构概览
在 MCP 体系中,主要包含以下几个角色:
- MCP 主机:希望访问数据的程序,比如 Claude Desktop、IDE 或各类 AI 工具。
- MCP 客户端:与服务器保持 1:1 连接的协议客户端。
- MCP 服务器:轻量级程序,通过标准化协议公开特定功能。
- 数据源:包括本地文件、数据库以及远程 API 服务。
环境准备
运行高德地图 MCP 服务需要 Node.js 环境,建议版本不低于 18.20.4,否则可能无法执行 npx 命令。你需要先申请高德地图的 AMAP_MAPS_API_KEY,具体文档可参考高德开发者中心。
Python SDK 实现
使用 Python 作为客户端相对简单,核心库是 mcp。安装依赖后,我们可以通过 StdioServerParameters 配置服务端参数,利用 ClientSession 进行交互。
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"} # 替换为你的实际 Key
)
async def run():
# 建立stdio通信通道
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())


