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

Python 调用高德地图 MCP 服务查询天气实战

基于 Model Context Protocol 协议,演示了如何通过 Python 和 Java SDK 对接高德地图 MCP 服务。内容涵盖环境搭建、API Key 配置及工具调用核心逻辑,帮助开发者快速实现本地模型与外部地理信息服务的标准化集成,解决上下文数据接入难题。

花里胡哨发布于 2026/3/16更新于 2026/8/2464 浏览
Python 调用高德地图 MCP 服务查询天气实战

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

简介

MCP(Model Context Protocol)是一种开放协议,旨在标准化应用程序向大语言模型提供上下文的方式。你可以把它理解为 AI 应用的 USB-C 端口——就像 USB-C 统一了设备连接一样,MCP 让 AI 模型能更规范地接入数据源和工具。

在架构上,主要包括以下几个角色:

  • MCP 主机:希望访问数据的程序,如 Claude Desktop、IDE 或 AI 工具。
  • MCP 客户端:与服务器保持 1:1 连接的协议客户端。
  • MCP 服务器:轻量级程序,通过标准化协议公开特定功能。
  • 数据源:包括本地文件、数据库以及远程 API 服务。

环境准备

要运行高德地图的 MCP 服务,首先需要确保 Node.js 环境满足要求。建议版本不低于 18.20.4,否则可能无法执行 npx 命令。

此外,你需要申请高德地图的 AMAP_MAPS_API_KEY。获取地址参考高德官方文档,具体步骤略过,直接关注代码中的环境变量配置即可。

Python SDK 客户端实现

这是最直接的调用方式。首先安装基础依赖:

pip install mcp

接下来是核心代码。这里我们使用 StdioServerParameters 来启动 npx 进程,并注入 API Key。注意观察 env 参数,这是传递敏感信息的关键位置。

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": "你的 API_KEY_在这里"}
)

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 =  session.call_tool(
                , 
                arguments={: }
            )
            (, result)

 __name__ == :
    asyncio.run(run())
# 调用天气查询工具
await
"maps_weather"
"city"
"福州"
print
"调用结果:"
if
"__main__"

实际运行时,如果网络不通或 Key 无效,会抛出异常。调试时建议先打印 tools 列表确认服务已就绪。

Java SDK 客户端实现

如果你习惯使用 Java,也可以利用官方提供的 SDK。目前推荐迁移至 0.8 版本,兼容性更好。

Maven 依赖

在 pom.xml 中添加以下依赖:

<dependency>
    <groupId>io.modelcontextprotocol.sdk</groupId>
    <artifactId>mcp</artifactId>
    <version>0.8.1</version>
</dependency>

代码示例

Java 端同样需要构建 ServerParameters 并初始化同步客户端。逻辑与 Python 类似,只是语法差异较大。

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", "你的 API_KEY_在这里")
            .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());
    }
}

总结

通过上述示例,我们可以快速搭建起本地应用与高德地图服务的 MCP 连接。无论是 Python 还是 Java,核心流程都是:初始化传输层 -> 建立会话 -> 列出工具 -> 调用工具。这种方式极大地降低了集成外部 API 的复杂度,让 AI 应用能更灵活地获取实时数据。

目录

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

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

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

更多推荐文章

查看全部
  • 链表基础与实战:单双链表实现及经典算法题解析
  • Capacitor 实战指南:将 Web 项目打包为跨平台应用
  • 基于 Python Django 与微信小程序的共享自习室选座系统
  • 基于 CoT+PoT 验证器提升 LLM 推理准确性与一致性的方法
  • VSCode 本地部署 DeepSeek,构建私有化 AI 编码助手
  • MySQL 数据类型详解
  • OpenCode、OpenClaw 与 Ollama 的安装配置指南
  • Java 中间件:RabbitMQ 延迟队列(死信交换机实现)
  • 大模型 RAG 技术深度解析:从入门到进阶
  • Unity 接入 DeepSeek 实现 AI 对话完整步骤
  • Apache Guacamole 远程桌面网关部署与配置指南
  • Streamlit 实战:快速构建数据可视化 Web 应用
  • AI 大模型专题报告:发展迎来爆发期,引领 AI 新时代
  • GitHub Copilot Agent 模式使用经验总结
  • 基于 DeepFace 和 OpenCV 的实时情绪分析器
  • 基于 Yuan2.0、Milvus 与 LlamaIndex 的 RAG 检索增强生成实践
  • Maven 安装配置前的 JDK 版本匹配要求
  • Stable Diffusion 训练实战:损失函数调优指南
  • HTTP 请求方式详解:GET、POST 与常用方法实战
  • AI 股票分析师 daily_stock_analysis 实测:3 步完成私有化金融分析

相关免费在线工具

  • 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