news 2026/9/6 18:31:15

学习随笔-MCP协议与Tools工具集成

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
学习随笔-MCP协议与Tools工具集成

MCP协议与Tools工具集成

核心概念理解

1. 大模型的局限性及Tools解决方案

  • 问题:大模型不擅长处理垂直领域实时信息(天气、地理位置、业务数据等)
  • 解决方案:使用Tools机制调用外部系统方法或第三方API
  • 实现方式:通过JSON Schema描述可用工具及其参数要求

2. Tools基础定义格式

{"tools":[{"type":"function","function":{"name":"getWeatherForecastByLocation","description":"获取指定位置的天气预报信息","parameters":{"type":"object","properties":{"location":{"type":"string","description":"城市或地区名称"}},"required":["location"]}}}]}

3. MCP协议的核心价值

  • 解决的问题
    • 多个AI应用重复开发相同Tools
    • 单个AI应用形成信息孤岛
    • Tools维护成本高
  • MCP优势
    • 统一管理:通用Tools作为独立服务部署
    • 协议标准化:通过JSON-RPC进行工具调用
    • 服务发现:AI应用动态发现可用工具
    • 解耦设计:Tools服务与AI应用分离

技术架构理解

传统Tools架构 vs MCP架构

传统架构: AI应用1 → 内置Tools AI应用2 → 内置Tools (重复开发) AI应用3 → 内置Tools (重复开发) MCP架构: AI应用1 → MCP Client → MCP Server (通用Tools服务) AI应用2 → MCP Client → MCP Server AI应用3 → MCP Client → MCP Server

MCP协议层次定位

应用层:AI应用 ↔ MCP Client ↔ MCP Server 模型层:大模型 ↔ 传统Tools方式 (保持不变)

代码示例优化

优化后的MCP集成示例

/** * MCP工具集成测试类 * 演示如何通过MCP协议集成外部工具服务 */publicclassMcpIntegrationExample{/** * 测试百度地图MCP服务集成 * 演示完整的MCP客户端构建和工具调用流程 */@TestpublicvoidtestBaiduMapMcpIntegration()throwsException{// 1. 构建大语言模型实例ChatLanguageModelmodel=createQwenModel();// 2. 配置MCP传输层 (支持SSE和Stdio两种方式)McpTransporttransport=createStdioMcpTransport();// 3. 构建MCP客户端McpClientmcpClient=createMcpClient(transport);// 4. 创建工具提供者,支持多个MCP服务聚合ToolProvidertoolProvider=createAggregatedToolProvider(mcpClient);// 5. 构建AI服务代理Botbot=createAIServiceBot(model,toolProvider);try{// 6. 执行工具增强的对话Stringresponse=bot.chat("规划从长沙到武汉的骑行路线,需要避开高速公路");System.out.println("AI响应: "+response);// 测试其他功能StringweatherResponse=bot.chat("查询北京市今天的天气情况");System.out.println("天气查询结果: "+weatherResponse);}finally{// 7. 资源清理mcpClient.close();}}// === 工具方法分解 ===/** * 创建千问模型实例 */privateChatLanguageModelcreateQwenModel(){returnQwenChatModel.builder().apiKey(System.getenv("ALI_AI_KEY")).modelName("qwen-max").temperature(0.7).maxTokens(2000).build();}/** * 创建标准IO传输的MCP服务 */privateMcpTransportcreateStdioMcpTransport(){returnnewStdioMcpTransport.Builder().command(Arrays.asList("cmd","/c","npx","-y","@baidumap/mcp-server-baidu-map","mcp/github")).environment(Map.of("BAIDU_MAP_API_KEY",System.getenv("BAIDU_MAP_API_KEY"))).logEvents(true)// 开启日志便于调试.build();}/** * 创建MCP客户端 */privateMcpClientcreateMcpClient(McpTransporttransport){returnnewDefaultMcpClient.Builder().transport(transport).requestTimeout(Duration.ofMinutes(2)).build();}/** * 创建聚合工具提供者,支持多个MCP服务 */privateToolProvidercreateAggregatedToolProvider(McpClient...clients){returnMcpToolProvider.builder().mcpClients(Arrays.asList(clients)).build();}/** * 创建AI服务代理 */privateBotcreateAIServiceBot(ChatLanguageModelmodel,ToolProvidertoolProvider){returnAiServices.builder(Bot.class).chatLanguageModel(model).toolProvider(toolProvider).build();}/** * AI服务接口定义 */interfaceBot{Stringchat(StringuserMessage);}}

实用工具和资源

推荐的MCP服务资源

  • 官方资源:MCP Servers- 官方MCP服务仓库
  • 常用服务
    • 地图服务:百度地图、高德地图
    • 天气服务:和风天气、OpenWeather
    • 业务系统:CRM、ERP等企业系统适配器

环境配置要点

# 必需的环境变量 export ALI_AI_KEY="你的阿里云AI密钥" export BAIDU_MAP_API_KEY="你的百度地图API密钥" # 可选:其他MCP服务配置 export WEATHER_API_KEY="天气服务密钥" export DATABASE_URL="数据库连接"

关键知识点总结

1. MCP核心概念

  • 协议定位:AI应用层工具调用标准协议
  • 数据格式:基于JSON-RPC 2.0
  • 传输方式:支持Stdio、SSE、HTTP等

2. 开发流程要点

模型初始化 → 传输层配置 → 客户端构建 → 工具聚合 → 服务代理 → 业务调用

3. 最佳实践建议

  • 错误处理:添加超时控制和重试机制
  • 日志监控:开启transport日志便于调试
  • 资源管理:确保MCP客户端正确关闭
  • 服务发现:动态管理多个MCP服务实例

4. 扩展思考

  • 性能优化:MCP连接池管理
  • 安全考虑:工具调用的权限控制
  • 监控告警:工具调用成功率监控
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 23:03:04

AI技术如何重塑网络优化,从人力密集型转向技术驱动

随着企业数字化进程不断深入,网络可见性已然成为品牌竞争的具备关键意义的战场。传统的搜索引擎优化也就是SEO,以及地理位置优化也就是GEO的服务,高度依赖人工所拥有的经验以及重复性的操作,在效率方面,在规模方面&…

作者头像 李华
网站建设 2026/9/5 15:45:27

仅通过提示词用豆包实现项目:爬虫+神经网络对目标图片分类

前言 在AI驱动开发的时代,提示词(Prompt)是连接人类需求与AI能力的核心桥梁。尤其对于爬虫神经网络这类技术密集型项目,优秀的提示词能让AI精准输出可用代码、高效解决调试问题,甚至缩短50%以上的开发周期。本文将先拆…

作者头像 李华
网站建设 2026/9/7 6:24:14

Java企业借力JBoltAI,驶向智能问数新蓝海

html在数字化转型的浪潮下,AI应用开发已成为Java企业提升竞争力的关键。然而,许多企业面临技术储备不足、AI应用开发思路不清晰等困境。如何将AI技术与现有业务融合,实现智能化升级,成为Java企业亟待解决的问题。特别是对于数据查…

作者头像 李华
网站建设 2026/9/3 2:46:31

《智能缓冲调度:文件I/O异步处理的底层实战指南》

文件I/O的效能瓶颈始终潜藏于数据从内存到存储介质的流转链路中,传统同步读写模式下的固定缓冲策略,早已无法匹配现代应用中多变的读写场景与海量数据处理诉求。异步缓冲优化算法的核心突破,绝非简单扩容缓冲空间或调整读写触发时机,而是构建了一套基于数据行为预判的动态资…

作者头像 李华
网站建设 2026/9/3 0:47:29

LLM用动态提示防兽医误诊,准确率稳

📝 博客主页:Jax的CSDN主页 动态提示驱动兽医诊断精准化:LLM如何防误诊,稳准率 目录 动态提示驱动兽医诊断精准化:LLM如何防误诊,稳准率 目录 引言:兽医误诊的隐性危机 误诊痛点:兽医…

作者头像 李华
网站建设 2026/9/3 1:59:03

TikTok创作者变现的10大方法简析:2026 最新TikTok 赚钱玩法必看

2026 年,TikTok 依然是全球最热门的创作者平台之一。但变现方式已经从“单条爆款 一次广告”变成了多条可组合、长期可复制的收入体系。真正赚钱的创作者,不是靠运气,而是靠 系统化的账号运营 内容策略 商业闭环。本文将梳理 10 大核心变现…

作者头像 李华