@nvanexan/figma-mcp
Provides tools to extract design context from Figma files, including layout, styles, typography, and effects as CSS-like properties, and allows exporting rendered images of Figma nodes in various formats.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@nvanexan/figma-mcpextract the CSS styles from https://www.figma.com/file/Abc123/design?node-id=1-1"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@nvanexan/figma-mcp
Figma MCP server for GitHub Copilot coding agent — PAT auth via STDIO.
Extracts design context (layout, styles, typography, effects) from Figma files as CSS-like properties, and exports rendered images of Figma nodes. Built on the Model Context Protocol.
Install
npm install -g @nvanexan/figma-mcpOr use directly with npx:
npx @nvanexan/figma-mcpRelated MCP server: Framelink Figma MCP Server
Setup
Set your Figma Personal Access Token as an environment variable:
export FIGMA_API_KEY=your-figma-patYou can generate a token in Figma under Settings > Personal Access Tokens.
GitHub Copilot / Claude Code
Add the server to your MCP configuration:
{
"mcpServers": {
"figma": {
"command": "npx",
"args": ["-y", "@nvanexan/figma-mcp"],
"env": {
"FIGMA_API_KEY": "your-figma-pat"
}
}
}
}Tools
get_figma_context
Extracts design context from a Figma URL and returns a simplified node tree with CSS-like properties (flexbox layout, colors, typography, effects, dimensions).
Parameter | Type | Required | Description |
| string | yes | Figma file URL (with optional node-id) |
| number | no | Node tree depth, 1–10 (default: 3) |
get_figma_image
Exports a rendered image of a Figma node.
Parameter | Type | Required | Description |
| string | yes | Figma URL with a node-id |
| string | no |
|
| number | no | 0.01–4 (default: 2) |
Development
npm install
npm run build
npm testScripts
Script | Description |
| Compile TypeScript to |
| Lint source with ESLint |
| Run tests |
| Run tests in watch mode |
| Run tests with coverage report |
Releasing
This project uses GitHub Actions for CI and publishing.
To release a new version:
Update the version in
package.jsonfollowing semver:npm version patch # 0.1.0 → 0.1.1 (bug fixes) npm version minor # 0.1.0 → 0.2.0 (new features) npm version major # 0.1.0 → 1.0.0 (breaking changes)Push the commit and tag:
git push origin main --follow-tagsThe CI pipeline will automatically run tests and publish to npm.
License
MIT
Available Tools
2 toolsget_figma_contextA
Extract design context (layout, styles, text, dimensions) from a Figma URL as CSS-like properties
| Name | Required | Description | Default |
|---|---|---|---|
| figmaUrl | Yes | Figma design URL (supports /design/, /file/, /proto/, /board/) | |
| depth | No | Maximum depth to traverse the node tree (default: 3) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While it mentions what gets extracted (layout, styles, text, dimensions), it doesn't address important behavioral aspects like authentication requirements, rate limits, error conditions, or what happens with invalid URLs. The description provides some context but leaves significant behavioral questions unanswered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. Every word earns its place - 'Extract' (action), 'design context' (what), 'from a Figma URL' (source), 'as CSS-like properties' (output format). No wasted words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description provides basic purpose but lacks important contextual information. It doesn't explain what the output looks like (beyond 'CSS-like properties'), doesn't mention authentication or rate limiting, and doesn't provide examples of what 'design context' includes beyond the parenthetical list. The 100% schema coverage helps, but the description itself is incomplete for a tool that extracts complex design data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema already fully documents both parameters. The description doesn't add any meaningful parameter semantics beyond what's in the schema - it mentions 'Figma URL' and 'depth' concepts but provides no additional context about URL formats beyond what the schema specifies or how depth affects the extraction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Extract'), target resource ('design context from a Figma URL'), and output format ('CSS-like properties'). It distinguishes from the sibling tool 'get_figma_image' by focusing on contextual data extraction rather than image generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the phrase 'from a Figma URL' but doesn't explicitly state when to use this tool versus alternatives. No guidance is provided about when not to use it or what specific scenarios it's designed for beyond the general extraction purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_figma_imageB
Export a rendered image of a Figma node as a URL
| Name | Required | Description | Default |
|---|---|---|---|
| figmaUrl | Yes | Figma design URL with a node-id parameter | |
| format | No | Image export format (default: png) | png |
| scale | No | Image scale factor (default: 2, max: 4) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions exporting an image as a URL, implying a read operation, but doesn't cover aspects like authentication needs, rate limits, error handling, or what the URL format entails (e.g., temporary vs. permanent). This leaves significant gaps for a tool that interacts with an external service.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core action, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate. It explains what the tool does but lacks details on behavioral traits and usage context, which are important for an external API tool. The high schema coverage helps, but overall completeness is limited.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, detailing each parameter's purpose, constraints, and defaults. The description adds no additional semantic context beyond what the schema provides, such as examples or edge cases, so it meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Export') and resource ('a rendered image of a Figma node'), making the purpose understandable. However, it doesn't differentiate from the sibling tool 'get_figma_context', which might handle different aspects of Figma data, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_figma_context' or other image export methods. It lacks context about prerequisites or exclusions, leaving the agent to infer usage from the parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v0.1.0- First observed
get_figma_context - First observed
get_figma_image
TDQS
The two tools have clearly distinct purposes: one extracts design context as CSS-like properties, while the other exports rendered images. There is no overlap in functionality, making it easy for an agent to choose the right tool based on the need for data extraction versus visual output.
Both tools follow a consistent verb_noun pattern with 'get_figma_' as a prefix, using snake_case throughout. This predictable naming scheme enhances readability and makes the tool set coherent and easy to understand.
With only two tools, the server feels thin for a Figma integration, which typically involves more operations like creating or updating designs, listing files, or managing comments. The limited scope may restrict agent workflows, suggesting an incomplete surface for the domain.
The tool set is severely incomplete for a Figma MCP server, covering only context extraction and image export. It lacks core operations such as file management, design creation, or collaboration features, which are essential for comprehensive Figma integration, leading to potential agent failures in broader tasks.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The Figma MCP server brings Figma design context directly into your AI workflow.
UI design from prompts, screenshots, and URLs for AI coding agents and theme tokens.
Serves your design system and coding standards to coding agents, so they stop guessing.
- miromiroOAuthapp.miromiro
Turn any live website into brand colors, fonts, design tokens, SVGs, Lottie and paste-ready code.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables seamless interaction with Figma via the Model Context Protocol, allowing LLM applications to access, manipulate, and track Figma files, components, and variables.21,570150MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI coding agents with access to Figma design data through the Figma API. Enables accurate one-shot implementation of designs in any framework by translating Figma files into simplified layout and styling information.71MIT
- FlicenseAqualityDmaintenanceEnables AI agents to interact with Figma to create, read, and manage designs using the Figma REST API and a dedicated plugin. It supports advanced features like UI generation from text, webpage reconstruction in Figma, and design token synchronization with codebases.20-
- FlicenseBqualityDmaintenanceEnables AI agents to read, inspect, and export Figma designs programmatically. Provides tools for listing components, styles, and exporting assets in various formats.51-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nvanexan/figma-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server