MCP 协议简介与架构
MCP(Model Context Protocol)是一种开放协议,旨在标准化应用程序向大语言模型提供上下文的方式。你可以把它理解为 AI 应用领域的 USB-C 端口:就像 USB-C 统一了设备连接外设的标准一样,MCP 让 AI 模型能够以统一的方式接入不同的数据源和工具。
核心架构
理解架构有助于我们更好地编写客户端代码:
- MCP 主机:希望访问数据的程序,例如 Claude Desktop、IDE 或各类 AI 工具。
- MCP 客户端:负责与服务器保持 1:1 连接的协议客户端。
- MCP 服务器:轻量级程序,通过标准化协议公开特定功能。
- 数据源:包括本地文件、数据库以及通过互联网 API 连接的外部系统。
环境准备
在开始之前,请确保你的开发环境满足以下要求:
- Node.js 版本:建议 >= 18.20.4。版本过低可能导致
npx命令执行异常。 - 高德地图 API Key:你需要申请
AMAP_MAPS_API_KEY。具体文档可参考 高德地图 MCP 服务文档。
Python 客户端实战
使用 Python SDK 是最直接的集成方式。首先安装依赖:
pip install mcp
下面是一个完整的异步调用示例。这段代码展示了如何启动 npx 进程作为服务端,并通过 stdio 传输层建立会话。
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": "your_api_key_here"} # 替换为你的实际 Key
)
async def run():
# 建立 stdio 连接
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
# 初始化会话
session.initialize()
tools = session.list_tools()
(, tools)
result = session.call_tool(
,
arguments={: }
)
(, result)
__name__ == :
asyncio.run(run())


