找回密码
 立即注册
首页 业界区 业界 高德地图 MCP,可用 Java SolonMCP 接入(支持 java8, j ...

高德地图 MCP,可用 Java SolonMCP 接入(支持 java8, java11, java17, java21)

寨亳 2025-6-2 23:55:31
1、MCP技术概述

1.1 什么是 MCP

MCP (Model Control Protocol) 是一种允许大模型与外部工具交互的协议,高德地图基于此协议提供了地图服务能力,使 AI 大模型能够直接调用高德的 LBS。
1.2 两种接入架构对比

高德地图 MCP 提供了两种不同的接入方式:sse 和 stdio。这两种方式在架构、性能和适用场景上存在明显差异。
2、用 Java SolonMCP 接入试试

2.1 添加依赖
  1. <dependency>
  2.     <groupId>org.noear</groupId>
  3.     solon-ai-mcp</artifactId>
  4. </dependency>
复制代码
支持与 jFinal, Vert.X, SpirngBoot2, SpringBoot3, Solon 等框架结合使用。
2.2 先构建个客户端

一个项目中可能会有多个 mcp;所以取个 bean 名字为好
  1. @Configuration
  2. public class AmapMcpConfig {
  3.     @Bean("amap-mcp")
  4.     public McpClientProvider mcpClientProvider() {
  5.         return McpClientProvider.builder()
  6.                 .apiUrl("https://mcp.amap.com/sse?key=YOUR_AMAP_MCP_KEY") //只需要一个 url
  7.                 .build();
  8.     }
  9. }
复制代码
2.3 试试:获取周边电影院
  1. @Component
  2. public class DemoCom {
  3.     @Inject("amap-mcp")
  4.     McpClientProvider clientProvider;
  5.     public String around_search() {
  6.         Map<String, Object> args = new HashMap<>();
  7.         args.put("keywords", "电影院");
  8.         args.put("location", "116.466485,39.995197");
  9.         args.put("radius", "2000");
  10.         return clientProvider.callToolAsText("maps_around_search", args).getContent();
  11.     }
  12. }
复制代码
2.4 试试:获取地区的天气
  1. @Component
  2. public class DemoCom {
  3.     @Inject("amap-mcp")
  4.     McpClientProvider clientProvider;
  5.     public String weather(){
  6.         Map<String, Object> args = new HashMap<>();
  7.         args.put("city", "北京");
  8.         return clientProvider.callToolAsText("maps_weather", args).getContent();
  9.     }
  10. }
复制代码
3、把它绑给 ChatModel(LLM) 使用,比如 DeepSeek-V3

构建 ChatModel,并将  amap-mcp 作为工具提供者绑定:
  1. @Configuration
  2. public class DeepSeekConfig {
  3.     @Bean
  4.     public ChatModel chatModel(@Inject("amap-mcp") McpClientProvider clientProvider) {
  5.         return ChatModel.of("https://api.deepseek.com/chat/completions")
  6.                 .apiKey("SD_API_KEY")
  7.                 .model("deepseek-chat")
  8.                 .defaultToolsAdd(clientProvider)
  9.                 .build();
  10.     }
  11. }
复制代码
基于 DeepSeek 和 Amap MCP 查个天气:
  1. @Component
  2. public class DemoCom {
  3.     @Inject
  4.     ChatModel chatModel;
  5.     public void test() throws Exception {
  6.         ChatResponse resp = chatModel.prompt("杭州今天的天气怎么样?")
  7.                 .call();
  8.         System.out.println(resp.getMessage());
  9.     }
  10. }
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册