ERD Online 5.0.0:用 MCP 让 Agent 读取已保存的数据模型

2026-08-31 37 预计阅读时间: 1 分钟
来源: oschina.net AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:8 分钟

ERD Online 5.0.0 的变化,重点不在于“又增加了一个数据库工具”,而在于把已经保存的模型版本开放给 Agent 读取。Agent 可以通过 MCP 查看表结构和外键关系,而不需要把生产数据库凭证放进 IDE,也不会在 MCP 通道中直接执行 SQL。

这让数据库设计评审、影响分析和文档生成更容易接入 Cursor、Claude Desktop、Claude Code、Cline、Devin、VS Code 等开发工具。对团队来说,Agent 看到的是经过保存和管理的数据模型,权限边界也更清晰。

MCP 暴露了什么

5.0.0 提供了面向模型阅读的 MCP 能力。摘要中明确提到两个读取工具:

  • list_tables:列出模型中的表。
  • describe_table:查看表结构,并包含外键邻域信息。

“外键邻域”很关键。单独看一张表时,Agent 只能理解字段和类型;拿到关联表后,它才有机会回答“修改这个字段会影响哪些业务关系”“这个实体的上下游表是什么”等问题。

这类能力适合以下场景:

  • 根据已保存模型生成数据字典。
  • 分析字段或表结构变更的潜在影响。
  • 帮助开发者理解陌生业务域。
  • 在编写迁移脚本前检查相关表和外键关系。
  • 为接口设计或代码评审提供结构上下文。

需要注意,MCP 在这里承担的是模型读取职责,不是数据库代理。它不应被理解为一个可以连接生产库并执行任意 SQL 的通道。

为什么不把生产凭证交给 IDE

让 Agent 直接连接生产数据库,通常会同时引入几类风险:凭证泄露、权限过宽、查询不可控,以及开发工具对生产数据的间接暴露。即使 Agent 只被要求“看一下表结构”,连接本身也可能赋予它超出任务范围的能力。

ERD Online 的做法是把已保存的模型版本作为读取边界:

IDE / Agent
    |
    | MCP
    v
ERD Online 已保存模型版本
    |
    | 表结构、字段、外键邻域
    v
Agent 生成分析或文档

这样做并不等于模型天然就是最新的。它更像一个经过团队确认的结构快照。对于数据库频繁变化的项目,团队仍需要建立模型更新和版本确认流程,并在回答中区分“模型中的信息”和“生产环境当前状态”。

配置一个 MCP 客户端

不同客户端的配置文件格式可能不同,具体字段名称以客户端版本为准。下面是一个可改造的通用 JSON 配置示例,服务地址使用同一条 MCP 远程地址:

{
  "mcpServers": {
    "erd-online": {
      "url": "https://api.erdonline.com/mcp"
    }
  }
}

可以把它放进客户端支持的 MCP 配置中,然后重启客户端并检查工具列表。一个最小的验证提示词可以这样写:

请使用 erd-online MCP:
1. 列出当前模型中的所有表;
2. 查看 orders 表的字段、主键和外键邻域;
3. 只基于已保存模型回答,不要执行 SQL;
4. 如果模型信息不足,请明确说明不确定性。

如果客户端通过命令行管理 MCP,可以先保存配置文件,再按客户端文档导入。例如,下面的文件本身是标准 JSON,可作为配置内容基础:

cat > erd-online-mcp.json <<'JSON'
{
  "mcpServers": {
    "erd-online": {
      "url": "https://api.erdonline.com/mcp"
    }
  }
}
JSON

python -m json.tool erd-online-mcp.json

这段命令只负责生成并校验 JSON,不会连接数据库,也不会执行 SQL。实际接入时需要根据所使用的 Cursor、Claude Desktop、Claude Code、Cline、Devin 或 VS Code 的 MCP 配置方式进行映射。

让 Agent 的回答保持可审计

接入模型读取能力后,提示词仍然需要约束边界。可以采用这样的规则:

你是数据库结构分析助手。

数据来源:ERD Online 中已保存的模型版本。
允许操作:list_tables、describe_table。
禁止操作:执行 SQL、读取生产数据、猜测模型中不存在的字段。
输出要求:
- 标注涉及的表和字段;
- 说明外键关系的方向;
- 无法从模型确认的内容写为“需要人工确认”;
- 不要把模型快照描述成生产环境实时状态。

这会直接影响结果质量。Agent 不仅要“能读”,还要知道自己读到的是什么、没有读到什么。尤其在做迁移评估时,结构模型可以帮助发现关系,但不能替代应用代码搜索、数据量评估、线上监控和人工审批。

采用时的检查清单

  • 确认团队维护的是哪个模型版本。
  • 为模型版本建立清晰的命名或发布约定。
  • 不把生产数据库账号、密码或连接串写入 IDE 配置。
  • 将 MCP 当作结构读取入口,而不是 SQL 执行入口。
  • 要求 Agent 标注依据的表、字段和外键关系。
  • 对生产变更继续执行现有的评审、测试和发布流程。
  • 在模型可能过期时,明确提示“需要人工确认实时状态”。

ERD Online 5.0.0 的价值,是把数据库结构从静态图纸变成 Agent 可以消费的上下文,同时保留一个相对清楚的安全边界。适合从低风险的读操作开始:先生成数据字典和关系说明,再逐步接入影响分析;涉及真实数据和生产变更时,仍应保留独立的权限控制与人工审批。


相关推荐