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

【Python】基础语法入门(一)

【Python】基础语法入门(一)

前言 Python作为一门入门门槛低、生态丰富的编程语言,Python早已成为编程初学者、数据分析从业者、后端开发者的首选工具之一。而掌握Python的第一步,就是吃透最核心的基础语法,常量与表达式、变量与类型、注释、输入输出及运算符。今天,我们就结合实例,手把手带你入门这些必备知识点,助你快速搭建Python语法框架。 一、常量与表达式 刚接触 Python 时,我们可以先把它当作一个功能强大的计算器 ,通过简单的表达式,以完成各类算术运算,比如简单的加减乘除,甚至复杂的乘方运算,都能直接通过“表达式”实现。 核心知识点: 1. 表达式与常量:形如1 + 2 * 3的算式称为“表达式”,运算结果为“表达式的返回值”;1、2、3这类固定值称为“字面值常量”,+、-、*、/则是“运算符”。 2. 运算规则:遵循“先乘除后加减”的数学逻辑,

By Ne0inhk
创建自己专属DeepSeek实现大模型 全过程!!!(超详细教程)

创建自己专属DeepSeek实现大模型 全过程!!!(超详细教程)

🌟实现DeepSeek大模型的探索之旅🚀 Hey小伙伴们,今天我们来聊聊一个超燃的话题——用Java实现DeepSeek大模型!🔥 📚背景介绍         DeepSeek是一个高性能的深度学习模型,通常用于处理复杂的搜索和推荐任务。它基于深度学习算法,能够高效地从大量数据中提取关键信息,并生成精准的搜索结果或推荐内容。虽然DeepSeek的原生实现可能依赖于Python和深度学习框架(如TensorFlow或PyTorch),但用Java来实现其关键逻辑和数据处理部分同样充满挑战和乐趣!🎉 目录 一、部署本地 DeepSeek 模型(核心步骤) 1.1 安装 Ollama(模型管理工具) 1.2 Ollama安装步骤  1.3 下载 DeepSeek-R1 模型 1.4 验证安装 二、Java调用 2.1 Java代码 2.2 调用结果 一、部署本地 DeepSeek 模型(核心步骤) 1.1

By Ne0inhk
Visual C++ 6.0 中文版安装包下载及 Win11 安装教程

Visual C++ 6.0 中文版安装包下载及 Win11 安装教程

本文分享的是 Visual C++ 6.0(简称 VC++ 6.0)中文版的安装包下载及安装教程,包括在 Win11 系统下的安装和使用问题解答。如果您在安装过程中遇到任何问题,请随时留言寻求帮助! 一、安装包的下载 vc6.0 安装包下载链接:点击这里下载 https://pan.quark.cn/s/bc24c385ee87 二、安装 VC++ 6.0 等待安装完成: 点击“安装”开始安装: 创建桌面快捷方式,然后点击“下一步”。 完成后点击“下一步”。 选择 C 盘以外的盘符: 更改安装路径,建议不要安装在 C 盘(默认盘符),可以选择其他的盘符,

By Ne0inhk
C++ 14 红黑树:高效平衡的奥秘

C++ 14 红黑树:高效平衡的奥秘

红黑树的概念 红⿊树是⼀棵⼆叉搜索树,他的每个结点增加⼀个存储位来表⽰结点的颜⾊,可以是红⾊或者⿊⾊。通过对任何⼀条从根到叶⼦的路径上各个结点的颜⾊进⾏约束,红⿊树确保没有⼀条路径会⽐其他路径⻓出2倍,因⽽是接近平衡的。 规则 1. 每个结点不是红⾊就是⿊⾊2. 根结点是⿊⾊的3. 如果⼀个结点是红⾊的,则它的两个孩⼦结点必须是⿊⾊的,也就是说任意⼀条路径不会有连续的红⾊结点。4. 对于任意⼀个结点,从该结点到其所有NULL结点的简单路径上,均包含相同数量的⿊⾊结点 为上面的红黑树,有多少条路径 答案是10条,因为要走到空才算一条 在上面的规则与图中我们发现,根节点一定为黑,

By Ne0inhk