MCP 简介与架构
MCP(Model Context Protocol)是一种开放协议,标准化了应用程序向 LLM 提供上下文的方式。你可以把它理解为 AI 应用的 USB-C 端口:正如 USB-C 统一了设备连接标准,MCP 让 AI 模型能够以统一方式接入不同的数据源和工具。
在架构上,主要包含以下角色:
- MCP 主机:希望访问数据的程序,如 Claude Desktop、IDE 或 AI 工具。
- MCP 客户端:与服务器保持 1:1 连接的协议客户端。
- MCP 服务器:轻量级程序,通过标准化协议公开特定功能。
- 数据源:包括本地文件、数据库以及可通过互联网连接的外部系统。
环境准备
运行 MCP 服务通常依赖 Node.js 环境。请确保你的 Node 版本不低于 18.20.4,旧版本可能无法执行 npx 命令。
关于高德地图 MCP 服务,你需要先申请 AMAP_MAPS_API_KEY。服务支持的工具列表可以通过官方文档查看,其中核心功能包括根据城市名称或 adcode 查询天气、获取 POI 详情等。
Python SDK 实现
Python 生态中,我们可以使用官方的 mcp 库来快速构建客户端。首先安装依赖:
pip install mcp
接下来是核心代码。这里我们配置 StdioServerParameters 来启动高德地图的 MCP 服务器进程,并通过异步会话进行交互。
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": "xxxxx"}
)
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())


