Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.sqemo/sqemo

NPM · SQEMO-MCP · SCANNED SEP 24

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

Available components

0 this week 80 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 38 of 129 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability73
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 3802 tokens (~97/item across 39 items; 39 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management97
  • Stability observed for 29 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage83
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 50% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "withdraw_proposal" implies "withdraw" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 39 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the io.github.sqemo/sqemo MCP server?

io.github.sqemo/sqemo runs locally as an npm package, launched with npx -y sqemo-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · sqemo-mcp

# add to Claude Code
claude mcp add sqemo-sqemo -- npx -y sqemo-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "sqemo-sqemo": {
      "command": "npx",
      "args": [
        "-y",
        "sqemo-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "sqemo-sqemo": {
      "command": "npx",
      "args": [
        "-y",
        "sqemo-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add sqemo-sqemo -- npx -y sqemo-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sqemo-sqemo": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "sqemo-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add sqemo-sqemo --command npx --arg -y --arg sqemo-mcp
# ~/.hermes/config.yaml
mcp_servers:
  sqemo-sqemo:
    command: "npx"
    args: ["-y", "sqemo-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "sqemo-sqemo": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "sqemo-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add sqemo-sqemo -t stdio -c npx -a -y sqemo-mcp
// mcp.json
{
  "mcpServers": {
    "sqemo-sqemo": {
      "command": "npx",
      "args": [
        "-y",
        "sqemo-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 23 Sept 26 +1
    • Security disclosure: unverified → fail functional
  • 22 Sept 26 0
    • Security disclosure: fail → unverified functional
  • 21 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 20 Sept 26 0
    • Security disclosure: unverified → fail functional
  • 19 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 18 Sept 26 +1
    • Stability: 0.97 → pass security
    • Security disclosure: fail → unverified functional
  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 24 Sept 2026 · Analysed npm/sqemo-mcp@2.8.2

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 129 packages
Packages resolved 129
Stale 38
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 39 exposed · ~3,802 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
auto_layout ~111

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 — the removed `view` parameter had no other effect). Reference copies, notes, and relationship waypoints are not moved.

NameTypeReqDescription
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

check_db_drift ~221

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.

NameTypeReqDescription
dbSchemastringSchema to read (url only)
dialectstringDump dialect (required with schemaSql)
ignorearrayTable name globs to ignore on the DB side, e.g. flyway_*
schemaSqlstringSchema dump text, e.g. pg_dump -s output
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})
strictbooleanPromote warnings to errors
urlstringpostgres:// or mysql:// URL (exactly one of url/schemaSql)

No output schema declared.

No examples provided.

check_naming ~93

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.

NameTypeReqDescription
logicalNamestringyes
physicalNamestring
sourceyesDictionary source — exactly one of a local file, a server ERD, or a workspace standard

No output schema declared.

No examples provided.

create_erd ~180

Creates a new ERD — 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.

NameTypeReqDescription
dbmlstringDBML text (mutually exclusive with sql)
dialectstringSQL dialect
namestring
sqlstringCREATE TABLE SQL (mutually exclusive with dbml)
targetyes
workspaceIdstringWorkspace id (from list_workspaces) whose standard the new ERD links to — its word list, naming rules and domains are pulled in immediately, so physical names follow the team standard. Requires login…

No output schema declared.

No examples provided.

delete_attribute ~54

Deletes an attribute.

NameTypeReqDescription
attributeIdstringyes
entityIdstringyes
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

delete_dictionary_word ~65

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

NameTypeReqDescription
entryIdstringyes
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

delete_domain ~53

Deletes a domain (attributes referencing it are unlinked).

NameTypeReqDescription
domainIdstringyes
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

delete_entity ~50

Deletes an entity (including its relationships).

NameTypeReqDescription
entityIdstringyes
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

delete_relationship ~51

Deletes a relationship (including derived FKs).

NameTypeReqDescription
relationshipIdstringyes
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

diff_erds ~115

Compares two ERD sources (entities/attributes/domains/relationships — 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 — matching the actual import behavior (full replace). summary aggregates entities only; see the arrays for domain/relationship changes.

NameTypeReqDescription
afteryes
beforeyesComparison target — exactly one of a local file, a server ERD, SQL text, or DBML text

No output schema declared.

No examples provided.

export_alter_sql ~128

Generates a migration (ALTER) script from the physical diff between a baseline and the current model — 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; requires login.

NameTypeReqDescription
afteryesTarget state (the current model)
beforeyesBaseline (e.g. the state last applied to the database)
dialectSQL dialect

No output schema declared.

No examples provided.

export_dbml ~44

Exports the project as DBML text.

NameTypeReqDescription
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

export_sql ~61

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

NameTypeReqDescription
dialectstringSQL dialect
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

generate_physical_name ~80

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.

NameTypeReqDescription
logicalNamestringyes
sourceyesDictionary source — exactly one of a local file, a server ERD, or a workspace standard

No output schema declared.

No examples provided.

get_entity ~74

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

NameTypeReqDescription
entityIdstring
logicalNamestring
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

get_erd_overview ~56

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

NameTypeReqDescription
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

import_dbml ~76

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.

NameTypeReqDescription
dbmlstringyes
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

import_sql ~78

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

NameTypeReqDescription
dialectstringDefaults to mysql
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})
sqlstringyes

No output schema declared.

No examples provided.

introspect_db ~142

Imports the schema of a live PostgreSQL/MySQL database into an existing ERD (full replace, project id preserved). Read-only — 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.

NameTypeReqDescription
dbSchemastringSchema to read (postgres default: public; mysql default: database in the URL)
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})
urlstringyespostgres:// or mysql:// connection URL (credentials stay local)

No output schema declared.

No examples provided.

lint_erd ~144

Lints the whole project — 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 naming standard (unregistered words, physical-name drift) in one pass. Quality/standards oriented, unlike validate_erd (structural validity).

NameTypeReqDescription
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

list_domains ~56

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

NameTypeReqDescription
sourceyesDictionary source — exactly one of a local file, a server ERD, or a workspace standard

No output schema declared.

No examples provided.

list_entities ~46

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

NameTypeReqDescription
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

list_erds ~38

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

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_proposals ~66

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

NameTypeReqDescription
sourceyesDictionary source — exactly one of a local file, a server ERD, or a workspace standard
statusstring

No output schema declared.

No examples provided.

list_relationships ~48

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

NameTypeReqDescription
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

list_workspaces ~33

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

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

propose_dictionary_word ~156

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.

NameTypeReqDescription
abbreviationstring
descriptionstring
englishNamestring
logicalWordstringyesLogical word to register
notestringReason for the proposal
physicalWordstringyesPhysical word — normalized to uppercase
sourceyesDictionary source — exactly one of a local file, a server ERD, or a workspace standard

No output schema declared.

No examples provided.

search_dictionary ~82

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.

NameTypeReqDescription
querystringyesSearch term
sourceyesDictionary source — exactly one of a local file, a server ERD, or a workspace standard

No output schema declared.

No examples provided.

update_naming_rules ~182

Partially updates the naming rules (delimiter, case, unknown-word handling, self-reference role prefix). Existing physical names are not regenerated retroactively (noted in warnings) — set the rules before modelling.

NameTypeReqDescription
casingstring
selfReferencePrefixstringRole prefix for self-referencing FK names, keeping them distinct from the PK (e.g. 'Parent' → 'Parent Post Number' → PRNT_POST_NO). It is resolved through the word list like any other word, so regist…
separatorstring
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})
unknownWordModestring

No output schema declared.

No examples provided.

upsert_attribute ~265

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 — exported as AUTO_INCREMENT (mysql/cubrid/h2), IDENTITY(1,1) (sqlserver), or GENERATED BY DEFAULT AS IDENTITY (postgres/oracle); it applies to primary keys only.

NameTypeReqDescription
attributeIdstring
autoIncrementboolean
dataTypestring
defaultValuestringRaw SQL default, emitted verbatim after DEFAULT — quote it yourself for string/date literals: "'N'" not "N". Unquoted values are treated as SQL expressions (`0`, `CURRENT_TIMESTAMP`), so a bare word…
domainstring
entityIdstringyes
logicalNamestring
nullableboolean
primaryKeyboolean
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})
uniqueboolean

No output schema declared.

No examples provided.

upsert_attributes ~128

Bulk form of upsert_attribute: creates/updates many attributes — across any number of entities — 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 returned in input order.

NameTypeReqDescription
itemsarrayyes
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

upsert_dictionary_word ~125

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.

NameTypeReqDescription
abbreviationstring
descriptionstring
englishNamestring
entryIdstring
logicalWordstringyes
physicalWordstringyes
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

upsert_dictionary_words ~129

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 — 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 dictionaries rejected with dictionary_is_linked.

NameTypeReqDescription
entriesarrayyes
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

upsert_domain ~88

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

NameTypeReqDescription
dataTypestringyes
descriptionstring
domainIdstring
namestringyes
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

upsert_domains ~103

Bulk form of upsert_domain: creates or updates many domains in ONE load/save (use this instead of calling upsert_domain in a loop — 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.

NameTypeReqDescription
domainsarrayyes
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

upsert_entity ~90

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

NameTypeReqDescription
descriptionstring
entityIdstring
logicalNamestring
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

upsert_relationship ~198

Creates a relationship (no relationshipId, source/targetEntityId required — 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 auto-generation).

NameTypeReqDescription
cardinalitystring
constraintNamestring
onDeletestring
onUpdate
relationshipIdstring
relationshipTypestring
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})
sourceEndstring
sourceEntityIdstring
targetEnd
targetEntityIdstring

No output schema declared.

No examples provided.

validate_erd ~49

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

NameTypeReqDescription
sourceyesTarget ERD — exactly one of a local file ({file}) or a server ERD ({erdId})

No output schema declared.

No examples provided.

withdraw_proposal ~44

Withdraws your own pending proposal. Proposals by others or already processed return not_found. Requires login.

NameTypeReqDescription
proposalIdstringyesProposal id from list_proposals

No output schema declared.

No examples provided.

Common questions

What is the io.github.sqemo/sqemo MCP server?

io.github.sqemo/sqemo is an MCP server listed in the public MCP registry as io.github.sqemo/sqemo. Design ERDs with your team's naming standards: query/edit entities and relationships, SQL/DBML. This page covers its npm package (sqemo-mcp).

Is the io.github.sqemo/sqemo MCP server safe to use?

io.github.sqemo/sqemo scores 80 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 24 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.sqemo/sqemo MCP server expose?

io.github.sqemo/sqemo exposes 39 tools: get_erd_overview, list_entities, get_entity, list_relationships, list_domains, and 34 more. Their descriptions and schemas cost roughly 3,802 tokens of context every time the server is loaded.

Is the io.github.sqemo/sqemo MCP server still maintained?

io.github.sqemo/sqemo is still listed as active in the MCP registry. We last reached this channel on 24 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.sqemo/sqemo MCP server under?

io.github.sqemo/sqemo declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.