高德地图 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 ...
随机推荐
- autMan奥特曼机器人-相关命令
<link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/e ...
- Docker 服务、镜像、容器简单命令使用
Docker 进程相关命令 启动docker服务: systemctl start docker 查看docker服务状态: systemctl status docker 停止docker服务: ...
- DSP 28335 TTL SCI串口通讯 出错无法进入接收
项目上通过普通SCI串口在两个DSP28335之间进行通讯,一主一从,主机向从机发送指令,触发从机SCI接收中断,在中断中执行数据包判断和存储,数据处理和回复在主循环进行,未使用FIFO,轮询方式进行 ...
- nuxt.js 使用 Typescript 在 VSCode 报错: File 'xxx/components/Logo.vue' is not a module. Vetur(2306)
nuxt.js 生成的默认文件 components/Logo.vue 源码大概如下: 1 <template> 2 <svg 3 class="NuxtLogo" ...
- SeaBIOS实现简单分析
SeaBIOS是一个16bit的x86 BIOS的开源实现,常用于QEMU等仿真器中使用.本文将结合SeaBIOS Execution and code flow和SeaBIOS的源码对SeaBIOS ...
- Oracle 修改SYS、system用户密码
by:授客 QQ:1033553122 概念 SYS用户是Oracle中权限最高的用户,而SYSTEM是一个用于数据库管理的用户.在数据库安装完之后,应立即修改SYS,SYSTEM这两个用户的密码 ...
- RabbitMQ 消息实现过程+事务+消息确认
服务端(生产者) 1.引用 rabbitmq 包 2.建立连接工厂 connectionfactory 3.创建 频道 createchannel 4.在频道中 绑定消息队列 5.发布basicpub ...
- 工作日记-LED串口开发
背景 公司最近的一个项目中需要使用LED显示屏实时显示一些数据,经过调研,项目经理选择了泰美泉公司的产品,前几日硬件设备到了之后,笔者负责的中间件组就马不停蹄的开始了实际的调研与测试工作,因为之前有过 ...
- 区块链特辑——solidity语言基础(二)
Solidity语法基础学习 四.函数类型: 函数 Function function FnName [V] [SM] [return (--)] {} ·[V]:Visibility,可见性: ·[ ...
- Static Timing Analysis Basics
Preface This note only introduce the essential concepts about Static Timing Analysis, which not cont ...