智能连接
2 分钟阅读
简要概述
面向 AI 的连接配置(AI Connector)。一期提供 MCP Server 能力:把既有 gRPC 服务的方法暴露为 MCP(Model Context Protocol)Tools,供支持 MCP 的客户端调用。当前源码未提供 LLM Client 配置,不能将未来能力当作已实现。
配置示例
# AI 连接器配置(MCP Server)
aiconnector:
enable: false
mcp_server:
enable: false
path: /mcp
transport: streamable_http
# AutoBridge 仅暴露 openapiv2.yaml 中 tags 命中此白名单的 gRPC 方法为 MCP tool(OR 语义)
# 默认值 ["mcp"]:仅暴露标注了 tags: [..., "mcp"] 的方法(最小暴露原则)
# 如需暴露其他 tag 的方法,需在此显式追加,例如 ["mcp", "chat"]
# 未设 tags 或未命中白名单的方法不会被暴露
allowed_tags:
- mcp
数据结构
// AIConnectorConfig 智能连接配置
type AIConnectorConfig struct {
Enable bool `mapstructure:"enable"`
MCPServer MCPServerConfig `mapstructure:"mcp_server"`
}
// MCPServerConfig MCP 服务端配置
type MCPServerConfig struct {
Enable bool `mapstructure:"enable"`
Path string `mapstructure:"path"`
Transport string `mapstructure:"transport"`
AllowedTags []string `mapstructure:"allowed_tags"`
}
配置参数
| 名称 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| enable | bool | false | 顶层配置字段;当前 MCP 注册不检查此字段 |
| mcp_server.enable | bool | false | MCP Server 开关 |
| mcp_server.path | string | /mcp | MCP 端点挂载路径(HTTP 服务上) |
| mcp_server.transport | string | streamable_http | 传输协议,可选 streamable_http、sse |
| mcp_server.allowed_tags | []string | [“mcp”] | AutoBridge 暴露方法的 tag 白名单 |
暴露规则
allowed_tags 控制 AutoBridge 的暴露面,匹配为 OR 语义:openapiv2.yaml
中某方法声明的 tags 只要有一个值命中白名单,该方法即被包装为 MCP tool。
- 默认仅暴露显式标注
tags: [..., "mcp"]的方法(最小暴露原则); - 未声明 tags 或未命中白名单的方法不会被暴露;
- 需要扩大暴露面时显式追加,例如
["mcp", "chat"]。
自定义原生 MCP 资源
业务项目可通过 LocalConfig.MCPServerInstance() 获取 MCP Server,注册自定义
原生资源(Tools / Resources / Prompts)。自定义资源不受 allowed_tags
过滤,与 AutoBridge Tool 共存于同一 Server。注册入口在业务侧
handler/private.go 的 privateMCPHandle() 扩展点。
认证
MCP 入口认证调用 security.VerifyHTTPRequest。AutoBridge 将 Authorization Header 传入 Gateway,由后续 RPC 执行权限策略;原生工具需自行实现业务授权,不能仅凭入口认证认定已执行 RPC OPA 策略。
应用场景
最小启用
aiconnector:
enable: true
mcp_server:
enable: true
使用全部默认值:端点 http://<http_address>/mcp,streamable_http 传输,
仅暴露标注 mcp tag 的方法。
生效条件
当前注册逻辑只检查 mcp_server.enable,顶层 enable: false 不能保证关闭 MCP;停用时明确设置 mcp_server.enable: false。自动桥接依赖 Admin 提供的 Gateway/OpenAPI 元数据;Admin 关闭会跳过桥接,但原生资源仍可用。详见MCP 接入实践。