码农之家

专注优质代码开发,为软件行业发展贡献力量

Python实现 MCP 客户端调用(高德地图 MCP 服务)查询天气示例

简介

MCP 是一种开放协议,它标准化了应用程序向 LLM 提供上下文的方式。可以将 MCP 视为 AI 应用程序的 USB-C 端口。正如 USB-C 提供了一种将设备连接到各种外围设备和配件的标准化方式一样,MCP 提供了一种将 AI 模型连接到不同数据源和工具的标准化方式。

架构

MCP 主机:希望通过 MCP 访问数据的程序,例如 Claude Desktop、IDE 或 AI 工具
MCP 客户端:与服务器保持 1:1 连接的协议客户端
MCP 服务器:轻量级程序,每个程序都通过标准化模型上下文协议公开特定功能
本地数据源:MCP 服务器可以安全访问的您的计算机文件、数据库和服务
远程服务:MCP 服务器可通过互联网(例如通过 API)连接到的外部系统
注: Node版本 >= 18.20.4 ,版本太低无法执行 npx 命令。

步骤

1、首先需要申请高低地图的MCPAPI_KEY,进入这个链接https://lbs.amap.com/api/mcp-server/summary,登录进入控制台后,点击我的应用,点击创建应用,创建完成后,点击添加KEY,需要选择WEB服务,点击提交即可。


2、创建完成后,即可开始写代码啦
首先python需要安装MCP插件
pip install mcp

然后再python中编写以下代码即可

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": "9d14a7269f357dfc7d759a3d6a820ea3"
    }
)

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 = await session.call_tool("maps_weather", arguments={"city": "昆明"})
            print("调用结果:", result)

if __name__ == "__main__":
    asyncio.run(run())

以上就是利用python调用地图的一个简单示例


阿斯怒

0 评论数