高德地图 MCP,可用 Java SolonMCP 接入(支持 java8, java11, java17, java21)
1、MCP技术概述
1.1 什么是 MCP
MCP (Model Control Protocol) 是一种允许大模型与外部工具交互的协议,高德地图基于此协议提供了地图服务能力,使 AI 大模型能够直接调用高德的 LBS。
1.2 两种接入架构对比
高德地图 MCP 提供了两种不同的接入方式:sse 和 stdio。这两种方式在架构、性能和适用场景上存在明显差异。
2、用 Java SolonMCP 接入试试
2.1 添加依赖
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon-ai-mcp</artifactId>
</dependency>
支持与 jFinal, Vert.X, SpirngBoot2, SpringBoot3, Solon 等框架结合使用。
2.2 先构建个客户端
一个项目中可能会有多个 mcp;所以取个 bean 名字为好
@Configuration
public class AmapMcpConfig {
@Bean("amap-mcp")
public McpClientProvider mcpClientProvider() {
return McpClientProvider.builder()
.apiUrl("https://mcp.amap.com/sse?key=YOUR_AMAP_MCP_KEY") //只需要一个 url
.build();
}
}
2.3 试试:获取周边电影院
@Component
public class DemoCom {
@Inject("amap-mcp")
McpClientProvider clientProvider;
public String around_search() {
Map<String, Object> args = new HashMap<>();
args.put("keywords", "电影院");
args.put("location", "116.466485,39.995197");
args.put("radius", "2000");
return clientProvider.callToolAsText("maps_around_search", args).getContent();
}
}
2.4 试试:获取地区的天气
@Component
public class DemoCom {
@Inject("amap-mcp")
McpClientProvider clientProvider;
public String weather(){
Map<String, Object> args = new HashMap<>();
args.put("city", "北京");
return clientProvider.callToolAsText("maps_weather", args).getContent();
}
}
3、把它绑给 ChatModel(LLM) 使用,比如 DeepSeek-V3
构建 ChatModel,并将 amap-mcp 作为工具提供者绑定:
@Configuration
public class DeepSeekConfig {
@Bean
public ChatModel chatModel(@Inject("amap-mcp") McpClientProvider clientProvider) {
return ChatModel.of("https://api.deepseek.com/chat/completions")
.apiKey("SD_API_KEY")
.model("deepseek-chat")
.defaultToolsAdd(clientProvider)
.build();
}
}
基于 DeepSeek 和 Amap MCP 查个天气:
@Component
public class DemoCom {
@Inject
ChatModel chatModel;
public void test() throws Exception {
ChatResponse resp = chatModel.prompt("杭州今天的天气怎么样?")
.call();
System.out.println(resp.getMessage());
}
}
高德地图 MCP,可用 Java SolonMCP 接入(支持 java8, java11, java17, java21)的更多相关文章
- android 高德地图API 之 java.lang.UnsatisfiedLinkError: Couldn't load amapv3: findLibrary returned null错误
错误场景: 运行android app时,在运行到调用高德地图API时,出现 “java.lang.UnsatisfiedLinkError: Couldn't load amapv3: findLi ...
- 高德地图API INVALID_USER_SCODE问题以及keystore问题
今天这篇文章会给大家介绍三个问题: 1,接入API时出现invalid_user_scode问题 首先进行第一个大问题,接入高德地图API时出现invalid_user_scode问题 因为项目需要接 ...
- Unity与Android交互-Unity接入高德地图实现定位以及搜索周边的功能(使用Android Studio)详细操作
刚进公司给安排的任务就是Unity接入高德地图,算是踩了不少坑总算做出来了,抽点时间写个博客记录一下 废话不多说 先上效果图 获取定位并根据手机朝向显示周边信息 使用的Unity ...
- java servlet手机app访问接口(三)高德地图云存储及检索
这篇关于高德地图的随笔内容会多一点, 一.业务说明 对应APP业务中的成员有两类,一是服务人员,二是被服务人员, 主要实现功能, 对APP中的服务人员位置进行时时定位, 然后通过被服务人员登 ...
- 基于 React 封装的高德地图组件,帮助你轻松的接入地图到 React 项目中。
react-amap 这是一个基于 React 封装的高德地图组件,帮助你轻松的接入地图到 React 项目中. 文档实例预览: Github Web | Gitee Web 特性 ️ 自动加载高德地 ...
- Java 通过地址获取经纬度 - 高德地图
一.添加依赖 <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-v ...
- java调用高德地图api实现通过ip定位访问者的城市
所需东西:高德地图的key 注意:这个key是 web服务的key 和js的key不是一个key(若没有则自行创建,创建教程在文末) 高德地图的api文档:https://lbs.amap.com/ ...
- 让isis支持高德地图
概述 由于项目需要用到地图,虽然isis的插件库里有个现成的地图实现,不过用的google地图,虽然google地图可以不用注册Appkey,但完全打不开.所以打算改成国产地图. 效果 先看下运行效果 ...
- 关于导入高德地图 java.lang.UnsatisfiedLinkError: Couldn't load XXXfrom loader dalvik.system.PathClassLoader[DexPathLis
然后后面就是找不到高德地图提供的地图so 就是上面几个 然后不要忘了在buildGradle文件里添加这么一句话 sourceSets { main { jniLibs.srcDirs = ['lib ...
- Android 高德地图 java.lang.UnsatisfiedlinkError Native method not found: com.autonavi.amap.mapcore.MapCore.nativeNewInstance:(Ljava/lang/String;)
在Android项目中引用高德地图,程序运行时出现上述问题,如果引用了Map3D的jar包,则需要在引入Jar文件的同时引入so文件,在高德地图的demo中,找到so文件: 然后将其复制到jniLib ...
随机推荐
- 开源一款DDS信号发生扩展板-FreakStudio多米诺系列
原文链接: FreakStudio的博客 摘要 信号发生扩展板通过SPI接口生成可调频率和幅度的正弦波.方波和三角波,频率小于1MHz.支持幅度调节,提供原始和6倍放大输出接口.配备5阶低通滤波器.噪 ...
- [tldr] 如何给自己的程序编写一个systemd服务
参考Systemd 入门教程:实战篇 配置文件 systemd使用配置文件作为程序服务启动的方式,分为可以自启动的和不能自启动的 就是enable和start的命令的区别 分为/etc/systemd ...
- SpringBoot+Thymeleaf渲染下拉框异常解决
常规方式 <select class="form-control" name="operationType" th:field="${itemT ...
- SeaBIOS实现简单分析
SeaBIOS是一个16bit的x86 BIOS的开源实现,常用于QEMU等仿真器中使用.本文将结合SeaBIOS Execution and code flow和SeaBIOS的源码对SeaBIOS ...
- DevOps - DevOps基础概念梳理
目录 DevOps DevOps的好处与价值 可能的几个关注点 DevOps能力环 DevOps与持续集成.持续交付 一个完整的过程 典型的CICD流水线过程 DevOps黄金思维圈 初见 一些图示 ...
- Oracle 内存(SGA,PGA)详细介绍
一.名词解释(1)SGA:SystemGlobal Area是OracleInstance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池.数据缓冲区.日志缓冲区.(2)共享 ...
- 如何打造你自己的 AI 软件工程师(像 Devin 那样)
扩展 DeepSeek 的强化学习蓝图路线到AI的其他方面 Nikhil Anand 图片由GPT-4o生成 "AI 软件工程师"这个概念,其实已经不再遥远了.已经有一些技术在逐步 ...
- Netty源码—4.客户端接入流程
大纲 1.关于Netty客户端连接接入问题整理 2.Reactor线程模型和服务端启动流程 3.Netty新连接接入的整体处理逻辑 4.新连接接入之检测新连接 5.新连接接入之创建NioSocketC ...
- RabbitMQ持久化+消息执行优先级
持久化 channel.QueueDeclare(queue:"hello",//队列名 durable:true,//持久化 exclusive:false,//排他性,该 ...
- 构建窗体--java进阶day03
1.窗体对象Jframe 要创建窗体就需要Jframe对象,窗体创建好不会自己显示,还需要我们自己写一段代码让其显示 2.设置窗体可见--setVisible(true) 该方法用于显示窗体 3.窗体 ...