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 and write a FreeVectorIcons design collection: briefs, DESIGN.md, icons and brand assets.
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.
FVI_TOKEN, FVI_API_URL, FVI_READ_ONLYValues marked secret are keys to your account. Never share them or paste them into a chat.
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": {
"fvi": {
"command": "npx",
"args": [
"-y",
"@freevectoricons/mcp"
],
"env": {
"FVI_TOKEN": "your-value",
"FVI_API_URL": "your-value",
"FVI_READ_ONLY": "your-value"
}
}
}
}Run this in your terminal
claude mcp add fvi --env FVI_TOKEN=your-value --env FVI_API_URL=your-value --env FVI_READ_ONLY=your-value -- npx -y @freevectoricons/mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"fvi": {
"command": "npx",
"args": [
"-y",
"@freevectoricons/mcp"
],
"env": {
"FVI_TOKEN": "your-value",
"FVI_API_URL": "your-value",
"FVI_READ_ONLY": "your-value"
}
}
}
}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": {
"fvi": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@freevectoricons/mcp"
],
"env": {
"FVI_TOKEN": "your-value",
"FVI_API_URL": "your-value",
"FVI_READ_ONLY": "your-value"
}
}
}
}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.
FVI_API_URL envFVI_READ_ONLY envThese 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 FreeVectorIcons, 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.
You need to fill in: FVI_TOKEN
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.3.0-beta.3) reached the registry yesterday.
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.
Beta. This package is under active development. Tool schemas, configuration options, and error behavior may change before v1.0.0. Report issues or review the product docs before production use.
Model Context Protocol (MCP) server for FreeVectorIcons design collections.
Connects Cursor, Claude Desktop, and other MCP clients to a single FreeVectorIcons collection (token-derived binding — configure FVI_TOKEN only): catalog icons, uploaded SVGs, strategy briefs, DESIGN.md, and related project files. Access is scoped to one collection token.
npm: @freevectoricons/mcp
Agents that generate icons inline often produce inconsistent SVG, unstable identifiers, and incorrect licensing across sessions. FreeVectorIcons stores approved assets in versioned collections with stable IDs and metadata.
This server exposes that collection to MCP clients. Agents search and retrieve canonical assets instead of regenerating SVG from scratch, and write designs back into the collection for review. Uploaded assets are versioned, so agents can iterate freely without losing prior work. The server runs over stdio and calls the FreeVectorIcons HTTP API. Responses are metadata-first JSON; file bytes are fetched only when a tool requests inline content or a download URL.
Hosted connector. If your client supports remote MCP servers, you can skip this package and connect to https://mcp.freevectoricons.com/mcp instead: nothing to install, and you sign in from your client or send a collection token as an Authorization: Bearer header. See freevectoricons.com/mcp. This package suits agents that upload files straight from disk, or setups that prefer a local process.
Add the server to your MCP client configuration (for example .cursor/mcp.json):
{
"mcpServers": { "freevectoricons": { "command": "npx", "args": ["-y", "@freevectoricons/mcp"], "env": { "FVI_TOKEN": " " } } } }
Run the server with npx as shown above. MCP uses stdio for protocol messages; the process must not write non-protocol output to stdout.
See mcp.json.example for a copy-paste template.
Add the same mcpServers block to claude_desktop_config.json:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonThis repository is also a Cursor Plugin (.cursor-plugin/plugin.json + mcp.json).
~/.cursor/plugins/local/freevectoricons for local testing (copy files; avoid broken symlinks).FVI_TOKEN) from FreeVectorIcons → Integrations → Setup MCP.FVI_API_URL (defaults to production), FVI_READ_ONLY=true to hide write tools.Submit / re-index: cursor.com/marketplace/publish.
Gemini CLI passed the compatibility tests against the hosted endpoint on 5 Nov 2026. Antigravity is still being tested after the 0.3.0-beta.3 tool rename; until it passes, treat it as a preview and report issues.
Antigravity plugin. This repository is also an Antigravity plugin (.antigravity-plugin/plugin.json, mcp_config.json and the skills/ folder). Install it, then turn it on under /plugin (CLI) or Settings → Customizations (app) and paste your collection token when asked.
Antigravity config block. Or add this to ~/.gemini/config/mcp_config.json (all projects) or .agents/mcp_config.json (one workspace):
{
"mcpServers": { "freevectoricons": { "command": "npx", "args": ["-y", "@freevectoricons/mcp"], "env": { "FVI_TOKEN": " " } } } }
Gemini CLI extension. Install from this repository and enter your collection token when prompted:
gemini extensions install https://github.com/FreeVectorIcons/fvi-mcp
Change the token later with gemini extensions config freevectoricons. The extension pins a released package version, so a new release reaches you when you run gemini extensions update freevectoricons.
| Variable | Required | Default | Description |
|---|---|---|---|
FVI_TOKEN | yes | — | Collection-scoped MCP token (fvi_col_*). Collection binding is derived via GET /api/mcp/whoami. |
FVI_COLLECTION_ID | no | — | Deprecated / override only. If set and it disagrees with the token’s collection, the adapter fails closed (COLLECTION_MISMATCH). Prefer omitting it. |
FVI_API_URL | no | https://freevectoricons.com/api | API base URL (include /api) |
FVI_READ_ONLY | no | false | When true, write tools are not registered. Can only narrow token scopes |
FVI_TOOLS | no | — | Comma-separated tool names to register. Old names from before 0.3.0-beta.3 are accepted. Can only narrow access |
FVI_SKIP_TOKEN_CHECK | no | false | Escape hatch if a future token shape is rejected locally |
FVI_ALLOW_FILE_PATHS | no | false | Allow filePath on upload tools. Off by default |
FVI_FILE_PATH_ROOTS | no | — | Comma-separated directories filePath may read |
FVI_TIMEOUT_MS | no | 30000 | HTTP request timeout for API calls (milliseconds) |
FVI_UPLOAD_TIMEOUT_MS | no | 120000 | Timeout for binary upload requests (milliseconds) |
FVI_RETRY_MAX | no | 3 | Maximum retry attempts for transient failures |
FVI_RETRY_BASE_MS | no | 500 | Base delay for exponential backoff (milliseconds) |
FVI_LOG_LEVEL | no | info | Log level: debug, info, warn, or error (stderr, JSON) |
Set FVI_API_URL only when pointing at a non-production API.
Write tools are enabled by default. Agents can park new assets and upload new versions of existing ones; each change is stored as a version you can review or restore in the collection UI. Set FVI_READ_ONLY=true only if you want retrieval without uploads.
Treat FVI_TOKEN like a password. It grants access to one collection.
FVI_READ_ONLY=true if an agent should only read from the collection, not upload.Restarting MCP servers alone does not rebind a shared stdio connector that still has an old FVI_TOKEN.
FVI_TOKEN (uninstall + add if Configure is unavailable).get_collection_context and confirm collection.id / name.Records tools (get_asset_spreadsheet_preview, set_collection_strategy_brief, promote_asset_to_strategy_brief, set_asset_transcription_status, delete_collection_asset, probe_asset_text_layer) are listed only when the API has those features enabled. Write tools are also hidden when FVI_READ_ONLY=true or the token lacks write scope.
| Tool | Description |
|---|---|
get_collection_context | Collection metadata, strategy brief, asset summary |
list_collection_assets | All assets (metadata only) |
search_collection_assets | Search by name, tag, category, or style |
get_asset | One asset by ID |
get_asset_content | Inline UTF-8 for catalog SVGs, uploaded SVGs, Markdown |
get_asset_download_url | Short-lived URL for PNG, PDF, spreadsheets (XLS/XLSX), and other binaries |
get_asset_download_urls | The same URLs for up to 50 assets per call |
get_asset_spreadsheet_preview | Size-capped first-sheet CSV/HTML preview for XLS/XLSX |
list_asset_versions | Version number, name, size, verified hash, and source |
list_community_packs | Public community icon packs with license and agentGuide URLs |
get_community_pack_guide | A pack's AGENTS.md: license, attribution, URL patterns, curated usage guide |
| Tool | Description |
|---|---|
create_asset_upload | Create asset record and signed upload target |
park_asset | Upload inline text or base64 into the collection |
create_asset_version | Upload a new version of an existing asset (prior versions retained) |
set_collection_strategy_brief | Replace collection.metadata.strategyBrief (native Strategy Brief tab) |
promote_asset_to_strategy_brief | Copy Markdown asset text into the native brief (does not delete the asset) |
set_asset_transcription_status | Patch textLayer / transcription metadata (no OCR) |
update_asset | Metadata-only PATCH: name, tags, documentType, DRL fields, custom metadata, and links |
set_collection_design_md | Pin the canonical DESIGN.md from inline Markdown or an existing asset |
update_collection_purpose | Set collection purpose to brand or records |
create_asset_version_upload | Signed upload for a new version of an existing asset |
complete_asset_upload | Verify checksum and size, then make that version current |
refresh_asset_upload | Issue a fresh upload URL for a pending upload whose URL expired (15 minutes) |
revert_asset_to_version | Copy an earlier version forward. History is kept |
delete_collection_asset | Soft-unlink collection item only — does not hard-delete bytes. Requires the delete scope |
probe_asset_text_layer | Best-effort PDF embedded text probe (API feature-flagged) |
Uploaded assets keep version history in FreeVectorIcons. Agents should prefer create_asset_version when refining an existing design, and park_asset for new files. Agents should use metadata and download URLs for images, PDFs, and spreadsheets (.xls / .xlsx) — workbook bytes are not dumped into MCP tool results. Use get_asset_spreadsheet_preview for a capped first-sheet look. For scanned PDFs, set transcription status after parking a Markdown sibling.
Parked STRATEGY_BRIEF.md is a supporting document only — it does not fill the native Strategy Brief tab until you call promote_asset_to_strategy_brief or set_collection_strategy_brief.
Optional write metadata: drlProjectId, drlAssetType, documentType, tags.
Tool names dropped the redundant design_ so they fit clients that prefix tool names with the server name (Antigravity's prefix is 33 characters, and Gemini allows 64 in total). Arguments, scopes and behaviour are unchanged. Results are unchanged except that a set_collection_strategy_brief dry run now reports would.operation: "set_collection_strategy_brief".
The old names still work when called, on this package and on the hosted endpoint, but are no longer listed. Update saved prompts, tool allowlists (FVI_TOOLS accepts either) and cached approvals to the new names, then reconnect or restart your client so it reloads the too
Only the beginning is shown; read the rest in the repo