Appearance
对外开放 API(MCP)
系统通过 MCP 协议(Model Context Protocol)把只读工具能力对外暴露,外部系统可经标准 MCP 客户端接入,调用系统的数据查询 / 表结构 / 文档阅读等只读工具。
端点
POST /mcp- 传输方式:Streamable HTTP
- 协议:JSON-RPC 2.0
- 实现范围:MCP 核心三件套
initialize/tools/list/tools/call,加ping - 未实现:
resources/prompts/sampling(对外只开放只读工具能力)
鉴权(两道门)
| 环节 | 说明 |
|---|---|
| 调用方鉴权 | Authorization: Bearer <令牌>,令牌来自系统参数 ai.mcp.server.token;开关 ai.mcp.server.enabled 不打开时一律拒绝。留空 / 关闭即不可用 |
| 代理主体 | X-Mcp-Proxy-Subject: <平台账号>。凡碰数据的调用(tools/call)都必须带,权限与数据域全按该主体算 |
initialize/tools/list不碰数据,按协议允许身份无关地探测(不影响安全:真正的数据访问只在tools/call)。
请求头
| Header | 必填 | 说明 |
|---|---|---|
Authorization | 是 | Bearer <ai.mcp.server.token> |
X-Mcp-Proxy-Subject | tools/call 时必填 | 被代理的平台账号(权限 / 数据域按它算) |
Content-Type | 是 | application/json |
支持的方法
| 方法 | 说明 |
|---|---|
initialize | 握手,协商协议版本 |
ping | 心跳 |
tools/list | 列出可用工具(按代理主体的权限域过滤) |
tools/call | 执行工具调用(真正碰数据,需代理主体) |
系统参数
| 参数 | 默认 | 说明 |
|---|---|---|
ai.mcp.server.enabled | 关闭 | 对外服务开关,不打开一律拒绝 |
ai.mcp.server.token | 空 | 对外服务令牌,留空即不可用 |
对外能力配置(管理端)
- 控制器:
AiMcpServerConfigController,基础路径/ai/mcp-server; - 支持对外服务配置、能力自测、作为被代理主体等;
- 详见 AI 底座内部 API。
示例(tools/list)
http
POST /mcp HTTP/1.1
Content-Type: application/json
Authorization: Bearer <token>
{"jsonrpc":"2.0","id":1,"method":"tools/list"}