MCP
how the Apihug support MCP,
支持企业级 MCP,充分利用现有基础设施和授权保护。
自 SDK 版本 1.4.0-RELEASE
及 IDEA 插件 0.7.5
起,支持初始化项目模板的生成。
仅 对 MCP 服务端进行增强。
模型上下文协议(MCP) 是一种标准化协议,使 AI 模型能够以结构化方式与外部工具和资源交互。它支持多种传输机制,以确保在不同环境中具备良好的灵活性。
请注意,目前 MCP 仍处于快速开发阶段,其概念和 API 可能会发生重大变化,且无法保证向后兼容性。
由于这是一个实验性功能,须手动启用!
当前的 MCP 尚未满足企业级要求,例如严格的访问控制,即使在 MCP Java SDK 0.8.0
引入破坏性变更之后也是如此 ⚠️。为此,ApiHug 提供了关键增强功能:
基于 Spring AI,ApiHug 引入了以下增强功能:
libs.versions.toml
apihugVersion
升级至 1.4.0-RELEASE
或更高版本。springAiVersion
升级至 1.0.0
或更高版本;如无,请添加。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
模块hopeStub
:设置 enableMcp = true
// 用于 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
,需指定以下内容:
moduleClassName
:运行时 proto 模块的类名(自包含)。mcp
:控制 MCP 服务的暴露方式 — 指定哪个服务暴露哪些方法(API)。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();
请参考官方 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 端点和消息端点的路径设置为符合你团队最佳实践标准的格式。
以下两个路由将被引入:
GET
/api/mcp/sse
POST
/api/mcp/message
如需了解如何在本地进行 MCP 测试,请参考 Spring 官方示例:
spring-ai-examples - 测试 - ClientSse。
一切已准备就绪!祝你开发顺利,大快朵颐!🍀
将您的 IDEA 插件升级至 0.7.5
或更高版本。新生成的项目将自动包含所有必要的配置,无需像旧项目那样进行手动迁移。
TBD