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

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

文章目录

MCP 官网

MCP 官方文档中文版

官方 MCP 服务示例

Github

MCP 市场

在这里插入图片描述

https://mcpmarket.cn/

在这里插入图片描述

https://mcp.so/zh

在这里插入图片描述

简介

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

架构

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

高德地图 MCP 客户端示例

注:Node版本 >= 18.20.4 ,版本太低无法执行 npx 命令。
  • 高德 MCP 服务 tools 列表

高德地图文档(申请 AMAP_MAPS_API_KEY):https://lbs.amap.com/api/mcp-server/summary

在这里插入图片描述
{"tools":[{"description":"根据城市名称或者标准adcode查询指定城市的天气","inputSchema":{"properties":{"city":{"type":"string","description":"城市名称或者adcode"}},"required":["city"],"type":"object"},"name":"maps_weather"},{"description":"查询关键词搜或者周边搜获取到的POI ID的详细信息","inputSchema":{"properties":{"id":{"type":"string","description":"关键词搜或者周边搜获取到的POI ID"}},"required":["id"],"type":"object"},"name":"maps_search_detail"},...]}

python-sdk 客户端

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":"xxxxx"})asyncdefrun():asyncwith stdio_client(server_params)as(read, write):asyncwith 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())
在这里插入图片描述

java-sdk 客户端

<!-- https://mvnrepository.com/artifact/io.modelcontextprotocol.sdk/mcp --><dependency><groupId>io.modelcontextprotocol.sdk</groupId><artifactId>mcp</artifactId><version>0.8.1</version></dependency>
// https://mvnrepository.com/artifact/io.modelcontextprotocol.sdk/mcp implementation("io.modelcontextprotocol.sdk:mcp:0.8.1") 
importio.modelcontextprotocol.client.McpClient;importio.modelcontextprotocol.client.McpSyncClient;importio.modelcontextprotocol.client.transport.ServerParameters;importio.modelcontextprotocol.client.transport.StdioClientTransport;importio.modelcontextprotocol.spec.McpSchema;importorg.junit.jupiter.api.Test;importjava.util.Map;publicclassJunitTest{@Testpublicvoidtest(){ServerParameters params =ServerParameters.builder("npx").args("-y","@amap/amap-maps-mcp-server").addEnvVar("AMAP_MAPS_API_KEY","xxxxx").build();StdioClientTransport transport =newStdioClientTransport(params);McpSyncClient client =McpClient.sync(transport).build(); client.initialize();McpSchema.ListToolsResult toolsList = client.listTools();System.out.println("工具列表:"+ toolsList);McpSchema.CallToolResult mapsWeather = client.callTool(newMcpSchema.CallToolRequest("maps_weather",Map.of("city","福州")));System.out.println("调用结果:"+ mapsWeather.content());}}
在这里插入图片描述

Read more

“现在的AI就像1880年的笨重工厂!”微软CSO斯坦福泼冷水:别急着造神

“现在的AI就像1880年的笨重工厂!”微软CSO斯坦福泼冷水:别急着造神

大模型仍未对上商业的齿轮? 编译 | 王启隆 来源 | youtu.be/aWqfH0aSGKI 出品丨AI 科技大本营(ID:rgznai100) 现在的硅谷,空气里都飘着一股“再不上车就晚了”的焦躁感。 最近 OpenClaw 风头正旺,强势登顶 GitHub,终结了 React 神话,许多人更是觉得“AI 自己干活赚钱”的日子就在明天了。 特别是在斯坦福商学院(GSB)这种地方,台下坐着的都是成天琢磨怎么用下一个技术风口搞个独角兽出来的狠人。 微软的首席科学官(CSO)Eric Horvitz 被请到了这个几乎全美最想用 AI 变现的礼堂里。作为从上世纪 80 年代就开始搞 AI 的绝对老炮、也是微软技术底座的“扫地僧”,这位老哥并没有顺着台下的胃口,去吹捧下个月大模型又要颠覆什么行业,而是兜头给大家浇了一盆带点学术味的冷水。 他讲了一个挺有画面感的比喻:大家都在聊

By Ne0inhk
Godot被AI代码“围攻”!维护者崩溃发声:“不知道还能坚持多久”

Godot被AI代码“围攻”!维护者崩溃发声:“不知道还能坚持多久”

整理 | 郑丽媛 出品 | ZEEKLOG(ID:ZEEKLOGnews) 当大模型能在几秒钟内生成一段“看起来像那么回事”的补丁时,开源社区却开始付出另一种代价。 最近,开源游戏引擎 Godot 的核心维护团队公开吐槽:他们正被大量“AI 生成的低质量代码”淹没。那些代码往往结构完整、注释齐全、描述洋洋洒洒,但真正的问题是——提交者可能并不理解自己交上来的内容。 这件事,并不是简单的“有人偷懒用 AI 写代码”。它正在触及开源协作最核心的东西:信任。 一场悄无声息的“AI 洪水” 事情的导火索来自一条 Bluesky 讨论帖。 Godot 主要维护者之一、同时也是 Godot 商业支持公司 W4 Games 联合创始人的 Rémi Verschelde 表示,所谓的“AI slop”

By Ne0inhk
诺奖得主辛顿最新访谈:1 万个 AI 可以瞬间共享同一份“灵魂”,这就是为什么人类注定被超越

诺奖得主辛顿最新访谈:1 万个 AI 可以瞬间共享同一份“灵魂”,这就是为什么人类注定被超越

当宇宙级的“嘴炮”遇到降维打击。 编译 | 王启隆 来源 | youtu.be/l6ZcFa8pybE 出品丨AI 科技大本营(ID:rgznai100) 打开最新一期知名播客 StarTalk 的 YouTube 评论区,最高赞的一条留言是这样写的: “我长这么大,第一次看到尼尔·德葛司·泰森(Neil deGrasse Tyson)在一档节目里几乎全程闭嘴,像个手足无措的小学生一样乖乖听讲。” 作为全美最知名的天体物理学家,泰森平时的画风是充满激情、喋喋不休、用宇宙的宏大来震撼嘉宾。但这一次,坐在他对面的那位满头银发、带着温和英音的英国老人,仅仅用最平淡的语气,就让整个演播室陷入了数次令人窒息的沉默。 这位老人是 Geoffrey Hinton。深度学习三巨头之一,2024 年诺贝尔物理学奖得主,被公认为“AI 教父”。 对经常阅读 Hinton 演讲的我来说,这也是比较新奇的一幕—

By Ne0inhk
48小时“烧光”56万!三人创业团队濒临破产,仅因Gemini API密钥被盗:“AI账单远超我们的银行余额”

48小时“烧光”56万!三人创业团队濒临破产,仅因Gemini API密钥被盗:“AI账单远超我们的银行余额”

整理 | 苏宓 出品 | ZEEKLOG(ID:ZEEKLOGnews) 「仅过了 48 小时,一笔 8.2 万美元的天价费用凭空出现,较这家小型初创公司的正常月费暴涨近 46000%。」 这不是假设的虚幻故事,而是一家墨西哥初创公司正在经历的真实危机。 近日,一位名为 RatonVaquero 的开发者在 Reddit 发帖求助称,由于他的 Gemini API 密钥被盗用,原本每月仅约 180 美元(约 1242 元)的费用,在短短 48 小时内暴涨到 82,314.44 美元(约 56.8 万元)。对于这家只有三名开发者的小型创业团队来说,这笔突如其来的账单,几乎等同于灭顶之灾。 “我现在整个人都处在震惊和恐慌之中。”RatonVaquero

By Ne0inhk