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

Python 使用 MCP 客户端调用高德地图服务查询天气

MCP 是标准化应用向 LLM 提供上下文的协议。演示了如何使用 Python SDK 连接高德地图 MCP 服务器,通过调用 maps_weather 工具查询城市天气。需安装 node 和 python-sdk,配置 AMAP_MAPS_API_KEY,初始化会话后调用工具即可获取结果。同时也提供了 Java SDK 的实现参考。

时间旅人发布于 2025/12/4更新于 2026/9/855 浏览
Python 使用 MCP 客户端调用高德地图服务查询天气

MCP 官网

  • https://modelcontextprotocol.io/introduction

官方 MCP 服务示例

  • https://github.com/modelcontextprotocol/servers

GitHub SDK

  • python-sdk:https://github.com/modelcontextprotocol/python-sdk
  • java-sdk:https://github.com/modelcontextprotocol/java-sdk
  • typescript-sdk:https://github.com/modelcontextprotocol/typescript-sdk

简介

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 命令。

Python SDK 客户端

import asyncio
from mcp import ClientSession, StdioServerParameters
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():
      stdio_client(server_params)  (read, write):
          ClientSession(read, write)  session:
             session.initialize()
            tools =  session.list_tools()
            (, tools)
            result =  session.call_tool(, arguments={: })
            (, result)

 __name__ == :
    asyncio.run(run())
async
with
as
async
with
as
await
await
print
"工具列表:"
await
"maps_weather"
"city"
"福州"
print
"调用结果:"
if
"__main__"

Java SDK 客户端

  • 0.7 版本迁移 0.8 版指南:https://github.com/modelcontextprotocol/java-sdk/blob/main/migration-0.8.0.md
<!-- 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")
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());
    }
}

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

目录

  1. MCP 官网
  2. 官方 MCP 服务示例
  3. GitHub SDK
  4. 简介
  5. 架构
  6. 高德地图 MCP 客户端示例
  7. Python SDK 客户端
  8. Java SDK 客户端

更多推荐文章

查看全部
  • 基于 SpringBoot 的个性化礼品电商平台设计与实现
  • 前端通用 AI Rules 定义,适用于 Cursor 等主流 AI 开发工具
  • Nginx 1.29.6 发布:新增上游粘性会话支持,性能与稳定性全面提升
  • 基于 Python 的旅游大数据分析与推荐系统实战
  • 使用 TRAE CN 与 MCP 协议将 MasterGo 设计稿转为前端代码
  • Meta Llama 3.1 70B 与 Mistral Large 2 128B 深度对比
  • 命令行工具 MCPHost:利用模型上下文协议连接大模型与外部工具
  • AI 安全治理与生成式人工智能风险应对技术分享
  • GitHub Copilot 在 VS Code 中的使用指南
  • Open-Lovable 远程访问配置:结合 cpolar 实现网页克隆工具跨设备使用
  • MySQL 核心原理与实战进阶指南
  • Web JS 逆向全体系详解与 Python 实战
  • Chaterm:开源 AI 智能终端与 SSH 客户端工具
  • 消息队列核心面试题:应用场景与可靠性保障
  • Milvus 实战:Attu 可视化安装与 Python 整合指南
  • RabbitMQ 技术指南(C/C++版)
  • Android TaskbarDelegate 屏蔽上滑返回桌面手势
  • AI 赋能原则 5:当最聪明的大脑犯低级错误
  • Spring Boot 3.5.11 + JDK21 整合 RabbitMQ/RocketMQ/Kafka 对比与选型
  • 低空经济下无人机光伏巡检技术实践

相关免费在线工具

  • 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