MCP
在保留企业授权与服务边界的前提下,把 ApiHug 服务暴露为 MCP 能力。
ApiHug 的 MCP 支持,本质上是一个面向企业场景的适配层:让已有服务可以通过 Model Context Protocol 对外暴露,同时继续沿用原有认证、鉴权和服务边界。
ApiHug 在常规应用栈之上补了一层 MCP 集成能力:
裸 MCP 很有价值,但企业系统通常还需要更多东西:
对于老项目,通常需要在三个位置启用 MCP。
在 libs.versions.toml 中补充或更新这些依赖定义:
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" }在 hopeStub 中打开 MCP,并加入运行时依赖:
hopeStub {
enableMcp = true
}
dependencies {
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:哪些 service 与 method 对 MCP 暴露contract:依赖了哪些第三方模块契约示例 DSL:
return myModule.service()
.apiContext()
.orderService(
svc -> {
svc.keepAll();
svc.startsWith("add");
svc.methods(
methods -> {
methods.PlaceOrder();
methods._DeleteOrder();
});
})
.build();
spring:
ai:
mcp:
server:
enabled: true
sse-endpoint: /api/mcp/sse
sse-message-endpoint: /api/mcp/message
name: okai-app-mcp-server
stdio: false
hope:
ai:
mcp:
enabled: true
auth-key: token
这样会暴露两个主要路由:
GET /api/mcp/ssePOST /api/mcp/message新模板可以把这些配置直接带出来;老项目则按上面的迁移步骤处理。