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调用准确性。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐