启用 MCP 服务
MCP 服务是数据墙DBW 的内置能力,默认开启。你可以在全局和实体两个层级控制 MCP 的启用范围和行为。
MCP 服务实现 MCP 协议版本 2025-06-18,支持两种传输方式:streamable HTTP(适合标准托管场景)和 stdio(适合本地开发或 CLI 场景)。
IMPORTANT
数据墙DBW 的 SQL MCP 服务器刻意不支持 NL2SQL。它采用 NL2DBW 模式——依托安全的数据墙DBW 实体抽象层与内置查询构造器,以完全确定性的方式生成准确、格式良好的 T-SQL。这避免了 NL2SQL 带来的风险、额外成本和干扰。同时,MCP 服务器面向数据操作(DML)而非 schema 变更(DDL),符合生产环境中 MCP 的典型使用方式。
全局配置
{
"runtime": {
"mcp": {
"enabled": true,
"path": "/mcp",
"dml-tools": {
"describe-entities": true,
"create-record": true,
"read-records": true,
"update-record": true,
"delete-record": true,
"execute-entity": true,
"aggregate-records": {
"enabled": true,
"query-timeout": 30
}
}
}
}
}配置字段
| 字段 | 说明 | 默认值 |
|---|---|---|
enabled | 全局启用 MCP 服务 | true |
path | HTTP 模式下 MCP 端点路径,Stdio 模式忽略 | "/mcp" |
description | 向 MCP 客户端说明服务器用途的 instructions 字段 | — |
dml-tools | DML 工具开关,布尔值(全部开/关)或对象(逐个控制) | 全部启用 |
dml-tools 两种写法
布尔值(全部统一控制):
{
"dml-tools": true
}对象(逐个控制):
{
"dml-tools": {
"describe-entities": true,
"read-records": true,
"delete-record": false
}
}aggregate-records 支持额外的 query-timeout 字段(1–600 秒,默认 30):
{
"aggregate-records": {
"enabled": true,
"query-timeout": 120
}
}CLI 配置
# 全局开关
dab configure --runtime.mcp.enabled true
# 逐一控制工具
dab configure --runtime.mcp.dml-tools.read-records true
dab configure --runtime.mcp.dml-tools.delete-record false
dab configure --runtime.mcp.dml-tools.aggregate-records.query-timeout 60实体级 MCP 控制
每个实体可以独立控制是否对 MCP 代理暴露:
{
"Book": {
"source": { "object": "dbo.books", "type": "table" },
"mcp": {
"dml-tools": true
}
},
"SensitiveData": {
"source": { "object": "dbo.sensitive", "type": "table" },
"mcp": {
"dml-tools": false
}
}
}默认行为:未配置 mcp 字段的实体自动参与 MCP,等同于 "dml-tools": true。
为什么要在实体级禁用
| 场景 | 做法 |
|---|---|
| 敏感数据表不希望被 AI 代理访问 | 实体级 dml-tools: false |
| 仅对 REST/GraphQL 客户端暴露的表 | 同上 |
| 内部管理表,仅运维人员使用 | 同上 |
CLI 配置
dab update SensitiveData --mcp.dml-tools false两种传输模式
| 模式 | 启动方式 | 适用场景 | 网络端口 |
|---|---|---|---|
| Streamable HTTP | dab start | 远程服务、多客户端共享 | 开放 |
| Stdio | dab start --mcp-stdio | 本地开发、进程内集成 | 不开放 |
HTTP 模式
服务正常启动,MCP 端点与 REST、GraphQL 并行运行在同一个端口上。客户端通过 http://host:5000/mcp 访问。
Stdio 模式
服务不打开网络端口,通过标准输入/输出(stdin/stdout)与 MCP 客户端进程通信。适用于 VS Code + GitHub Copilot、Claude Desktop 等本地代理。
启动验证
启动服务后,确认 MCP 端点可访问:
# HTTP 模式
curl http://localhost:5000/mcp
# Stdio 模式(由 MCP 客户端管理进程,无需手动验证)MCP 端点遵循 MCP 协议规范,客户端通过 initialize、tools/list、tools/call 等标准协议交互。
下一步
- 连接 MCP 客户端 — 配置 VS Code、Claude Desktop 等客户端。
- 数据操作工具 — 七个 DML 工具的详细用法。
NOTE
read_records 工具的结果会自动使用数据墙DBW 的缓存系统进行缓存。缓存全局启用并按实体可配置,支持一级缓存和二级缓存。
