Sqemo MCP server
Design ERDs with your team's naming standards: query/edit entities and relationships, SQL/DBML
0 stars137 downloads/wk
Reviews
Write oneNobody has reviewed Sqemo yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Sqemo tools (39, 11 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
auto_layoutAuto-arranges entities by relationships (dagre LR). Entities with no relationship are placed in a grid below the connected ones instead of a single vertical column (2.8.2+). v5 has a single shared layout (no separate logical/physical placement \u2014 the removed `view` parameter had no other effect). Reference copies, notes, and relationship waypoints are not moved.
check_db_driftChecks whether a live database (url) or a schema dump (schemaSql) has drifted from the ERD's physical model. Errors: missing/extra tables and columns, PK/FK/NOT NULL mismatches. Warnings (strict promotes to errors): type/unique/auto-increment representation differences. Read-only; the database URL never leaves this process. Pro plan required; requires login.
check_namingChecks a logical name against the team naming standard (word list + rules). With physicalName, compares it to the generated name (providedMatches). With a {workspaceId} source, reads the latest workspace-standard master.
create_erdwrite actionCreates a new ERD \u2014 empty or from SQL/DBML text. With a {file} target it saves locally; with {server:true} it saves to the server (login required). Pass workspaceId to bind it to that workspace's naming standard from the start.
delete_attributewrite actionDeletes an attribute.
delete_dictionary_wordwrite actionDeletes a glossary entry. Standard-linked (glossaryLink) dictionaries are rejected with dictionary_is_linked.
delete_domainwrite actionDeletes a domain (attributes referencing it are unlinked).
delete_entitywrite actionDeletes an entity (including its relationships).
delete_relationshipwrite actionDeletes a relationship (including derived FKs).
diff_erdsCompares two ERD sources (entities/attributes/domains/relationships \u2014 unchanged omitted). A dry run before full-replace import_sql/import_dbml. A side freshly parsed from text has different ids, so most items appear as added/removed \u2014 matching the actual import behavior (full replace). summary aggregates entities only; see the arrays for domain/relationship changes.
export_alter_sqlGenerates a migration (ALTER) script from the physical diff between a baseline and the current model \u2014 renames stay renames (stable-id matching), destructive changes come commented out, unsupported changes are flagged as [WARNING] comments. Baselines from the same project lineage ({file}/{erdId}) preserve renames; freshly parsed SQL/DBML text falls back to name matching. Pro plan required; re
export_dbmlExports the project as DBML text.
export_sqlExports the physical model as CREATE TABLE SQL. Without dialect, uses the project dialect.
generate_physical_nameGenerates a physical name from a logical name via the word list and naming rules (unregistered words go to warnings). With a {workspaceId} source, reads the latest workspace-standard master.
get_entityEntity detail (attributes and physical mapping). Prefers entityId; otherwise exact logicalName match (first hit on duplicates).
get_erd_overviewReturns an ERD summary (entity/relationship/domain/word-list stats, standard link status).
import_dbmlFully replaces an existing ERD with the DBML parse result (project id preserved, dialect fixed to mysql). Rejected as invalid_source when no tables are found.
import_sqlFully replaces an existing ERD with the SQL parse result (project id preserved). Rejected as invalid_source when no tables are found.
introspect_dbImports the schema of a live PostgreSQL/MySQL database into an existing ERD (full replace, project id preserved). Read-only \u2014 queries only the information schema/catalog; never reads table data. The database URL is used by this local process only and is never sent to Sqemo servers. Pro plan required; requires login.
lint_erdLints the whole project \u2014 structure (PKs, attributes, descriptions, domains), referential integrity, duplicate physical names (including names that differ only by case, which collide on case-insensitive databases), duplicate logical entity names, identifier length limits (dialect-aware, tables/columns/indexes/FK constraints), auto-increment on non-integer column types (dialect-aware), and the
list_domainsLists domain definitions (name, data type). With a {workspaceId} source, reads the latest workspace-standard master.
list_entitiesLists entities (logical name, physical name, attribute count).
list_erdsLists server ERDs (owned/shared). Owner and shared editors can both write. Requires login \u2014 `npx sqemo-mcp login`.
list_proposalsLists the workspace-standard proposal queue (word/domain, newest first, mine = my proposals). Filterable by status. Requires login.
list_relationshipsLists relationships (endpoint entity names, cardinality, identifying flag).
list_workspacesLists my workspaces (owner first) and whether a standard (word list + naming rules) exists. Requires login.
propose_dictionary_wordProposes a new word for the workspace standard's word list (the owner approves/rejects in the web app). source is {workspaceId} or a standard-linked ERD ({file}/{erdId}, resolved via glossaryLink). Registered words return already_exists; a pending duplicate returns already_proposed. Requires login.
search_dictionaryPartial-match word-list search across logical/physical/abbreviation/English/synonyms (case-insensitive, max 50). With a {workspaceId} source, reads the latest workspace-standard master.
update_naming_ruleswrite actionPartially updates the naming rules (delimiter, case, unknown-word handling, self-reference role prefix). Existing physical names are not regenerated retroactively (noted in warnings) \u2014 set the rules before modelling.
upsert_attributewrite actionCreates an attribute (no attributeId, logicalName required) or updates one (attributeId given, only provided fields change). primaryKey=true forces nullable=false and propagates child FKs. With a domain, the domain decides the data type. autoIncrement marks the column as identity \u2014 exported as AUTO_INCREMENT (mysql/cubrid/h2), IDENTITY(1,1) (sqlserver), or GENERATED BY DEFAULT AS IDENTITY (po
upsert_attributesBulk form of upsert_attribute: creates/updates many attributes \u2014 across any number of entities \u2014 in ONE load/save (use this instead of calling upsert_attribute in a loop; each single call costs several server requests and counts against the per-minute cap). Same per-item semantics, applied in order (primaryKey propagates child FKs; a domain decides the data type); all-or-nothing; results
upsert_dictionary_wordAdds a glossary entry (upsert by logicalWord) or updates one (entryId given). Physical words are normalized to uppercase. Standard-linked (glossaryLink) dictionaries are rejected with dictionary_is_linked.
upsert_dictionary_wordsBulk form of upsert_dictionary_word: adds or updates many glossary entries in ONE load/save (use this instead of calling upsert_dictionary_word in a loop \u2014 each single call costs several server requests and counts against the per-minute cap). Same per-item semantics (upsert by logicalWord, physical words uppercased); later duplicates in the batch win; all-or-nothing; standard-linked dictionar
upsert_domainwrite actionCreates a domain (upsert by name) or updates one (domainId given). Existing description preserved when omitted.
upsert_domainsBulk form of upsert_domain: creates or updates many domains in ONE load/save (use this instead of calling upsert_domain in a loop \u2014 each single call costs several server requests and counts against the per-minute cap). Same per-item semantics; later duplicates in the batch win; all-or-nothing.
upsert_entitywrite actionCreates an entity (no entityId, logicalName required) or updates one (entityId given, only provided fields change). The physical name is derived automatically.
upsert_relationshipwrite actionCreates a relationship (no relationshipId, source/targetEntityId required \u2014 FKs derived automatically) or updates one (relationshipId given). On update, sourceEnd/targetEnd take precedence; otherwise ends are re-derived from cardinality. onDelete/onUpdate set the FK referential actions ('noAction' reverts to the DB default); constraintName sets the FK constraint name (empty string reverts to
validate_erdValidates project structure and referential integrity ({ valid, errors }).
withdraw_proposalWithdraws your own pending proposal. Proposals by others or already processed return not_found. Requires login.
Public scan report
scanner v0.1.9 · 2026-09-20 · same rubric, same numbers if you re-run it
- Code scan10 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 28 days ago15/15
- Maintainer identityregistry namespace matches repository owner7/10
Install directly
Runs npx -y sqemo-mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add sqemo -- npx -y sqemo-mcp
Sqemo: common questions
- Is Sqemo MCP server safe?
- Yes, by our scan: it is graded A (91/100). Read the Sqemo safety report
- How do I install Sqemo?
- It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
- Does Sqemo need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Sqemo maintained?
- The last commit was 28 days ago (2026-08-23). The latest release is v2.8.2.
- What can I use instead of Sqemo?
- Servers from other publishers that do the same job: Grafana MCP server, DBHub MCP server and GeoLens MCP server. Compare all Sqemo alternatives.
Alternatives to Sqemo
Same job from other publishers: the closest match first, then the best rated.
- GrafanaSearch & edit Grafana dashboards, query datasources (PromQL/LogQL/SQL), inspect alerts.not reviewedGrowingB
- DBHubToken-efficient database MCP server for PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, SQLitenot reviewedWidely usedA
- GeoLensRead-only access to a self-hosted GeoLens spatial catalog: datasets, features, maps, sandboxed SQL.not reviewedEstablishedB
- LINQ to DBInspect database schemas and execute SQL queries across multiple database providers with LINQ to DB.not reviewedEstablishedA
- StackQL MCP ServerSQL-native query and provisioning engine for cloud infrastructure, served over MCP.not reviewedEstablishedA