Mmcp.market

Sqemo MCP server

by sqemo·io.github.sqemo/sqemo·v2.8.2

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

A91/100grade A
What users say
No reviews yet
Be the first
Safety scan
A91/100

full report

Adoption
Growing

0 stars137 downloads/wk

Reviews

Write one

Nobody 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 posts

Read from the package source without running it. The installed server may list more.

  • auto_layout

    Auto-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_drift

    Checks 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_naming

    Checks 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 action

    Creates 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 action

    Deletes an attribute.

  • delete_dictionary_wordwrite action

    Deletes a glossary entry. Standard-linked (glossaryLink) dictionaries are rejected with dictionary_is_linked.

  • delete_domainwrite action

    Deletes a domain (attributes referencing it are unlinked).

  • delete_entitywrite action

    Deletes an entity (including its relationships).

  • delete_relationshipwrite action

    Deletes a relationship (including derived FKs).

  • diff_erds

    Compares 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_sql

    Generates 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_dbml

    Exports the project as DBML text.

  • export_sql

    Exports the physical model as CREATE TABLE SQL. Without dialect, uses the project dialect.

  • generate_physical_name

    Generates 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_entity

    Entity detail (attributes and physical mapping). Prefers entityId; otherwise exact logicalName match (first hit on duplicates).

  • get_erd_overview

    Returns an ERD summary (entity/relationship/domain/word-list stats, standard link status).

  • import_dbml

    Fully 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_sql

    Fully replaces an existing ERD with the SQL parse result (project id preserved). Rejected as invalid_source when no tables are found.

  • introspect_db

    Imports 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_erd

    Lints 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_domains

    Lists domain definitions (name, data type). With a {workspaceId} source, reads the latest workspace-standard master.

  • list_entities

    Lists entities (logical name, physical name, attribute count).

  • list_erds

    Lists server ERDs (owned/shared). Owner and shared editors can both write. Requires login \u2014 `npx sqemo-mcp login`.

  • list_proposals

    Lists the workspace-standard proposal queue (word/domain, newest first, mine = my proposals). Filterable by status. Requires login.

  • list_relationships

    Lists relationships (endpoint entity names, cardinality, identifying flag).

  • list_workspaces

    Lists my workspaces (owner first) and whether a standard (word list + naming rules) exists. Requires login.

  • propose_dictionary_word

    Proposes 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_dictionary

    Partial-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 action

    Partially 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 action

    Creates 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_attributes

    Bulk 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_word

    Adds 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_words

    Bulk 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 action

    Creates a domain (upsert by name) or updates one (domainId given). Existing description preserved when omitted.

  • upsert_domains

    Bulk 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 action

    Creates an entity (no entityId, logicalName required) or updates one (entityId given, only provided fields change). The physical name is derived automatically.

  • upsert_relationshipwrite action

    Creates 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_erd

    Validates project structure and referential integrity ({ valid, errors }).

  • withdraw_proposal

    Withdraws 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

no findings
  • 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
Overall 91/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

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
Add to Cursor

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.

All Sqemo alternatives →
  • Grafana
    Search & edit Grafana dashboards, query datasources (PromQL/LogQL/SQL), inspect alerts.
    B
  • DBHub
    Token-efficient database MCP server for PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, SQLite
    A
  • GeoLens
    Read-only access to a self-hosted GeoLens spatial catalog: datasets, features, maps, sandboxed SQL.
    B
  • LINQ to DB
    Inspect database schemas and execute SQL queries across multiple database providers with LINQ to DB.
    A
  • StackQL MCP Server
    SQL-native query and provisioning engine for cloud infrastructure, served over MCP.
    A

More from sqemo