跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonNode.jsAIjava

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

使用 Python SDK 连接 MCP 协议调用高德地图天气查询服务。文档包含环境配置、依赖安装及核心代码示例,同时提供 Java SDK 实现方案作为参考。涉及 Node.js 环境运行及 API Key 申请流程。

Elasticer发布于 2026/3/16更新于 2026/7/3034 浏览
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)连接到的外部系统

资源链接

  • MCP 官网
  • 官方 MCP 服务示例
  • Github SDK
  • 高德地图文档

高德地图 MCP 客户端示例

Node.js 环境

Node 下载:https://nodejs.org/zh-cn/download

注:Node 版本 >= 18.20.4,版本太低无法执行 npx 命令。

高德地图 MCP 服务 tools 列表如下:

{"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"}
)

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())

![图片]

Java SDK 客户端

0.7 版本迁移 0.8 版指南:https://github.com/modelcontextprotocol/java-sdk/blob/main/migration-0.8.0.md

Maven 依赖:

<!-- https://mvnrepository.com/artifact/io.modelcontextprotocol.sdk/mcp -->
<dependency>
    <groupId>io.modelcontextprotocol.sdk</groupId>
    <artifactId>mcp</artifactId>
    <version>0.8.1</version>
</dependency>

Gradle 依赖:

implementation("io.modelcontextprotocol.sdk:mcp:0.8.1")

代码示例:

import io.modelcontextprotocol.client.McpClient;
import io.modelcontextprotocol.client.McpSyncClient;
import io.modelcontextprotocol.client.transport.ServerParameters;
import io.modelcontextprotocol.client.transport.StdioClientTransport;
import io.modelcontextprotocol.spec.McpSchema;
import org.junit.jupiter.api.Test;
import java.util.Map;

public class JunitTest {
    @Test
    public void test() {
        ServerParameters params = ServerParameters.builder("npx")
                .args("-y", "@amap/amap-maps-mcp-server")
                .addEnvVar("AMAP_MAPS_API_KEY", "xxxxx")
                .build();
        StdioClientTransport transport = new StdioClientTransport(params);
        McpSyncClient client = McpClient.sync(transport).build();
        client.initialize();
        McpSchema.ListToolsResult toolsList = client.listTools();
        System.out.println("工具列表:" + toolsList);
        McpSchema.CallToolResult mapsWeather = client.callTool(new McpSchema.CallToolRequest("maps_weather", Map.of("city", "福州")));
        System.out.println("调用结果:" + mapsWeather.content());
    }
}

![图片]

目录

  1. MCP 简介
  2. 架构
  3. 资源链接
  4. 高德地图 MCP 客户端示例
  5. Node.js 环境
  6. Python SDK 客户端
  7. Java SDK 客户端
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 使用 GitHub Copilot 配合 Figma MCP 还原设计稿生成前端代码
  • 与模型对话:理解与预防 ChatGPT 中的常见误解
  • 阿里云配置 Zabbix 邮件发送
  • CentOS 7 系统安装 Docker CE 详解
  • 行空板 K10 与 Mind+ 零基础 AI 入门实战
  • 医疗大模型 LoRA 微调实战指南
  • AI Agent 新范式:FastGPT+MCP 协议实现工具增强型智能体构建
  • Node.js+Vue 宠物店管理系统设计与实现
  • FastGPT 集成 MCP 协议构建工具增强型智能体
  • Stable Diffusion 皮革服装 LoRA 模型部署与使用指南
  • Python+AI 学习方向拆解:3 个高性价比赛道与路线
  • 二叉树最近公共祖先解法:递归法与栈存路径法
  • 国产数据库新机遇:电科金仓融合技术与 AI 化演进
  • Dify 工作流发布为 MCP Server 实战指南
  • 构建与 GitHub 深度集成的自动化工作流指南
  • Dify 工作流发布为 MCP Server 实战指南
  • OpenClaw 集成飞书机器人配置指南
  • QA 一来,大家都要靠边站
  • 深度学习学习率原理与代码实例
  • 前端团队协作最佳实践

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online