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)
Search, retrieve, compare, and render SVG icons visually for AI agents.
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": {
"icon-visual": {
"command": "npx",
"args": [
"-y",
"@br-ai-n/mcp-icon-visual"
]
}
}
}Run this in your terminal
claude mcp add icon-visual -- npx -y @br-ai-n/mcp-icon-visualPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"icon-visual": {
"command": "npx",
"args": [
"-y",
"@br-ai-n/mcp-icon-visual"
]
}
}
}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": {
"icon-visual": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@br-ai-n/mcp-icon-visual"
]
}
}
}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 7, 2026
The registry name was verified with the GitHub account n0isy, 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.1.1) reached the registry 8 months 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 that gives AI agents the ability to search, retrieve, compare, and render SVG icons. Built with Rust and the rmcp SDK.
Combines local filesystem access with a remote rendering API to resolve SVGs from any source — inline strings, URLs, local files, or Iconify IDs — and render them onto visual comparison grids.
The key insight: every tool returns images. A vision-capable LLM doesn't just get metadata — it *sees* the icons. This turns icon selection from guesswork into a visual conversation.
search_icons("machine learning") — 4x4 grid, cells 0–15, returned as PNG
These tools are designed to be composed by AI agents with vision. Below are three proven patterns.
An agent searches for icons and visually picks the best match — no blind URL selection.
┌─────────────────────────────┐
│ Agent + Vision │ └──────────────┬──────────────┘ │ ┌────────────────┼────────────────┐ v v v search_icons search_icons search_icons "cloud" "upload" "storage" │ │ │ v v v ┌──────────┐ ┌──────────┐ ┌──────────┐ │ 4x4 grid │ │ 4x4 grid │ │ 4x4 grid │ │ (sees) │ │ (sees) │ │ (sees) │ └────┬─────┘ └────┬─────┘ └────┬─────┘ │ │ │ └───────────────┼───────────────┘ v "cells 3, 7, 12 match the project style" │ v render_grid [3 winners] │ v ┌──────────────────┐ │ final comparison │ │ grid (sees) │──> pick best └──────────────────┘
The agent runs multiple searches, looks at each grid, picks candidates by cell number, then renders a final side-by-side comparison to make the choice. Works especially well when the agent has context about the project's visual style.
An agent modifies SVG code and uses render_grid as a visual diff to track progress across iterations.
get_svg "mdi/cloud"
│ v ┌───────────┐ │ raw SVG │ │ markup │ └─────┬─────┘ │ ┌────────┴─────────────────────────────────────┐ │ Edit Loop │ │ │ │ Agent modifies SVG code │ │ │ │ │ v │ │ render_grid [original, v1, v2, v3] │ │ │ │ │ v │ │ ┌──────────────────────────────┐ │ │ │ cell 0: original │ │ │ │ cell 1: thicker strokes │ │ │ │ cell 2: rounded corners │ │ │ │ cell 3: filled variant │ │ │ └──────────────┬───────────────┘ │ │ │ │ │ agent sees all versions │ │ decides next edit │ │ │ │ │ └──── loop ──────────────────┘ │ v save final SVG to disk
Each iteration, the agent passes all versions (original + edits) as inline SVGs to render_grid. It sees them side-by-side in one image and decides whether to keep iterating or stop. The original always stays in cell 0 as a reference.
An agent ensures new icons match the visual style of existing project icons.
Project icons on disk Candidate sources
───────────────────── ───────────────── /app/icons/nav-home.svg search_icons "settings" /app/icons/nav-search.svg │ /app/icons/nav-profile.svg v │ picks cells 2, 5, 9 │ │ └──────────┬───────────────────┘ v render_grid [ /app/icons/nav-home.svg, ← cell 0: existing /app/icons/nav-search.svg, ← cell 1: existing /app/icons/nav-profile.svg, ← cell 2: existing candidate_url_1, ← cell 3: candidate candidate_url_2, ← cell 4: candidate candidate_url_3, ← cell 5: candidate " ...custom edit... " ← cell 6: agent's edit ] │ v ┌────────────────────────────────┐ │ grid image: │ │ existing icons vs candidates │ │ (agent sees style match/clash) │ └────────────────┬───────────────┘ │ agent judges: "cell 4 matches stroke weight and corner radius of cells 0-2, cell 3 is too thin, cell 5 wrong fill style" │ v get_svg cell_4_url │ v save to /app/icons/nav-settings.svg
By mixing local file paths and remote sources in a single grid, the agent can visually compare existing project icons against candidates in one shot. The grid becomes a style audit tool.
These patterns compose naturally. A real-world workflow might:
All driven by a single agent with vision, using three tools.
search_iconsSemantic icon search. Returns a 4x4 PNG grid (512x512, cells 0-15) and a mapping of cell numbers to SVG URLs.
| Parameter | Type | Default | Description | |
|---|---|---|---|---|
keyword | string | *required* | Semantic search query (e.g. "cloud computing", "arrows") | |
background | string | "#FFFFFF" | Grid background color, CSS hex | |
color | string \ | null | null | Recolor all icons to this CSS hex color |
get_svgRetrieve raw SVG markup from any source. Returns the complete SVG string for inspection or modification.
| Parameter | Type | Description |
|---|---|---|
source | string | URL, Iconify ID (mdi/cloud), absolute file path, or inline |
render_gridRender 1-16 SVGs onto a 4x4 comparison grid (512x512, cells 0-15). Useful for comparing icon variants side-by-side or previewing local icons alongside search results.
| Parameter | Type | Default | Description |
|---|---|---|---|
sources | string[] | *required* | 1-16 SVG sources (URLs, Iconify IDs, file paths, or inline SVGs) |
background | string | "#FFFFFF" | Grid background color, CSS hex |
All tools share a unified resolution pipeline that classifies sources automatically:
| Source type | Example | Resolution |
|---|---|---|
| Inline SVG | ... | Returned as-is |
| URL | https://mdn.alipayobjects.com/.../original | Resolved via API |
| File path | /home/user/icons/logo.svg | Read from local disk |
| Iconify ID | mdi/cloud, lucide/home | Resolved via API |
File paths are detected by prefix (/, ./, ~/) or .svg extension. Everything else without http:///https:// is treated as an Iconify ID.
All grid outputs are 512x512 PNG images with a 4x4 layout (128x128 cells), numbered 0-15 left-to-right, top-to-bottom:
┌────┬────┬────┬────┐
│ 0 │ 1 │ 2 │ 3 │ ├────┼────┼────┼────┤ │ 4 │ 5 │ 6 │ 7 │ ├────┼────┼────┼────┤ │ 8 │ 9 │ 10 │ 11 │ ├────┼────┼────┼────┤ │ 12 │ 13 │ 14 │ 15 │ └────┴────┴────┴────┘
Cell numbers appear at the bottom-left of each cell. Unused cells show the number only.
No build needed. Works on Linux (x64/arm64), macOS (Intel/Apple Silicon), and Windows (x64).
{
"mcpServers": { "icon-visual": { "command": "npx", "args": ["-y", "@br-ai-n/mcp-icon-visual"] } } }
Requires Rust (edition 2024):
cargo build --release --target x86_64-unknown-linux-musl
The release profile produces a fully static binary (musl libc, rustls-tls, LTO, stripped).
# Default upstream API
./mcp-icon-visual
./mcp-icon-visual --api-base http://localhost:3000
The server communicates over stdio using the MCP protocol.
{
"mcpServers": { "icon-visual": { "command": "npx", "args": ["-y", "@br-ai-n/mcp-icon-visual"] } } }
{
"mcpServers": { "icon-visual": { "command": "/path/to/mcp-icon-visual", "args": ["--api-base", "http://localhost:3000"] } } }
src/
├── main.rs # Entrypoint, CLI args, stdio transport ├── server.rs # IconServer + MCP tool routing + response builders ├── api_client.rs # HTTP client for upstream rendering API ├── resolve.rs # Source classification and SVG resolution ├── error.rs # Error types └── tools/ ├── mod.rs ├── search_icons.rs # SearchIconsParams ├── get_svg.rs # GetSvgParams └── render_grid.rs # RenderGridParams
# Unit tests (source classification)
cargo test
cargo test -- --ignored
| Crate | Purpose |
|---|---|
rmcp | MCP server SDK (tool routing, stdio transport) |
tokio | Async runtime |
reqwest | HTTP client (rustls-tls, no OpenSSL) |
serde / serde_json | Serialization |
schemars | JSON Schema generation for tool parameters |
clap | CLI argument parsing |
base64 | Base64 encoding |
tracing | Logging |
thiserror | Error derive macros |
MIT License
Copyright (c) 2025
Permission is hereby granted,
Only the beginning is shown; read the rest in the repo