MCP 服务端(forge-plugin-mcp)
forge-plugin-mcp 将 Forge 的开放能力(Capability)投影为 MCP 工具,通过 Spring AI MCP Server 的 Streamable HTTP 传输暴露给外部 AI Agent / 客户端,并在调用链路上注入调用方身份与鉴权。
能力定位
| 能力 | 说明 |
|---|---|
| 能力 → 工具投影 | 把能力平台的业务动作 / 流程动作映射为 MCP 工具(McpCapabilityAdapter) |
| Schema 投影 | 按工具调用方裁剪能力参数 Schema(McpToolSchemaProjector) |
| 结果映射 | 把能力调用结果映射为 MCP 统一结构(McpCapabilityResultMapper) |
| 身份解析 | 从传输上下文解析调用方身份(McpCallerContextResolver) |
| 鉴权与守卫 | 端点鉴权过滤器 + 协议守卫(ForgeMcpAuthenticationFilter、ForgeMcpProtocolGuard) |
关键类
| 类 | 职责 |
|---|---|
ForgeMcpServerAutoConfiguration | MCP 服务端自动装配 |
ForgeMcpProtocolGuard | 协议守卫 |
ForgeMcpAuthenticationFilter | MCP 端点鉴权过滤器 |
McpCallerContextResolver | 调用方身份解析 |
McpRequestLifecycle | 请求生命周期扩展点(默认 noop) |
ForgeMcpTransportContextExtractor | 传输上下文提取 |
McpToolSchemaProjector | 工具 Schema 投影 |
McpCapabilityResultMapper | 能力结果映射 |
McpCapabilityAdapter | 能力 → 工具适配 |
McpToolContributor / McpToolContributorAggregator | 工具贡献 SPI |
配置
MCP 服务端复用 Spring AI 的配置前缀 spring.ai.mcp.server,由 forge-plugin-mcp 在能力自动装配之后增强:
| 配置 | 说明 |
|---|---|
spring.ai.mcp.server.enabled | 设为 true 启用 MCP 服务端 |
spring.ai.mcp.server.streamable-http.mcp-endpoint | Streamable HTTP 端点路径 |
启用后,ForgeMcpServerAutoConfiguration 会装配鉴权过滤器与 Streamable HTTP 传输,端点受 ForgeMcpAuthenticationFilter 保护。
安全模型
- MCP 调用链路要求携带调用方身份,由
McpCallerContextResolver解析并注入上下文,能力执行时按调用主体做授权。 ForgeMcpProtocolGuard对协议请求做守卫校验。McpRequestLifecycle提供请求生命周期扩展点,可自定义审计或阻断逻辑。- 只有已发布且对调用方可见的能力才会投影为可调用工具。
相关文档
- 开放平台(能力开放) — 能力目录与机器客户端
- AI Plugin 模块参考 — AI 供应商与 Agent 能力
