Figma Context MCP
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
Description from the maker (original English)
Design ERDs with your team's naming standards: query/edit entities and relationships, SQL/DBML
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"sqemo": {
"command": "npx",
"args": [
"-y",
"sqemo-mcp"
]
}
}
}Run this in your terminal
claude mcp add sqemo -- npx -y sqemo-mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"sqemo": {
"command": "npx",
"args": [
"-y",
"sqemo-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"sqemo": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"sqemo-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account sqemo, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (2.8.3) reached the registry 21 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Figma Context MCP, Claude Real Video, Figma MCP Server
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.
Let any LLM watch a video locally — and search everything it has ever watched.
Figma’s official server gives AI your design data so it can turn designs into code or describe them accurately. Connects to Figma’s cloud.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
MCP server for [Sqemo](https://sqemo.com) — AI agents that follow your team's database naming standard.
Your agent models in business terms ("Customer Number"); the column comes out as cust_no because *your* word list says customer → cust, number → no (case and delimiter are rules too, so CUST_NO is one setting away). Same input, same name, every table, every agent. Overrides are allowed but flagged, and a CLI lint catches drift in CI.
{ "mcpServers": { "sqemo": { "command": "npx", "args": ["-y", "sqemo-mcp"] } } }
Works with Claude Code, Claude Desktop, Cursor, and any MCP client. Local .erd.json files need no account; cloud ERDs and Pro tools need npx sqemo-mcp login.
*Model a discussion board where members post articles, a post can be a reply to another
post, and members comment on posts.*
The agent calls the tools with logical names and never types a column name:
upsert_entity { logicalName: "Post" }
// → { physicalName: "POST" }
upsert_attribute { logicalName: "Post Content", domain: "Content" } // → { physicalName: "POST_CNTS" } // Content → CNTS: from the team word list
upsert_attribute { logicalName: "Delete Flag", domain: "Flag" } // → { physicalName: "DELETE_YN" } // Flag → YN: same rule in every table
lint_erd // → naming drift, missing words, referential integrity — before any DDL is written
CNTS and YN are not the agent's taste. They are your word list's abbreviations, applied the same way they were applied in every other table your team has modelled. Domains carry the data type, so Content is varchar(1000) everywhere it appears.
Full walkthrough with every tool call: Describe the work, get a governed schema.
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.
sqemo-mcpio.github.sqemo/sqemoRequires 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.
.mcp.json){
"mcpServers": { "sqemo": { "command": "npx", "args": ["-y", "sqemo-mcp"] } } }
Add the same mcpServers entry to your config file:
%APPDATA%\Claude\claude_desktop_config.json~/Library/Application Support/Claude/claude_desktop_config.json.cursor/mcp.json){
"mcpServers": { "sqemo": { "command": "npx", "args": ["-y", "sqemo-mcp"] } } }
npx sqemo-mcp login # pick Google, GitHub, or email + password
npx sqemo-mcp logout # removes stored credentials
login asks how you want to sign in. Google and GitHub open a browser tab, complete a PKCE OAuth flow, and hand the session back through a one-shot loopback server on 127.0.0.1; the third option takes an email and password in the terminal. Only a refresh token is ever stored.
~/.erdmaker/credentials.json (mode 0600 on POSIX); your password is never persisted.--password forces the email + password path, --provider google|github forces a browser path.printf 'email\npassword\n' | npx sqemo-mcp login127.0.0.1). Over SSH or in CI, use --password or the SQEMO_EMAIL / SQEMO_PASSWORD environment variables.36 tools in total.
| Tool | Description |
|---|---|
list_erds / list_workspaces | Cloud ERDs and workspaces you belong to (login required) |
get_erd_overview | Name, dialect, entity/relationship/domain/glossary stats |
list_entities / get_entity | Entity list and full detail (attributes, keys, logical/physical mapping) |
list_relationships | Relationships with endpoints and cardinality |
list_domains | Domain definitions (also from workspace standard glossaries) |
search_dictionary | Search the team glossary (logical/physical words, abbreviations, synonyms) |
check_naming | Check a logical name against the team naming standard |
generate_physical_name | Logical name → physical name via glossary + naming rules |
export_sql | CREATE TABLE SQL — mysql, postgres, cubrid, oracle, sqlserver, sqlite, h2 |
export_dbml | DBML text |
validate_erd / lint_erd | Structural validation and full lint (naming drift, referential integrity, duplicates) |
diff_erds | Diff two sources (files, cloud ERDs, or raw SQL/DBML text) — dry-run before imports |
export_alter_sql | Migration (ALTER) script from the physical diff against a baseline — renames stay renames via stable IDs, destructive changes come commented out (Pro) |
list_proposals | Glossary proposal queue status (login required) |
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.
| Tool | Description |
|---|---|
introspect_db | Import a live PostgreSQL/MySQL schema into an existing ERD (Pro) |
check_db_drift | Check a live database or a schema dump against the ERD's physical model — missing/extra tables and columns, PK/FK/NOT NULL mismatches (Pro) |
| Tool | Description |
|---|---|
create_erd | New ERD from scratch or from SQL/DBML text — to a file or the cloud |
upsert_entity / delete_entity | Entity editing with automatic physical-name derivation |
upsert_attribute / delete_attribute | Attribute editing — PK rules and FK propagation handled automatically |
upsert_relationship / delete_relationship | Relationship editing with automatic FK derivation |
upsert_domain / delete_domain | Domain definition editing |
upsert_dictionary_word / delete_dictionary_word | Glossary editing (standard-linked glossaries are protected) |
update_naming_rules | Naming rule editing (delimiter, case, unknown-word handling) |
import_sql / import_dbml | Replace an ERD from parsed SQL/DBML (IDs preserved) |
auto_layout | Automatic entity/table layout (dagre) |
propose_dictionary_word / withdraw_proposal | Propose 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.
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
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 --db "$DATABASE_URL" --ignore 'tmp_*'
GitHub Actions example:
- run: npx sqemo-mcp lint schema.erd.json
| Variable | Purpose |
|---|---|
SQEMO_EMAIL / SQEMO_PASSWORD | Non-interactive login for CI and SSH sessions (no browser needed) |
ERDMAKER_HOME | Override the credentials directory (default ~/.erdmaker) |
ERDMAKER_SUPABASE_URL | Override the API URL (defaults to the Sqemo cloud) |
ERDMAKER_SUPABASE_ANON_KEY | Override the API publishable key |
ERDMAKER_MAX_REQUESTS_PER_MINUTE | Per-minute request cap (default 120, 0 disables) |
ERDMAKER_MAX_REQUESTS_PER_DAY | Daily 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.
All tool errors return { code, message } — e.g. not_authenticated, no_permission, save_conflict (retry after re-reading), validation_failed, rate_limited.
MIT