Back to Discover

sqemo-mcp

connector

sqemo

Design ERDs with your team's naming standards: query/edit entities and relationships, SQL/DBML

View on GitHub
0 starsSynced Aug 6, 2026

Install to Claude Code

/plugin marketplace add sqemo/sqemo-mcp

README

sqemo-mcp

MCP server for Sqemo — design ERDs with your team's naming standards.

AI agents can query and edit entities, relationships, and domains; generate physical names from a shared team glossary; import/export SQL (7 dialects) and DBML; and compare the model against a live database. Works with both local .erd.json files and ERDs stored on the Sqemo cloud.

Requires Node.js >= 22. Local-file tools work without any account or configuration. Login is needed for cloud ERD tools, and for the tools marked (Pro) below.

Installation

Claude Code (.mcp.json)

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

Claude Desktop

Add the same mcpServers entry to your config file:

  • 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"] }
  }
}

Login (cloud ERDs and Pro tools)

npx sqemo-mcp login    # email + password → stores a refresh token
npx sqemo-mcp logout   # removes stored credentials

Credentials are stored in ~/.erdmaker/credentials.json (mode 0600 on POSIX); your password is never persisted.

What you can do

36 tools in total.

Read (17 tools)

ToolDescription
list_erds / list_workspacesCloud ERDs and workspaces you belong to (login required)
get_erd_overviewName, dialect, entity/relationship/domain/glossary stats
list_entities / get_entityEntity list and full detail (attributes, keys, logical/physical mapping)
list_relationshipsRelationships with endpoints and cardinality
list_domainsDomain definitions (also from workspace standard glossaries)
search_dictionarySearch the team glossary (logical/physical words, abbreviations, synonyms)
check_namingCheck a logical name against the team naming standard
generate_physical_nameLogical name → physical name via glossary + naming rules
export_sqlCREATE TABLE SQL — mysql, postgres, cubrid, oracle, sqlserver, sqlite, h2
export_dbmlDBML text
validate_erd / lint_erdStructural validation and full lint (naming drift, referential integrity, duplicates)
diff_erdsDiff two sources (files, cloud ERDs, or raw SQL/DBML text) — dry-run before imports
export_alter_sqlMigration (ALTER) script from the physical diff against a baseline — renames stay renames via stable IDs, destructive changes come commented out (Pro)
list_proposalsGlossary proposal queue status (login required)

Live database (2 tools)

Read-only against your own database. Both query only the information schema — never table data — and the connection URL is used by this local process only, never sent to Sqemo servers.

ToolDescription
introspect_dbImport a live PostgreSQL/MySQL schema into an existing ERD (Pro)
check_db_driftCheck a live database or a schema dump against the ERD's physical model — missing/extra tables and columns, PK/FK/NOT NULL mismatches (Pro)

Write (17 tools)

ToolDescription
create_erdNew ERD from scratch or from SQL/DBML text — to a file or the cloud
upsert_entity / delete_entityEntity editing with automatic physical-name derivation
upsert_attribute / delete_attributeAttribute editing — PK rules and FK propagation handled automatically
upsert_relationship / delete_relationshipRelationship editing with automatic FK derivation
upsert_domain / delete_domainDomain definition editing
upsert_dictionary_word / delete_dictionary_wordGlossary editing (standard-linked glossaries are protected)
update_naming_rulesNaming rule editing (delimiter, case, unknown-word handling)
import_sql / import_dbmlReplace an ERD from parsed SQL/DBML (IDs preserved)
auto_layoutAutomatic entity/table layout (dagre)
propose_dictionary_word / withdraw_proposalPropose new glossary words for owner approval

Cloud writes require owner or shared-editor permission and are protected by version CAS with 3-way auto-merge for concurrent edits.

CLI for CI pipelines

Offline, file-based subcommands (no login needed):

# 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

Drift mode compares the model against a real database or a dump, and exits 1 when they disagree (Pro, requires login):

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 example:

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

Environment variables

VariablePurpose
ERDMAKER_HOMEOverride the credentials directory (default ~/.erdmaker)
ERDMAKER_SUPABASE_URLOverride the API URL (defaults to the Sqemo cloud)
ERDMAKER_SUPABASE_ANON_KEYOverride the API publishable key
ERDMAKER_MAX_REQUESTS_PER_MINUTEPer-minute request cap (default 120, 0 disables)
ERDMAKER_MAX_REQUESTS_PER_DAYDaily request cap (default 10000, 0 disables)

The request caps are a safety net against agents stuck in loops; exceeding them returns a rate_limited error that tells the agent to stop and notify the user.

Errors

All tool errors return { code, message } — e.g. not_authenticated, no_permission, save_conflict (retry after re-reading), validation_failed, rate_limited.

Links

License

MIT

Rendered live from sqemo/sqemo-mcp's GitHub README — not stored, always reflects the source repo.

1 Install Method

NameDescriptionCategorySource
npm packageInstall via npm (stdio transport)mcp-serversqemo-mcp

0 Comments

Login required
Log in to post a comment or update on this repo.

No comments yet — be the first to share an update.