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

VS Code 编译调试 C++ 项目完全指南(按编译器分类)

本文将系统讲解如何在 VS Code 中针对 MSVC(Visual Studio 编译器) 和 GCC/MinGW 两种主流编译器,配置 tasks.json(编译任务)、launch.json(调试配置)、c_cpp_properties.json(智能提示配置),覆盖单文件 / 多文件编译、库链接、输出路径指定等核心场景。 前置准备 1. 基础工具安装 * VS Code:从官网下载安装,安装「C/C++ 微软官方插件」(扩展栏搜索 C/C++)。 * 编译器安装: * MSVC:安装 Visual Studio(勾选「使用 C++ 的桌面开发」

By Ne0inhk
【C++】第十九节—一文万字详解 | AVL树实现

【C++】第十九节—一文万字详解 | AVL树实现

好久不见,我是云边有个稻草人,偶尔中二博主与你分享C++领域专业知识^(* ̄(oo) ̄)^ 《C++》—本篇文章所属专栏—持续更新中—欢迎订阅~喔 目录 一、AVL的概念 二、AVL树的实现 2.1 AVL树的结构 2.2 AVL树的插入 【AVL树插入⼀个值的大概过程】 【平衡因⼦更新】 【插⼊结点及更新平衡因⼦的代码实现】  2.3 旋转 【旋转的原则】 【右单旋+两个坑+代码实现】 【左单旋+代码实现】 【左右双旋+代码实现】 【右左双旋+代码实现】 2.4 AVL树的查找 2.5 AVL树平衡检测 2.6 AVL树的删除

By Ne0inhk
【C++】C++11 新特性揭秘:序章

【C++】C++11 新特性揭秘:序章

C++语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C++相关特性类和对象-上篇类和对象-中篇类和对象-下篇日期类C/C++内存管理模板初阶String使用String模拟实现Vector使用及其模拟实现List使用及其模拟实现容器适配器Stack与QueuePriority Queue与仿函数模板进阶-模板特化面向对象三大特性-继承机制面向对象三大特性-多态机制STL 树形结构容器二叉搜索树AVL树红黑树红黑树封装map/set哈希-开篇闭散列-模拟实现哈希哈希桶-模拟实现哈希哈希表封装 unordered_map 和 unordered_set 大家好,我是店小二。今天,我们将深入探讨 C++11 中新增的特性。在之前的学习过程中,大家或许已经接触或掌握了一些相关特性。让我们继续前进,探索更多 C++11 的精彩内容吧! 🌈个人主页:是店小二呀 🌈C语言专栏:C语言 🌈C++专栏: C++ 🌈初阶数据结构专栏: 初阶数据结构 🌈高阶数据结构专栏: 高阶数据结构 🌈Linux专栏: Linux 🌈喜欢的诗句:无人

By Ne0inhk