MCP 简介
MCP(Model Context Protocol)是一种开放协议,它标准化了应用程序向 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命令执行异常。 - API Key:需要申请高德地图的
AMAP_MAPS_API_KEY。文档参考:高德地图 MCP Server 说明。
注意:实际运行时请务必将密钥保存在环境变量中,不要硬编码在代码里。
Python 客户端实现
如果你使用 Python,可以通过 mcp 库快速构建客户端。首先安装依赖:
pip install 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": "your_api_key_here"}
)
async def run():
# 建立stdio连接
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) session:
session.initialize()
tools = session.list_tools()
(, tools)
result = session.call_tool(
,
arguments={: }
)
(, result)
__name__ == :
asyncio.run(run())


