当前位置: 首页 > news >正文

MCP服务开发与AI集成

MCP服务背景与技术演进

  • GUI到AI交互的演进路径

    • 早期系统通过命令行(CLI)进行操作,后发展为基于UI的鼠标键盘交互。

    • 当前趋势是“一句话办事”,即用户通过自然语言指令让AI完成任务,本质是将操作回归到底层接口调用。

    • AI执行依赖于对API或CLI层面的访问能力,需构建统一标准的服务接口供模型识别和调用。

  • MCP的核心作用

    • MCP(Model Control Protocol)提供统一协议规范,解决原有接口参数混乱问题(如query/body混用)。

    • 实现接口描述标准化,包含名称、description等字段,便于AI理解与调用。

    • 支持跨平台复用,可在龙虾、Cast等不同AI工具中使用,避免封闭在单一系统内。

MCP服务开发要求与实现方式

  • 开发环境与技术栈要求

    • MCP Server基于Java开发,当前版本要求Spring Boot 3.5 + Java 21

    • 项目已在Git上公开,不建议修改已有依赖配置。

    • 使用特定注解标记工具类和服务方法,支持自动注册为可调用能力。

  • 服务开发结构与编码实践

    • 创建带有@Tools注解的类,标明其为一个功能工具,并填写中英文描述。

    • 推荐使用英文描述以避免编码兼容性问题,防止部分CR工具因乱码导致AI无法解析。

    • 方法上添加@TopArms等标签,用于暴露接口并生成标准Schema。

    • 示例:天气查询工具通过HTTP请求第三方URL获取数据并封装返回。

MCP服务调试与验证流程

  • Postman调试MCP服务

    • 升级Postman至最新版本后,支持直接连接MCP Server。

    • 新建MCP类型请求,填入服务地址(如http://localhost:9311),选择协议类型(如stream+SSE)。

    • 连接成功后自动拉取能力列表(MCP List),展示所有可用方法及其参数定义。

    • 可在界面中直接运行方法,输入参数(如city="Beijing")进行测试。

  • Nacos平台的MCP转换能力

    • Nacos 3.1.0及以上版本新增MCP列表功能,支持从已有服务自动生成MCP服务。

    • 提供HTTP转MCP服务选项,可选择已注册的服务进行协议转换。

    • 支持编排组合多个接口形成新的业务方法,提升复用性。

    • 但实测发现Swagger接口文档不全、注释缺失等问题影响转换效果,仍需人工梳理业务逻辑。

AI集成与技能封装机制

  • MCP Porter技能的作用

    • 龙虾平台上的MCP Porter是一个纯文本技能,用于加载并调用MCP服务。

    • 加载后可通过自然语言触发,自动识别所需调用的工具及参数。

    • 内部通过list server schema获取MCP服务能力清单,并由AI决定调用哪个工具。

  • 技能链路完整流程

    • 第一步:开发MCP服务并确保接口可用。

    • 第二步:使用Postman验证协议正确性,确认参数传递无误。

    • 第三步:通过MCP Porter技能验证AI是否能正确理解并调用该服务。

    • 最终实现用户说“查北京天气”即可触发全流程,无需手动提取参数或处理中英文映射。

  • 技能封装与用户体验优化

    • 为避免用户记忆MCP地址,需将地址封装进新技能中。

    • 如“控制台简报”技能,内置MCP URL,设定触发条件后打包发布。

    • 技能内部使用Python脚本编写,具备高泛化能力,可基于模板动态生成报告并回答细节问题。

场景化接入策略与未来方向

  • 按场景迭代接入MCP

    • 不建议逐个对接原子接口,而应以业务场景为单位组织服务。

    • 例如“底座工作台待办事项”作为一个页面级能力整体暴露,支持多维度查询。

    • 利用AI泛化能力减少接口数量,降低维护成本。

  • 历史接口的适配挑战

    • 原有面向UI设计的接口过于细碎,不适合直接暴露给AI。

    • 虽可通过技术手段批量转换,但受限于文档质量与业务重复度,实际效果有限。

    • 建议优先梳理高频核心场景,重新组织service层接口,提升AI调用准确性。

http://www.cnnetsun.cn/news/1360879.html

相关文章:

  • 开源TOP20项目(2026.03.09-2026.03.15)
  • 微软 Planetary Computer:地理空间数据服务的创新与应用潜力
  • 可调谐石墨烯超材料吸收体的FDTD仿真源文件
  • 如何学习计算机(民办普通大学生心得)
  • PHPStudy2018环境部署全攻略
  • 中控SCADA-MQTT驱动采集与MQTT转发应用详解
  • mathtype中omml2mml缺失问题解决
  • 动力域-混动系统/动力域半实物仿真测试
  • 从 AI 终端爆发看人机交互演进:薄膜开关为何仍是工业控制的核心方案?
  • 小白入门:无刷直流电机BLDC,我从无人机开始学的那些事儿
  • 解决 ScrollView嵌套RecyclerView设置nestedScrollingEnabled=false数据显示不全问题
  • GNS3 入门指南
  • 并联机器人设计快速上手篇:利用iRobotCAM完成机器人夹爪的设计,无缝对接MuJoCo
  • 【2026年-11期】Where lies the future of humanity in the age of AI?
  • Chrome浏览器整页截图方法(MacOS)
  • 355. Java IO API -去除路径中的冗余信息
  • 面对大厂抄袭的指控,OpenClaw是否有足够的知识产权法律武器来保护自己?还是只能依靠舆论?
  • 康复训练 7
  • AI正在改变这10个行业,你的工作在其中吗?
  • 数字化时代,企业的商业模式建设
  • 计算机毕业设计之springboot基于web的新生报到系统设计与实现
  • 修改用户密码
  • 储能系统——04 升压换流一体机和箱变设计分析
  • 虚拟伴侣情感交互系统的压力测试框架与安全阀机制
  • 西门子 S7-1200PLC的RUNTIME指令怎么测量程序?
  • 预算有限怎么选?2026 三角洲行动游戏笔记本,华硕天选6Pro 酷睿版解析
  • 抽丝剥茧探穷境!一次数据库JSON字段的深度使用实践
  • Python+AI入门:避开90%新手坑,到底值不值花这个时间?
  • JavaScript基础课程十三、ES6+ 核心语法(三)——数组与对象高级方法
  • c++11的列表初始化及其底层原理