Apihug 1.4.1-RELEASE + Plugin 0.7.5 一键让你 Spring 程序拥有企业级MCP 功能

ApiHug MCP Support - ApiHughow the Apihug support MCP,https://apihug.github.io/zhCN-docs/mcp/001_start

ApiHug

支持企业级 MCP,充分利用现有基础设施和授权保护。

自 SDK 版本 1.4.0-RELEASE 及 IDEA 插件 0.7.5 起,支持初始化项目模板的生成。

 对 MCP 服务端进行增强。

​最新版本

Maven Central: com.apihug:it-bomDiscover it-bom in the com.apihug namespace. Explore metadata, contributors, the Maven POM file, and more.https://central.sonatype.com/artifact/com.apihug/it-bom?smo=trueApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplacehttps://plugins.jetbrains.com/plugin/23534-apihug--api-design-copilot

概述

模型上下文协议(MCP) 是一种标准化协议,使 AI 模型能够以结构化方式与外部工具和资源交互。它支持多种传输机制,以确保在不同环境中具备良好的灵活性。

请注意,目前 MCP 仍处于快速开发阶段,其概念和 API 可能会发生重大变化,且无法保证向后兼容性。

由于这是一个实验性功能,须手动启用!

当前的 MCP 尚未满足企业级要求,例如严格的访问控制,即使在 MCP Java SDK 0.8.0 引入破坏性变更之后也是如此 ⚠️。为此,ApiHug 提供了关键增强功能:

  1. 企业级安全性:完整的访问控制机制,与现有企业架构保持一致。
  2. 最小化集成影响:复用现有基础设施和标准,对系统改动极小。

基于 Spring AI,ApiHug 引入了以下增强功能:

  1. 自定义协议层:无缝注入自定义授权和会话管理。
  2. 适配层:连接现有后端服务与 MCP 标准,不影响原有逻辑。
  3. 统一资源控制:应用一致的验证和授权机制。
  4. 细粒度暴露控制:精确控制哪些资源通过 MCP 暴露,细化到每个 API。

​迁移指南

​libs.versions.toml

  1. 将 apihugVersion 升级至 1.4.0-RELEASE 或更高版本。
  2. 将 springAiVersion 升级至 1.0.0 或更高版本;如无,请添加。
  3. 添加以下依赖库:
    • apihug-spring-ai-mcp = { group = "com.apihug", name = "it-common-spring-ai-mcp" }
    • spring-ai-bom = { group = "org.springframework.ai", name = "spring-ai-bom", version.ref = "springAiVersion" }
    • spring-ai-starter-mcp-server = { group = "org.springframework.ai", name = "spring-ai-starter-mcp-server" }

​app 模块

  1. 启用 hopeStub:设置 enableMcp = true
  2. 添加以下依赖:
// 用于 MCP — 当前版本正在评审中
implementation(libs.apihug.spring.ai.mcp)
implementation platform(libs.spring.ai.bom)
implementation(libs.spring.ai.starter.mcp.server)

​服务加载器

要扩展 hope.common.service.contract.ContractAdapter,需指定以下内容:

  1. moduleClassName:运行时 proto 模块的类名(自包含)。
  2. mcp:控制 MCP 服务的暴露方式 — 指定哪个服务暴露哪些方法(API)。
  3. contract:定义第三方模块依赖 — 哪个服务依赖于哪些方法(API)。

服务过滤DSL:

  return myModule.service()
          .apiContext()
          .orderService(
              svc -> {
                // Keep all the methods of this service
                svc.keepAll();
                // All the method start with, feel free try other shortcut
                svc.startsWith("add");
                // Pick method one by one
                svc.methods(
                    methods -> {
                      // Include this method
                      methods.PlaceOrder();
                      // Exclude this method, start with `_`
                      methods._DeleteOrder();
                    });
              })
          .build();

​Spring Server AI 配置

请参考官方 MCP Server Boot Starter 文档,启用 MCP 服务。

spring:
  ai:
    mcp:
      server:
        enabled: true
        # default /sse
        sse-endpoint: /api/mcp/sse
        # default /mcp/message
        sse-message-endpoint: /api/mcp/message
        name: okai-app-mcp-server
        stdio: false
hope:
  ai:
    mcp:
      enabled: true
      auth-key: token

有关 spring.ai.mcp.server 的配置详情,请参考官方文档:
MCP Server Boot Starter - 配置属性

提示: 请确保将 SSE 端点和消息端点的路径设置为符合你团队最佳实践标准的格式。

以下两个路由将被引入:

  1. GET /api/mcp/sse
  2. POST /api/mcp/message

如需了解如何在本地进行 MCP 测试,请参考 Spring 官方示例:
spring-ai-examples - 测试 - ClientSse

一切已准备就绪!祝你开发顺利,大快朵颐!🍀

​新模板

将您的 IDEA 插件升级至 0.7.5 或更高版本。新生成的项目将自动包含所有必要的配置,无需像旧项目那样进行手动迁移。

​示例

TBD

​Refer

  1. MCP Server Boot Starter
  2. Model Context Protocol
  3. MCP Java SDK
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ApiHug

God Bless U

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值