mcpField
S
sqemo

sqemo

本地服务
sqemo.com数据库010 周前更新

关于 sqemo

sqemo-mcp 让 AI Agent 和数据库团队按共享命名规范设计 ERD。它支持本地文件与云端 ERD、模式导入导出,以及依据命名规则或实时数据库进行校验。

主要功能

  1. 01查询和编辑实体及关系
  2. 02根据团队词汇表生成物理名称
  3. 03导入和导出 SQL 与 DBML
  4. 04校验并检查 ERD 模型
  5. 05将模型与实时数据库模式比较
  6. 06通过命令行离线检查和导出

适用场景

  1. 01按团队命名规则设计模式
  2. 02导入前审查 ERD 变更
  3. 03从模型导出 SQL 或 DBML
  4. 04在 CI 中发现命名偏差
  5. 05将 ERD 与数据库模式比较

MCP 相关

MCP 服务提供读取和编辑 ERD、应用团队命名规范以及导入导出 SQL 和 DBML 的工具。本地 `.erd.json` 文件无需账户;云端 ERD 和 Pro 工具需要登录。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sqemo-sqemo": {
"command": "npx",
"args": [
"-y",
"sqemo-mcp"
]
}
}
}
启动命令npx -y sqemo-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmsqemo-mcp2.8.3

工具

39

收录的工具列表 · 更新于 2 周前

参数类型必填说明
sourceany是目标 ERD——本地文件({file})或服务器 ERD({erdId})二选一

详细介绍

sqemo-mcp

npm version npm downloads MCP Registry Node License: MIT

适用于 Sqemo 的 MCP 服务 — 遵循团队数据库命名规范的 AI Agent。

Agent 使用业务术语建模("Customer Number");根据你们的词表,列名会生成为 cust_no ,因为 customer → cust、number → no(大小写和分隔符也是规则, 因此只需一项设置就能改为 CUST_NO)。相同的输入,在每张 表、每个 Agent 中都会得到相同的名称。允许覆盖,但会标记出来;CLI lint 会在 CI 中检查偏差。

{ "mcpServers": { "sqemo": { "command": "npx", "args": ["-y", "sqemo-mcp"] } } }

适用于 Claude Code、Claude Desktop、Cursor 以及任何 MCP 客户端。本地 .erd.json 文件 无需账号;云端 ERD 和 Pro 工具需要运行 npx sqemo-mcp login。

效果展示

为讨论区建模:成员可以发布文章,帖子可以回复其他 帖子,成员也可以对帖子发表评论。

Agent 使用逻辑名称调用工具,从不输入列名:

upsert_entity    { logicalName: "Post" }
// → { physicalName: "POST" }

upsert_attribute { logicalName: "Post Content", domain: "Content" }
// → { physicalName: "POST_CNTS" }          // Content → CNTS: from the team word list

upsert_attribute { logicalName: "Delete Flag", domain: "Flag" }
// → { physicalName: "DELETE_YN" }          // Flag → YN: same rule in every table

lint_erd
// → naming drift, missing words, referential integrity — before any DDL is written

CNTS 和 YN 并非 Agent 自己的偏好,而是词表中的缩写,以 团队其他每张模型表中相同的方式应用。域决定数据 类型,因此 Content 无论出现在哪里,都是 varchar(1000)。

使用 AI Agent 构建数据库架构——无需命名任何列(3:25)

查看包含每次工具调用的完整演示:描述工作,获取符合规范的架构。

概述

AI Agent 可以查询和编辑实体、关系与域;根据团队共享词汇表生成物理名称;导入/导出 SQL(7 种方言)和 DBML;并将模型与实时数据库进行比较。支持本地 .erd.json 文件以及存储在 Sqemo 云端的 ERD。

需要 Node.js >= 22。本地文件工具无需任何账号或配置。 云端 ERD 工具以及下方标记为 (Pro) 的工具需要登录。

安装

Claude Code(.mcp.json)
{
  "mcpServers": {
    "sqemo": { "command": "npx", "args": ["-y", "sqemo-mcp"] }
  }
}
Claude Desktop

将相同的 mcpServers 条目添加到配置文件中:

  • Windows:%APPDATA%\Claude\claude_desktop_config.json
  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Cursor(.cursor/mcp.json)
{
  "mcpServers": {
    "sqemo": { "command": "npx", "args": ["-y", "sqemo-mcp"] }
  }
}

登录(云端 ERD 和 Pro 工具)

npx sqemo-mcp login    # pick Google, GitHub, or email + password
npx sqemo-mcp logout   # removes stored credentials

login 会询问你想要如何登录。使用 Google 和 GitHub 时,会打开浏览器标签页,完成 PKCE OAuth 流程,并通过 127.0.0.1 上的一次性回环服务器返回会话;第三种选项则是在终端中输入电子邮件和密码。只会存储刷新令牌。

  • 凭据存储在 ~/.erdmaker/credentials.json 中(POSIX 系统上权限为 0600); 不会保存你的密码。
  • 非交互式快捷方式: --password 强制使用电子邮件 + 密码方式, --provider google|github 强制使用浏览器方式。
  • 管道输入会跳过菜单,直接进入电子邮件 + 密码方式,因此现有 自动化仍可正常工作:printf 'email\npassword\n' | npx sqemo-mcp login
  • 浏览器方式需要在同一台机器上运行浏览器(回调会返回到 127.0.0.1)。通过 SSH 或在 CI 中运行时,请使用 --password 或 SQEMO_EMAIL / SQEMO_PASSWORD 环境变量。

可以做什么

共 36 个工具。

读取(17 个工具)
工具描述
list_erds / list_workspaces你所属的云端 ERD 和工作区(需要登录)
get_erd_overview名称、方言、实体/关系/领域/术语表统计信息
list_entities / get_entity实体列表和完整详情(属性、键、逻辑/物理映射)
list_relationships关系及其端点和基数
list_domains领域定义(也包括工作区标准术语表中的内容)
search_dictionary搜索团队术语表(逻辑/物理词语、缩写、同义词)
check_naming根据团队命名规范检查逻辑名称
generate_physical_name根据术语表和命名规则,将逻辑名称转换为物理名称
export_sqlCREATE TABLE SQL — mysql、postgres、cubrid、oracle、sqlserver、sqlite、h2
export_dbmlDBML 文本
validate_erd / lint_erd结构验证和完整 lint 检查(命名偏差、参照完整性、重复项)
diff_erds对比两个来源(文件、云端 ERD 或原始 SQL/DBML 文本)——导入前进行试运行
export_alter_sql根据与基线的物理差异生成迁移(ALTER)脚本——重命名通过稳定 ID 保持为重命名,破坏性更改会注释掉(Pro)
list_proposals术语表提案队列状态(需要登录)
实时数据库(2 个工具)

对你自己的数据库进行只读操作。两个工具都只查询信息架构—— 绝不读取表数据;连接 URL 仅由此本地进程使用, 绝不会发送到 Sqemo 服务器。

工具描述
introspect_db将实时 PostgreSQL/MySQL 架构导入现有 ERD(Pro)
check_db_drift根据 ERD 的物理模型检查实时数据库或架构转储——检查缺失/多余的表和列,以及 PK/FK/NOT NULL 不匹配(Pro)
写入(17 个工具)
工具描述
create_erd从头创建 ERD,或根据 SQL/DBML 文本创建——保存到文件或云端
upsert_entity / delete_entity编辑实体并自动推导物理名称
upsert_attribute / delete_attribute编辑属性——自动处理 PK 规则和 FK 传播
upsert_relationship / delete_relationship编辑关系并自动推导 FK
upsert_domain / delete_domain编辑领域定义
upsert_dictionary_word / delete_dictionary_word编辑术语表(受标准术语表关联保护)
update_naming_rules编辑命名规则(分隔符、大小写、未知词处理方式)
import_sql / import_dbml根据解析后的 SQL/DBML 替换 ERD(保留 ID)
auto_layout自动排列实体/表(dagre)
propose_dictionary_word / withdraw_proposal提交新的术语表词条,供所有者审批

云端写入需要所有者或共享编辑者权限,并通过版本 CAS 保护,支持并发编辑时的三方自动合并。

面向 CI 流水线的 CLI

离线、基于文件的子命令(无需登录):

# Naming-standard check — exits 1 on violations, great as a CI gate
npx sqemo-mcp lint schema.erd.json

# Schema export to stdout
npx sqemo-mcp export schema.erd.json --format sql --dialect postgres > schema.sql
npx sqemo-mcp export schema.erd.json --format dbml > schema.dbml

漂移模式会将模型与真实数据库或转储进行比较;如果两者不一致,则退出代码为 1(Pro,需要登录):

npx sqemo-mcp lint schema.erd.json --db "$DATABASE_URL" [--db-schema public] [--strict]
npx sqemo-mcp lint schema.erd.json --schema dump.sql --dialect postgres
npx sqemo-mcp lint --erd <cloud-erd-id> --db "$DATABASE_URL" --ignore 'tmp_*'

GitHub Actions 示例:

- run: npx sqemo-mcp lint schema.erd.json
- run: npx sqemo-mcp lint schema.erd.json --db "${{ secrets.DATABASE_URL }}"

环境变量

变量用途
SQEMO_EMAIL / SQEMO_PASSWORD用于 CI 和 SSH 会话的非交互式登录(无需浏览器)
ERDMAKER_HOME覆盖凭据目录(默认 ~/.erdmaker)
ERDMAKER_SUPABASE_URL覆盖 API URL(默认使用 Sqemo 云服务)
ERDMAKER_SUPABASE_ANON_KEY覆盖 API 可发布密钥
ERDMAKER_MAX_REQUESTS_PER_MINUTE每分钟请求上限(默认 120,0 表示禁用)
ERDMAKER_MAX_REQUESTS_PER_DAY每日请求上限(默认 10000,0 表示禁用)

请求上限可防止 Agent 陷入循环;超出上限时会返回 rate_limited 错误,提示 Agent 停止并通知用户。

错误

所有工具错误都会返回 { code, message },例如 not_authenticated、no_permission、save_conflict(重新读取后重试)、validation_failed、rate_limited。

链接

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。