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 连接 MySQL 数据库

使用 VS Code 连接 MySQL 数据库

文章目录 * 前言 * VS Code下载安装 * 如何在VS Code上连接MySQL数据库 * 1、打开扩展 * 2、安装MySQL插件 * 3、连接 * 导入和导出表结构和数据 前言 提示:这里可以添加本文要记录的大概内容: 听说VS Code不要钱,功能还和 Navicat 差不多,还能在上面打游戏 但是没安装插件是不行的 发现一个非常牛的博主 还有一个非常牛的大佬 提示:以下是本篇文章正文内容,下面案例可供参考 VS Code下载安装 VS Code下载安装 如何在VS Code上连接MySQL数据库 本篇分享是在已有VS Code这个软件的基础上,数据库举的例子是MySQL 1、打开扩展 2、安装MySQL插件 在搜索框搜索 MySQL和 MySQL Syntax,下载这三个插件 点击下面的插件,选择【install】安装

By
RustFS 保姆级上手指南:国产开源高性能对象存储

RustFS 保姆级上手指南:国产开源高性能对象存储

最近在给项目选型对象存储的时候,发现一个挺有意思的现象:一边是MinIO社区版功能逐渐“躺平”,另一边是大家对存储性能和安全性的要求越来越高。就在这时,一个叫 RustFS 的国产开源项目闯入了我的视野。 折腾了一阵子后,我感觉这玩意儿确实有点东西。它用Rust语言写,天生就带着高性能和内存安全的基因,性能号称比MinIO快一大截,而且用的是对商业友好的Apache 2.0协议。今天,我就手把手带大家从零开始,搭建一个属于自己的RustFS服务,体验一下国产存储的威力。 一、 RustFS是什么?为什么值得你关注? 简单说,RustFS是一个 分布式对象存储系统 。你可以把它理解成一个你自己搭建的、功能跟阿里云OSS、亚马逊S3几乎一样的“私有云盘”。 但它有几个非常突出的亮点,让我觉得必须试试: * 性能猛兽 :基于Rust语言开发,没有GC(垃圾回收)带来的性能抖动,官方数据显示在4K随机读场景下,性能比MinIO高出40%以上,内存占用还不到100MB,简直是“小钢炮”。 * 100%S3兼容 :这意味着你现有的所有使用S3 API的代码、工具(比如AWS

By