io.github.sqemo/sqemo
NPM · SQEMO-MCP · SCANNED AUG 3
Design ERDs with your team's naming standards: query/edit entities and relationships, SQL/DBML
Available components
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 →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (129 of 133), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (129 of 133), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 3 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability70
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 3095 tokens (~85/item across 36 items; 36 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
- Stability observed for 7 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
- 49% of tool parameters carry a description.Partial
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · sqemo-mcp
claude mcp add sqemo-sqemo -- npx -y sqemo-mcp
codex mcp add sqemo-sqemo -- npx -y sqemo-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sqemo-sqemo": {
"type": "local",
"command": [
"npx",
"-y",
"sqemo-mcp"
],
"enabled": true
}
}
} openclaw mcp add sqemo-sqemo --command npx --arg -y --arg sqemo-mcp
mcp_servers:
sqemo-sqemo:
command: "npx"
args: ["-y", "sqemo-mcp"] {
"mcpServers": {
"sqemo-sqemo": {
"command": "npx",
"args": [
"-y",
"sqemo-mcp"
]
}
}
} 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.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.
- 2 Aug 26 +60
- Provenance: unverified → fail ▼ security
- Install scripts: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Malware scan: unverified → pass ▲ security
- License: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Stability: unverified → 0.20 ▲ functional
- Maintenance: unverified → pass ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Schema quality: unverified → good ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- Licence: MIT functional
- 31 Jul 26 −1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −20
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- Package version: 1.3.0 → 1.5.0 functional
- 27 Jul 26 26
First indexed and scored.
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 3 Aug 2026 · Analysed npm/[email protected]
Provenance none
Ecosystem: npm · Outcome: none
Dependencies 129 packages
129 packages in the resolved dependency tree · 126 deprecated · 36 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
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.
auto_layout ~87
Auto-arranges entities (logical view) and tables (physical view) by relationships (dagre LR). view defaults to both. Reference copies, notes, and relationship waypoints are not moved.
| Name | Type | Req | Description |
|---|---|---|---|
| source | — | yes | Target ERD — exactly one of a local file ({file}) or a server ERD ({erdId}) |
| view | string | — | View to arrange (defaults to both) |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dbSchema | string | — | Schema to read (url only) |
| dialect | string | — | Dump dialect (required with schemaSql) |
| ignore | array | — | Table name globs to ignore on the DB side, e.g. flyway_* |
| schemaSql | string | — | Schema dump text, e.g. pg_dump -s output |
| source | — | yes | Target ERD — exactly one of a local file ({file}) or a server ERD ({erdId}) |
| strict | boolean | — | Promote warnings to errors |
| url | string | — | postgres:// 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.
| Name | Type | Req | Description |
|---|---|---|---|
| logicalName | string | yes | — |
| physicalName | string | — | — |
| source | — | yes | Dictionary source — exactly one of a local file, a server ERD, or a workspace standard |
No output schema declared.
No examples provided.
create_erd ~103
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).
| Name | Type | Req | Description |
|---|---|---|---|
| dbml | string | — | DBML text (mutually exclusive with sql) |
| dialect | string | — | SQL dialect |
| name | string | — | — |
| sql | string | — | CREATE TABLE SQL (mutually exclusive with dbml) |
| target | — | yes | — |
No output schema declared.
No examples provided.
delete_attribute ~60
Deletes an attribute (including its mapped physical column).
| Name | Type | Req | Description |
|---|---|---|---|
| attributeId | string | yes | — |
| entityId | string | yes | — |
| source | — | yes | Target 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.
| Name | Type | Req | Description |
|---|---|---|---|
| entryId | string | yes | — |
| source | — | yes | Target 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).
| Name | Type | Req | Description |
|---|---|---|---|
| domainId | string | yes | — |
| source | — | yes | Target ERD — exactly one of a local file ({file}) or a server ERD ({erdId}) |
No output schema declared.
No examples provided.
delete_entity ~54
Deletes an entity (including its mapped physical table and relationships).
| Name | Type | Req | Description |
|---|---|---|---|
| entityId | string | yes | — |
| source | — | yes | Target 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).
| Name | Type | Req | Description |
|---|---|---|---|
| relationshipId | string | yes | — |
| source | — | yes | Target 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.
| Name | Type | Req | Description |
|---|---|---|---|
| after | — | yes | — |
| before | — | yes | Comparison 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.
| Name | Type | Req | Description |
|---|---|---|---|
| after | — | yes | Target state (the current model) |
| before | — | yes | Baseline (e.g. the state last applied to the database) |
| dialect | — | — | SQL dialect |
No output schema declared.
No examples provided.
export_dbml ~44
Exports the project as DBML text.
| Name | Type | Req | Description |
|---|---|---|---|
| source | — | yes | Target 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.
| Name | Type | Req | Description |
|---|---|---|---|
| dialect | string | — | SQL dialect |
| source | — | yes | Target 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.
| Name | Type | Req | Description |
|---|---|---|---|
| logicalName | string | yes | — |
| source | — | yes | Dictionary 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).
| Name | Type | Req | Description |
|---|---|---|---|
| entityId | string | — | — |
| logicalName | string | — | — |
| source | — | yes | Target 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).
| Name | Type | Req | Description |
|---|---|---|---|
| source | — | yes | Target 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.
| Name | Type | Req | Description |
|---|---|---|---|
| dbml | string | yes | — |
| source | — | yes | Target 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.
| Name | Type | Req | Description |
|---|---|---|---|
| dialect | string | — | Defaults to mysql |
| source | — | yes | Target ERD — exactly one of a local file ({file}) or a server ERD ({erdId}) |
| sql | string | yes | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dbSchema | string | — | Schema to read (postgres default: public; mysql default: database in the URL) |
| source | — | yes | Target ERD — exactly one of a local file ({file}) or a server ERD ({erdId}) |
| url | string | yes | postgres:// or mysql:// connection URL (credentials stay local) |
No output schema declared.
No examples provided.
lint_erd ~92
Lints the whole project — structure (PKs, attributes, descriptions, domains), referential integrity, duplicate physical names, and the naming standard (unregistered words, physical-name drift) in one pass. Quality/standards oriented, unlike validate_erd (structural validity).
| Name | Type | Req | Description |
|---|---|---|---|
| source | — | yes | Target 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.
| Name | Type | Req | Description |
|---|---|---|---|
| source | — | yes | Dictionary 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).
| Name | Type | Req | Description |
|---|---|---|---|
| source | — | yes | Target 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.
| Name | Type | Req | Description |
|---|---|---|---|
| source | — | yes | Dictionary source — exactly one of a local file, a server ERD, or a workspace standard |
| status | string | — | — |
No output schema declared.
No examples provided.
list_relationships ~48
Lists relationships (endpoint entity names, cardinality, identifying flag).
| Name | Type | Req | Description |
|---|---|---|---|
| source | — | yes | Target 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.
| Name | Type | Req | Description |
|---|---|---|---|
| abbreviation | string | — | — |
| description | string | — | — |
| englishName | string | — | — |
| logicalWord | string | yes | Logical word to register |
| note | string | — | Reason for the proposal |
| physicalWord | string | yes | Physical word — normalized to uppercase |
| source | — | yes | Dictionary 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.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | Search term |
| source | — | yes | Dictionary source — exactly one of a local file, a server ERD, or a workspace standard |
No output schema declared.
No examples provided.
update_naming_rules ~88
Partially updates the naming rules (delimiter, case, unknown-word handling). Existing physical names are not regenerated retroactively (noted in warnings).
| Name | Type | Req | Description |
|---|---|---|---|
| casing | string | — | — |
| separator | string | — | — |
| source | — | yes | Target ERD — exactly one of a local file ({file}) or a server ERD ({erdId}) |
| unknownWordMode | string | — | — |
No output schema declared.
No examples provided.
upsert_attribute ~153
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.
| Name | Type | Req | Description |
|---|---|---|---|
| attributeId | string | — | — |
| dataType | string | — | — |
| defaultValue | string | — | — |
| domain | string | — | — |
| entityId | string | yes | — |
| logicalName | string | — | — |
| nullable | boolean | — | — |
| primaryKey | boolean | — | — |
| source | — | yes | Target ERD — exactly one of a local file ({file}) or a server ERD ({erdId}) |
| unique | boolean | — | — |
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.
| Name | Type | Req | Description |
|---|---|---|---|
| abbreviation | string | — | — |
| description | string | — | — |
| englishName | string | — | — |
| entryId | string | — | — |
| logicalWord | string | yes | — |
| physicalWord | string | yes | — |
| source | — | yes | Target 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.
| Name | Type | Req | Description |
|---|---|---|---|
| dataType | string | yes | — |
| description | string | — | — |
| domainId | string | — | — |
| name | string | yes | — |
| source | — | yes | Target ERD — exactly one of a local file ({file}) or a server ERD ({erdId}) |
No output schema declared.
No examples provided.
upsert_entity ~92
Creates an entity (no entityId, logicalName required) or updates one (entityId given, only provided fields change). The physical table and name are derived automatically.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | — | — |
| entityId | string | — | — |
| logicalName | string | — | — |
| source | — | yes | Target 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).
| Name | Type | Req | Description |
|---|---|---|---|
| cardinality | string | — | — |
| constraintName | string | — | — |
| onDelete | string | — | — |
| onUpdate | — | — | — |
| relationshipId | string | — | — |
| relationshipType | string | — | — |
| source | — | yes | Target ERD — exactly one of a local file ({file}) or a server ERD ({erdId}) |
| sourceEnd | string | — | — |
| sourceEntityId | string | — | — |
| targetEnd | — | — | — |
| targetEntityId | string | — | — |
No output schema declared.
No examples provided.
validate_erd ~49
Validates project structure and referential integrity ({ valid, errors }).
| Name | Type | Req | Description |
|---|---|---|---|
| source | — | yes | Target 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.
| Name | Type | Req | Description |
|---|---|---|---|
| proposalId | string | yes | Proposal id from list_proposals |
No output schema declared.
No examples provided.