简介
MCP(Model Context Protocol)是一种开放协议,旨在标准化应用程序向大语言模型提供上下文的方式。你可以把它理解为 AI 应用的 USB-C 接口——就像 USB-C 统一了设备连接一样,MCP 让 AI 模型能更便捷地连接到各类数据源和工具。
架构概览
在 MCP 体系中,主要包含以下几个角色:
- MCP 主机:希望访问数据的程序,比如 Claude Desktop 或 IDE。
- MCP 客户端:负责与服务器建立 1:1 连接的协议端点。
- MCP 服务器:轻量级程序,通过标准协议暴露特定功能。
- 数据源:包括本地文件、数据库或远程 API 服务。
环境准备
要运行高德地图的 MCP 服务,首先需要确保你的 Node.js 环境满足要求。建议版本不低于 18.20.4,否则可能无法顺利执行 npx 命令。
此外,你需要申请一个高德地图的 AMAP_MAPS_API_KEY。获取地址可以参考官方文档。拿到密钥后,我们将通过环境变量传递给 MCP 服务器。
Python 客户端实现
我们使用官方的 Python SDK 来构建客户端。首先安装依赖:
pip install mcp
接下来是核心代码。这里的关键在于配置 StdioServerParameters,指定启动 npx 命令并传入高德的服务包。注意环境变量中必须填入你申请的 API Key。
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():
# 建立通信通道
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# 列出可用工具
tools = await session.list_tools()
(, tools)
result = session.call_tool(
,
arguments={: }
)
(, result)
__name__ == :
asyncio.run(run())


