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)
Read-only MCP server for one AINDF design-system bundle: look up what it offers, validate screens.
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": {
"aindf": {
"command": "npx",
"args": [
"-y",
"@ai-native-design-framework/kit",
"mcp"
]
}
}
}Run this in your terminal
claude mcp add aindf -- npx -y @ai-native-design-framework/kit mcpThis one needs values on its command line, so copy the settings and fill them in.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"aindf": {
"command": "npx",
"args": [
"-y",
"@ai-native-design-framework/kit",
"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 needs values on its command line, so copy the settings and fill them in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"aindf": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@ai-native-design-framework/kit",
"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 0design, 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 (0.2.1) reached the registry 29 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.
One dependency-free package for any design system that conforms to AINDF (conformsTo: "aindf@0.2"):
| Command | Role | What it does |
|---|---|---|
aindf check | DS maintainer | Conformance: sources validate against the pinned AINDF 0.1 schemas (schema/0.1, SHA256SUMS) and the v0.2 additions (schema/0.2), no dangling slot/modifier/preset edges, layer rule, downward-only tokens, closed props (no className/style/children/handlers), bindings resolve. |
aindf bundle --out | DS maintainer | Immutable, content-addressed DS revision (bundleSha256). Screens pin it; the MCP serves it. |
aindf build --screens --app [--check] | trusted builder | Admits every *.screen.json, generates Next.js App Router pages (// @generated), --check fails on manual edits, stale specs, DS changes and orphans; writes built receipts only. |
aindf mcp | screen author | stdio MCP; createDsMcp + mcpFetchHandler run the same server on an edge runtime. |
v0.2 additions to the public AINDF 0.1 contract graph: components (closed prop/slot/state contracts, templates), bindings (named data/action adapters implemented by the DS), screen (the only author artifact), receipt, config. MCP surface: AINDF 0.1 list-by-facet, slot-accepts, applicable-modifiers, get-preset plus get-ds, get-component, validate-screen, submit-screen and request-extension. The last two are offered only by an endpoint with staging (e.g. a hosted DS-MCP), need an author token and only stage unaccepted drafts; a read-only endpoint such as aindf mcp lists 7 tools, and an agent reports the need or the validated ScreenSpec to the user. Every tool carries a title and MCP hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint).
The kit contains no design system; its tests run against a small fixture design system kept in the repository. Limits: a builder receipt is not a signature; verified/accepted/released are never written by the kit; isolation of the author principal comes from deployment rights, not from this package.
Clean install: the repository's packages/aindf-kit/scripts/clean-install.mjs (source) packs this package, installs the tarball into an empty project and uses it only as a consumer would — the aindf bin (check, bundle, build, --check), the package exports and the MCP over stdio — each step with a negative. CI runs it on Node 20 and 22 and prints the tarball sha256 and kit version it checked.
ds.core + ds.coreBundle + ds.coreBundleSha256, 0.2.0)An Instance that extends a Core pins it in aindf.config.json three ways: ds.core (id@version), ds.coreBundle (path to that Core's AINDF bundle) and ds.coreBundleSha256 (the bundle's content hash; a self-consistent bundle with the same id@version but other contracts is refused). Generated screens import from one module only — the Instance's implementation.module — so a Core role a screen needs (Input, DialogPanel …) is provided by the Instance under the same contract name, implemented with the Instance's look. aindf check then holds that contract to the Core one: it must accept every prop value the Core contract accepts —
maxLength, minItems/maxItems, minimum/maximum; the link pattern is the Core one;routeParams is not added, the taxonomy layer is the Core one, every Core slot exists with a cardinality no tighter; slots the Core role does not have are optional (min 0);params or data binding keeps its kind (a screen uses it as $.params / $.meta), an action binding may change kind (props name it).What this guarantees: a screen written for Core — its components, props, where they stand, which slots they fill and how many children, its bindings — admits against the Instance unchanged, with one exception on purpose: what a slot *accepts* is judged by the Instance's own slotsets (their accepted components are Instance components), so a narrower accepts can still reject a Core screen with SLOT_REJECTS. That is not checked here.
coreConformance(config, components, core, { taxonomy, slots, bindings }): props, slotProps, template, routeParams and the Core component list are checked from components alone; the taxonomy layer and presence, slots and bindings only when that source is passed. checkDs passes all of them.
Codes: CORE_PIN (AINDF-DS-29) when the bundle is not the pinned one; CORE_CONFORMANCE (AINDF-DS-30) per narrowed prop, moved role, narrowed or new required slot, missing component or binding. Without ds.coreBundle nothing changes.