Figma MCP
The Figma MCP server provides intelligent API access to Figma designs, optimized for AI models through compact data formats, smart context management, and tools for design analysis and parallel implementation.
Core Capabilities:
Navigation & Discovery: List pages and frames, search components by name with partial matching, and access elements using human-readable names or direct node IDs from Figma URLs
Design Analysis: Extract frame hierarchies in compact ASCII tree format with 95% token reduction (205k → 10k chars), analyze page structures to identify sections and transition elements, and get complete page context (structure, screenshots, assets, styles) in one API call
Asset Extraction: Automatically categorize and export icons (SVG), images (PNG), and composite groups to organized folders with hierarchical naming, plus extract design tokens (colors, typography, spacing, shadows, effects) and published styles
Implementation Validation: Perform pixel-perfect comparisons between Figma designs and live browser implementations, validate element positions/dimensions/bounds, detect content overflow, verify asset loading and DOM element presence, and test across responsive breakpoints
Parallel Implementation Support: Generate agent-ready contexts for isolated sections, enabling multi-agent parallel work on different parts of a design
Session Management: Maintain context across requests with caching and replay functionality, view session state, and reset when needed
Smart Filtering: Automatically exclude invisible elements (visible: false) from all outputs to match Figma's design view
Optimization Features: Handle large files with automatic chunking and pagination (>50 pages/frames, >1000 elements), manage Figma API rate limits (120-480 req/min), control tree traversal depth to balance detail vs. token usage, and provide real-time progress tracking during operations
Provides tools for accessing Figma files through the REST API, including navigation of pages and frames, extraction of design tokens and assets (SVGs, images), screenshot generation, and component search with intelligent context management and compact tree output format.
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., "@Figma MCPshow me the structure of the landing page in the Validado file"
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.
@alucardeht/figma-mcp
MCP server for Figma API with intelligent context management and token optimization.
v3.0.0 — Compact tree output format with 95% token savings.
Installation
Claude Code
claude mcp add figma -e FIGMA_ACCESS_TOKEN=your-token-here -- npx -y github:alucardeht/figma-mcpGet your Figma Token
Open Figma Settings
Navigate to Personal access tokens
Click Create a new token
Copy the token immediately (it won't be shown again)
Related MCP server: Figma MCP Server
Requirements
Figma Plan
The Figma REST API works with any plan, but rate limits differ significantly:
Plan | File Access | Rate Limit |
Starter (Free) | 6 requests/month | Impractical for real use |
Professional | Unlimited | 120 req/min |
Organization | Unlimited | 480 req/min |
Important: Free accounts are limited to 6 API calls per month for file content. This makes the MCP server impractical without a paid plan.
Dev Mode is not required — this MCP uses the REST API, not Dev Mode features.
Features
Compact Tree Output (NEW in v3.0)
95% token reduction: 205k chars → 10k chars for typical landing pages
ASCII tree format: Clear hierarchical structure with
├─,└─,│Essential info preserved: Positions, dimensions, colors, layouts, overflow indicators
Example output:
Landing page [1440x2462 bg:#f2f2f2]
├─ header [1440x469]
│ ├─ nav [1440x81 row gap:99]
│ │ ├─ logo [155x30 INSTANCE]
│ │ └─ navHeaderLinks [456x49 row gap:8]
│ └─ zipCode [1188x147 bg:#fff radius:20]
├─ aboutContainer [1169x122 row]
│ ├─ aboutBox [391x122 radius:25]
│ └─ aboutBox [408x122 radius:25]
└─ footer [1440x90 row gap:309]Smart Navigation
Name-based access: Use human-readable names, no IDs required
Partial matching: "Landing" matches "Landing page"
Session state: Maintains context across requests
Invisible Element Filtering
By default, elements with visible: false in Figma are excluded from all MCP outputs:
Frame structure (
get_frame_info) - Only visible elements in the treeAsset extraction (
extract_assets) - Only visible icons and imagesStyle collection (
extract_styles) - Only styles from visible elementsPage analysis (
analyze_page_structure) - Only visible sections and components
This ensures the MCP output matches what you actually see in Figma's design view, not hidden elements used for design iteration, disabled variants, or placeholder components.
Why this matters: Designers often hide elements (placeholders, alternative versions, work in progress). Without filtering, the AI model would see and potentially implement these invisible elements, causing divergence from the intended design.
Asset Management
Organized extraction: Assets saved to
icons/andimages/foldersDesign tokens: Extract colors, typography, effects
Configurable screenshots: Scale 1-4x with dimension limits
Available Tools
Navigation
Tool | Description |
| List all pages in a file |
| List frames on a page |
| Get frame structure in compact format |
| Get frame via node_id (faster direct access) |
| Find components by name |
Extraction
Tool | Description |
| Export frame as PNG |
| Export frame via node_id (faster direct access) |
| Extract design tokens |
| Export SVGs and images |
| List published styles |
Validation
Tool | Description |
| Pixel-perfect comparison between Figma and browser, results organized by visual sections with match scores, bounds, colors, and CSS tree |
| Detect content overflow |
| Compare position: Figma vs browser |
| Compare dimensions: Figma vs browser |
| Pixel-perfect diff with pixelmatch |
| Check elements exist in DOM |
| Verify images are loaded |
| Validate specific viewport |
| Test mobile, tablet, desktop |
Session
Tool | Description |
| Replay previous response from cache |
| View current session state |
| Clear all cached data |
Direct Access via Node ID
Both get_frame_info and get_screenshot accept node_id as an alternative to page_name + frame_name for faster, direct access.
How to get node_id:
Open frame in Figma editor
Copy the ID from the URL:
https://www.figma.com/design/FILE_KEY/...?node-id=NODE_IDNode ID format example:
40000056-28165
Usage:
get_frame_info(file_key="h75vgHNcwxfHkRBbI53RRu", node_id="40000056-28165", depth=4)
get_screenshot(file_key="h75vgHNcwxfHkRBbI53RRu", node_id="40000056-28165")Benefits:
Skips page/frame name lookup (1 fewer API call)
More direct and reliable
Useful for specific design reviews
Compact Format Reference
The get_frame_info tool returns a compact tree format optimized for LLM context:
element-name [[x,y wxh] attributes]
├─ child [[x,y wxh] attributes]
│ └─ grandchild [wxh attributes]
└─ sibling [wxh attributes]Attributes shown:
bg:#hex— Background colorrow/col— Layout directiongap:N— Spacing between childrenradius:N— Border radiusshadow— Has drop shadowINSTANCE/VECTOR/TEXT— Node type↓overflow:Npx— Content overflows bounds
Example Workflow
1. list_pages("h75vgHNcwxfHkRBbI53RRu")
→ ["Home", "Components", "-> Validado"]
2. list_frames(file_key, "Validado")
→ ["Landing page", "Login", "Dashboard"]
3. get_frame_info(file_key, "Validado", "Landing page", depth=4)
→ Compact tree with full structure (165 lines, ~2.5k tokens)
4. extract_assets(file_key, "Validado", "Landing page")
→ icons/icon-1.svg, icons/icon-2.svg, images/hero.pngRate Limits
Plan | Requests/min |
Free | 120 |
Professional | 240 |
Organization | 480 |
Use pagination with continue=true to stay within limits.
License
MIT
Issues? Open an issue
Available Tools
15 toolsanalyze_page_structureA
Analyze page structure BEFORE any implementation.
MUST BE CALLED FIRST for any large page/frame.
HOW IT WORKS:
Identifies sections by background color changes
Detects transition elements spanning multiple sections
Groups icons by section
Estimates token usage
Recommends agent count for parallel work
RETURNS:
sections: List with id, name, bgColor, bounds, complexity
transition_elements: Elements spanning multiple sections
icons_by_section: Icons organized by section
total_estimated_tokens: Token estimate for full frame
recommended_division: 'single' or 'multiple'
recommended_agent_count: How many agents to use
TYPICAL WORKFLOW:
analyze_page_structure → understand structure
If recommended_division='multiple': use get_section_screenshot
Each agent uses get_agent_context for its section
| Name | Required | Description | Default |
|---|---|---|---|
| file_key | Yes | Figma file key from URL | |
| page_name | Yes | Page name (partial match) | |
| frame_name | Yes | Frame name (partial match) |
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 effectively describes what the tool does (analyzes structure, identifies sections, detects transitions, groups icons, estimates tokens, recommends agent count) and includes a workflow section, though it lacks details on error handling, performance, or rate limits. No contradictions exist.
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 well-structured with clear sections ('HOW IT WORKS', 'RETURNS', 'TYPICAL WORKFLOW'), front-loaded with key information, and every sentence adds value without redundancy. It efficiently communicates complex functionality in a digestible format.
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 complexity (structural analysis with multiple outputs), no annotations, and no output schema, the description provides comprehensive context: it details the analysis process, lists all return fields with explanations, and includes a workflow for integration with sibling tools. This compensates well for the lack of structured 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?
Schema description coverage is 100%, so the schema already documents all three parameters. The description does not add any specific meaning or usage details beyond what the schema provides, such as explaining how partial matches work or providing examples. Baseline 3 is appropriate when schema does the heavy lifting.
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 explicitly states the tool analyzes page structure before implementation, identifies sections by background color changes, detects transition elements, groups icons, estimates tokens, and recommends agent count. It clearly distinguishes from siblings like get_frame_info or get_section_screenshot by focusing on structural analysis for workflow planning.
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 explicit usage guidance: 'MUST BE CALLED FIRST for any large page/frame' and includes a 'TYPICAL WORKFLOW' section detailing when to use this tool versus alternatives like get_section_screenshot and get_agent_context, specifying conditional logic based on the output.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_assetsA
Extract all assets from a frame with progress tracking.
HOW IT WORKS:
Detects "composite groups" (image + decorative shapes) and exports them as single PNG
For composite groups, the ENTIRE group is exported as one image, preserving layout
Automatically categorizes into icons/, images/, and images/composites/
Uses smart naming based on component hierarchy
Shows progress: "Processing batch 1/5 - found 8 icons, 3 images, 2 composites"
Final summary with all file paths
Look for "isCompositeAsset: true" in the frame tree to identify composite groups
TYPICAL WORKFLOW:
get_frame_info → see what assets exist and identify composite groups
extract_assets → download all
Check summary for file paths
| Name | Required | Description | Default |
|---|---|---|---|
| file_key | Yes | Figma file key | |
| page_name | Yes | Page name (partial match) | |
| frame_name | Yes | Frame name (partial match) | |
| output_dir | No | Output directory (default: ./figma-assets) | ./figma-assets |
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 does an excellent job describing key behaviors: progress tracking with specific output format, automatic categorization into folders, smart naming, composite group handling, and final summary. It even provides implementation details ('Look for "isCompositeAsset: true"'). The only minor gap is lack of explicit mention about permissions or error handling.
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 well-structured with clear sections ('HOW IT WORKS', 'TYPICAL WORKFLOW') and uses bullet points effectively. While slightly longer than minimal, every sentence adds value. The front-loading of the core purpose is excellent, though the workflow section could be slightly more concise.
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 complex asset extraction tool with no annotations and no output schema, the description provides substantial behavioral context. It explains the extraction process, categorization, naming, progress reporting, and provides a workflow. The main gap is the lack of explicit information about return values/output format, though the 'final summary' hint partially addresses this.
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?
Schema description coverage is 100%, so the schema already documents all parameters. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain format requirements for file_key or matching behavior for page_name/frame_name). However, it does provide context about the output_dir's purpose through the workflow example.
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 all assets') and resource ('from a frame'), distinguishing it from siblings like 'extract_styles' or 'get_screenshot'. It explicitly mentions what types of assets are extracted (icons, images, composites) and how they're processed, providing clear differentiation from other tools.
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 'TYPICAL WORKFLOW' section explicitly states when to use this tool ('extract_assets → download all') and provides a clear prerequisite ('get_frame_info → see what assets exist and identify composite groups'). It also implies when not to use it (e.g., for styles extraction or screenshots, which are handled by sibling tools).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_stylesA
Extract all design tokens from a frame.
HOW IT WORKS:
Collects colors, fonts, spacing, border radius, shadows
Returns organized JSON ready for CSS/theme generation
No chunking needed (compact output)
TYPICAL WORKFLOW:
get_frame_info → understand structure
extract_styles → design tokens
Use tokens to build theme/CSS
| Name | Required | Description | Default |
|---|---|---|---|
| file_key | Yes | Figma file key | |
| page_name | Yes | Page name (partial match) | |
| frame_name | Yes | Frame name (partial match) |
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 effectively describes key behaviors: what gets extracted (design tokens like colors, fonts), the output format (organized JSON), and a performance characteristic ('No chunking needed'). It doesn't mention error conditions, rate limits, or authentication needs, but provides substantial operational context beyond basic purpose.
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 well-structured with clear sections ('HOW IT WORKS', 'TYPICAL WORKFLOW'), front-loads the core purpose, and every sentence adds value. It efficiently communicates essential information without redundancy, making it easy for an agent to parse and understand.
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 provides strong contextual completeness. It explains what the tool does, how it works, and typical usage. The main gap is the lack of output schema, so the description doesn't detail the JSON structure, but it adequately covers the tool's role and behavior for agent selection.
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?
Schema description coverage is 100%, so the schema already documents all three parameters. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain how partial matching works for page_name/frame_name). However, it does provide context about what the tool does with these parameters, maintaining the baseline score of 3.
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 all design tokens from a frame') and distinguishes it from siblings like 'get_file_styles' (which likely extracts global styles) or 'analyze_page_structure' (which focuses on layout). It explicitly mentions the resources being extracted (colors, fonts, spacing, etc.) and the output format (JSON for CSS/theme 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 provides explicit guidance on when to use this tool through the 'TYPICAL WORKFLOW' section, which positions it after 'get_frame_info' to understand structure and before using tokens for theme/CSS. It implicitly distinguishes from siblings by focusing on frame-level design tokens rather than page structure or global styles, though it doesn't explicitly name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_contextA
Prepare agent context for parallel implementation of a section.
HOW IT WORKS:
Call after analyze_page_structure to identify sections
Returns complete context for a single agent to implement one section
Handles responsibilities: what to implement vs coordinate
Includes icons, styles, and transition element info
Generates agent-specific instructions with coordination rules
RETURNS:
section: Details (id, name, background color, bounds)
responsibilities: what agent implements, coordinates, or skips
assets: icons and images in this section
styles: colors, fonts, spacing specific to section
agent_info: index, total agents, is_first, is_last
instructions: detailed markdown instructions for this agent
TYPICAL WORKFLOW:
analyze_page_structure → identify sections
For each section: get_section_screenshot → visual reference
get_agent_context(sectionId, agentIndex) → agent-specific context
Each agent implements using provided context
| Name | Required | Description | Default |
|---|---|---|---|
| file_key | Yes | Figma file key from URL | |
| page_name | Yes | Page name (partial match) | |
| frame_name | Yes | Frame name (partial match) | |
| section_id | Yes | Section ID from analyze_page_structure (e.g., 'section-0') | |
| agent_index | No | Zero-based agent index (default: 0) | |
| total_agents | No | Total number of agents working in parallel (default: 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses behavioral traits: it returns context for a single agent (not all agents), handles responsibilities (implementation vs. coordination), includes specific data types (icons, styles, transition elements), and generates agent-specific instructions with coordination rules. However, it doesn't mention error handling, rate limits, or authentication needs, which are gaps for a tool with no annotations.
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 well-structured with sections (HOW IT WORKS, RETURNS, TYPICAL WORKFLOW) and uses bullet points for clarity. It is appropriately sized, but some sentences could be more concise (e.g., 'Handles responsibilities: what to implement vs coordinate' is slightly redundant). Overall, it's efficient with minimal waste.
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 complexity (6 parameters, no annotations, no output schema), the description is fairly complete. It explains the tool's role in a workflow, what it returns, and how to use it. However, without an output schema, it doesn't detail the return format (e.g., structure of 'section' or 'instructions'), which is a gap. It compensates by listing return components but lacks depth on their semantics.
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?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds minimal value beyond the schema: it mentions 'sectionId' and 'agentIndex' in the workflow but doesn't explain their semantics further (e.g., how sectionId relates to analyze_page_structure output). With high schema coverage, the baseline is 3, and the description doesn't significantly enhance parameter understanding.
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 tool's purpose: 'Prepare agent context for parallel implementation of a section.' It specifies the verb ('prepare') and resource ('agent context') with a specific scope ('for parallel implementation of a section'). It distinguishes from siblings like analyze_page_structure (which identifies sections) and get_section_screenshot (which provides visual references).
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 explicit guidance on when to use this tool: 'Call after analyze_page_structure to identify sections' and 'For each section: get_section_screenshot → visual reference' then 'get_agent_context(sectionId, agentIndex) → agent-specific context.' It includes a TYPICAL WORKFLOW section that outlines the sequence and alternatives (e.g., using get_section_screenshot for visual reference).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_stylesA
Get all published styles defined in the file.
HOW IT WORKS:
Returns design system tokens: colors, text styles, effects
These are the official styles defined in Figma
Compact output, no chunking needed
TYPICAL WORKFLOW:
get_file_styles → global design tokens
extract_styles(frame) → frame-specific tokens
Combine for complete design system
| Name | Required | Description | Default |
|---|---|---|---|
| file_key | Yes | Figma file key |
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 effectively describes key behavioral traits: what it returns (design system tokens), that these are 'official styles defined in Figma', and output characteristics ('Compact output, no chunking needed'). It doesn't mention error conditions, rate limits, or authentication needs, but provides substantial context beyond basic functionality.
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 well-structured with clear sections ('HOW IT WORKS', 'TYPICAL WORKFLOW'), front-loaded with the core purpose, and every sentence adds value. It efficiently communicates purpose, behavior, and usage guidelines without redundancy or unnecessary 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?
Given the tool's moderate complexity (1 parameter, no output schema, no annotations), the description is quite complete. It explains what the tool does, how it works, output characteristics, and how it fits into workflows. The main gap is lack of explicit error handling or return format details, but for a read-only tool with good behavioral description, this is minor.
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 with the 'file_key' parameter clearly documented as 'Figma file key'. The description doesn't add any additional parameter semantics beyond what the schema provides, so it meets the baseline of 3 for high schema coverage. No compensation is needed since schema coverage is complete.
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 tool's purpose: 'Get all published styles defined in the file' with specific details about what it returns ('design system tokens: colors, text styles, effects') and distinguishes it from sibling tools like 'extract_styles' which is for frame-specific tokens. It explicitly names the resource (styles/tokens) and verb (get).
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 explicit guidance on when to use this tool versus alternatives, particularly in the 'TYPICAL WORKFLOW' section which states: '1. get_file_styles → global design tokens 2. extract_styles(frame) → frame-specific tokens 3. Combine for complete design system'. This clearly differentiates it from 'extract_styles' and explains the complementary relationship.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_frame_infoA
Get detailed info about a specific frame.
IMPORTANT: This should be your FIRST call for any implementation task. Always call get_frame_info BEFORE taking screenshots to understand the structure.
HOW IT WORKS:
Returns all components, text, colors, and styles
Large frames (>1000 elements) trigger warning with strategy
Use depth parameter to control detail level
Automatically chunks if response too large
The tree includes special markers:
isCompositeAsset: true = Export this GROUP as a single image (contains image + shapes)
isSmallElement: true = Small UI element that may be easily missed
TYPICAL WORKFLOW:
list_frames → find frame name
get_frame_info(frame_name) → structure
extract_styles → design tokens
extract_assets → icons/images
| Name | Required | Description | Default |
|---|---|---|---|
| file_key | Yes | Figma file key | |
| page_name | Yes | Page name (partial match) | |
| frame_name | Yes | Frame name (partial match) | |
| depth | No | How deep to traverse (1=direct children, 2=grandchildren). Default: 2 | |
| continue | No | Continue from last response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and provides substantial behavioral context: it describes return content (components, text, colors, styles), handling of large frames (warning with strategy), chunking behavior, and special markers (isCompositeAsset, isSmallElement). It doesn't mention rate limits or authentication needs, but covers most operational behaviors well.
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?
Well-structured with clear sections (IMPORTANT, HOW IT WORKS, TYPICAL WORKFLOW) and front-loaded key information. Some sentences could be more concise (e.g., the workflow section is somewhat redundant with earlier guidance), but overall it's efficiently organized with minimal waste.
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 5 parameters, no annotations, and no output schema, the description provides good contextual coverage: purpose, sequencing, behavioral traits, and workflow integration. It doesn't fully describe the return format or error conditions, but given the complexity and lack of structured fields, it's reasonably complete for agent use.
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?
Schema description coverage is 100%, so the schema already documents all 5 parameters. The description adds some context about the depth parameter ('control detail level') and implies frame_name comes from list_frames, but doesn't provide additional syntax or format details beyond what the schema provides. Baseline 3 is appropriate when schema does the heavy lifting.
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 tool's purpose with specific verbs ('Get detailed info') and resource ('about a specific frame'). It distinguishes from siblings by focusing on frame-level details rather than page analysis (analyze_page_structure), asset extraction (extract_assets), or listing (list_frames). The opening sentence directly answers 'what does this tool do?'
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?
Explicit guidance is provided: 'This should be your FIRST call for any implementation task' and 'Always call get_frame_info BEFORE taking screenshots'. The TYPICAL WORKFLOW section shows sequencing with list_frames and other tools. Clear when-to-use context is established, though alternatives aren't explicitly named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_full_page_contextA
Get complete page context in ONE call with all sections, assets, screenshots, and styles.
WHAT YOU GET IN ONE CALL:
Complete page structure with all sections identified
Screenshots for each section (base64 encoded)
All assets organized by section with unique names
Design tokens per section
Asset map for quick lookup
Agent instructions ready for parallel implementation
Transition elements that span multiple sections
PERFECT FOR:
Getting full context before implementation
Preparing data for parallel multi-agent work
Quick assessment of page complexity
One-call solution for complete page understanding
RETURNS:
overview: Frame metadata and recommendations
sections: Array with all section details including screenshots
assetMap: Quick lookup table for assets by unique name
agentInstructions: Pre-written instructions for each agent
transitionElements: Elements spanning multiple sections
TYPICAL WORKFLOW:
get_full_page_context → get everything at once
Distribute sections to multiple agents using agentInstructions
Each agent implements their section with all necessary context
| Name | Required | Description | Default |
|---|---|---|---|
| file_key | Yes | Figma file key from URL | |
| page_name | Yes | Page name (partial match) | |
| frame_name | Yes | Frame name (partial match) | |
| scale | No | Screenshot scale 1-4 (default: 2) |
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 effectively describes key behaviors: it's a read operation (implied by 'Get'), returns comprehensive data (listed in 'WHAT YOU GET IN ONE CALL' and 'RETURNS'), and supports parallel implementation workflows. However, it lacks details on error handling, rate limits, or authentication needs, which are important for a tool with multiple parameters and no output schema.
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 well-structured with clear sections (WHAT YOU GET, PERFECT FOR, RETURNS, TYPICAL WORKFLOW), making it easy to scan. It's appropriately sized for a complex tool, though some redundancy exists (e.g., listing items in both 'WHAT YOU GET' and 'RETURNS'). Most sentences earn their place by adding value, but minor trimming could improve conciseness.
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 complexity (4 parameters, no annotations, no output schema), the description does a good job of explaining what the tool does, when to use it, and what it returns. It covers purpose, usage guidelines, and behavioral context comprehensively. However, the lack of an output schema means the description must fully explain return values, which it does in the 'RETURNS' section, though some details (e.g., data formats for screenshots) could be more explicit.
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, providing clear documentation for all 4 parameters (file_key, page_name, frame_name, scale). The description adds no additional parameter-specific information beyond what's in the schema. According to the rules, when schema_description_coverage is high (>80%), the baseline score is 3 even with no param info in the description, which applies here.
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 explicitly states the tool 'Get complete page context in ONE call with all sections, assets, screenshots, and styles.' It uses specific verbs ('Get complete page context') and resources ('sections, assets, screenshots, and styles'), clearly distinguishing it from siblings like get_screenshot (single screenshot) or extract_assets (assets only). The 'ONE call' emphasis highlights its comprehensive nature versus piecemeal alternatives.
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 explicit usage guidance with sections like 'PERFECT FOR:' and 'TYPICAL WORKFLOW:'. It specifies when to use ('Getting full context before implementation', 'Preparing data for parallel multi-agent work') and implies alternatives by contrasting its 'ONE call' approach with sibling tools that handle specific aspects (e.g., extract_assets, get_screenshot). The workflow steps outline a clear sequence, reinforcing its role in multi-agent scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_screenshotA
Capture screenshot of a frame.
WARNING: Do NOT use screenshots as the first step! Always call get_frame_info first to understand the structure. Screenshots are for visual reference AFTER you understand the tree.
HOW IT WORKS:
For large frames, automatically segments into tiles
Returns base64 image(s)
Scale 1-4 controls resolution
TYPICAL WORKFLOW:
list_frames → find frame
get_frame_info → structure details
get_screenshot → visual reference
| Name | Required | Description | Default |
|---|---|---|---|
| file_key | Yes | Figma file key | |
| page_name | Yes | Page name (partial match) | |
| frame_name | Yes | Frame name (partial match) | |
| scale | No | Scale 1-4 (default: 2) | |
| max_dimension | No | Max px before segmenting (default: 4096) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: automatic segmentation for large frames, returns base64 image(s), and scale control for resolution. However, it lacks details on error handling, performance implications, or specific output format beyond 'base64 image(s).'
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 well-structured with clear sections (WARNING, HOW IT WORKS, TYPICAL WORKFLOW), front-loaded with critical usage guidance. Every sentence earns its place by providing essential information without redundancy, making it efficient and easy to parse.
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 no annotations and no output schema, the description does a good job covering purpose, usage, and key behaviors. However, it lacks details on the output format (e.g., structure of returned images, pagination for tiles) and error cases, which are important for a tool with visual output and segmentation logic.
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?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds minimal value beyond the schema, mentioning that scale controls resolution and segmentation occurs for large frames, but doesn't provide additional syntax or format details. Baseline 3 is appropriate as the schema does the heavy lifting.
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 tool's purpose with the specific verb 'capture' and resource 'screenshot of a frame.' It distinguishes from siblings like get_frame_info (which provides structure details) and get_section_screenshot (which might target sections rather than frames), making the scope explicit.
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 explicit guidance on when to use this tool, including a WARNING not to use it as a first step and to always call get_frame_info first. It outlines a typical workflow with alternatives (list_frames, get_frame_info) and distinguishes from other tools by emphasizing its role for visual reference after understanding the structure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_section_screenshotA
Capture screenshot of a specific section within a frame.
HOW IT WORKS:
First call analyze_page_structure to identify sections
Makes other sections transparent (shows only target section)
Optionally includes transition elements context
Returns cropped image focused on section
Useful for parallel analysis of large frames
TYPICAL WORKFLOW:
analyze_page_structure → identify sections
get_section_screenshot(sectionId) → capture isolated section
get_frame_info with section context → implementation details
| Name | Required | Description | Default |
|---|---|---|---|
| file_key | Yes | Figma file key from URL | |
| page_name | Yes | Page name (partial match) | |
| frame_name | Yes | Frame name (partial match) | |
| section_id | Yes | Section ID from analyze_page_structure (e.g., 'section-0') | |
| include_transition_context | No | Include margin context for transition elements (default: true) | |
| scale | No | Image scale 1-4 (default: 2) |
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 effectively describes key behaviors: 'Makes other sections transparent (shows only target section),' 'Optionally includes transition elements context,' and 'Returns cropped image focused on section.' However, it lacks details on error handling, performance, or authentication needs, preventing a perfect score.
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 well-structured with clear sections ('HOW IT WORKS,' 'TYPICAL WORKFLOW') and uses bullet points for readability. It is appropriately sized, though the workflow section is slightly verbose. Most sentences earn their place by adding practical guidance, but minor trimming could improve conciseness.
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 complexity (6 parameters, no output schema, no annotations), the description is largely complete. It explains the tool's purpose, usage workflow, and key behaviors. However, without an output schema, it doesn't detail the return format (e.g., image type, size), leaving a minor gap in contextual coverage.
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?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema, mentioning 'sectionId' and 'transition elements context' but not providing additional syntax or format details. This meets the baseline of 3 when schema coverage is high.
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 tool's purpose: 'Capture screenshot of a specific section within a frame.' It specifies the verb ('capture'), resource ('screenshot'), and scope ('specific section within a frame'), distinguishing it from sibling tools like 'get_screenshot' (which likely captures entire frames) and 'analyze_page_structure' (which identifies sections).
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 explicit guidance on when and how to use this tool. It states: 'First call analyze_page_structure to identify sections' and outlines a 'TYPICAL WORKFLOW' with step-by-step instructions, including alternatives like 'get_frame_info with section context.' This clearly differentiates it from other tools and provides practical usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_stateB
Get current session state for debugging.
RETURNS:
Current file being explored
Pages and frames already sent
Pending continuation operations
Last update timestamp
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 adds value by specifying the return structure (e.g., 'Current file being explored', 'Pages and frames already sent'), which helps understand what data is retrieved. However, it doesn't cover aspects like performance, error handling, or session state mutability, leaving gaps for a debugging tool.
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 well-structured with a clear purpose statement followed by a bulleted list of return items, making it easy to scan. It's appropriately sized for a no-parameter tool, though the 'RETURNS:' label could be integrated more seamlessly into the flow.
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 simplicity (0 parameters, no annotations, no output schema), the description is reasonably complete. It explains the purpose, provides debugging context, and details return values, which is sufficient for this use case. However, it could benefit from more explicit usage guidelines relative to siblings.
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 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately focuses on output semantics by detailing return values, which compensates for the lack of an output schema. This adds meaningful context beyond the empty input schema.
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 tool's purpose with the verb 'Get' and resource 'current session state', and specifies it's 'for debugging'. However, it doesn't explicitly differentiate from sibling tools like 'get_agent_context' or 'get_full_page_context' that might also retrieve session-related information, preventing a perfect 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 minimal guidance by mentioning 'for debugging', which implies usage context but doesn't specify when to use this tool versus alternatives like 'get_agent_context' or 'reset_session'. No explicit when/when-not instructions or alternative tool references are included.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_framesA
List frames/screens in a specific page.
HOW IT WORKS:
Search by page name (partial match supported)
Large pages (>50 frames) are automatically chunked
Returns compact list with frame names, sizes, and IDs
Session remembers what was sent
TYPICAL WORKFLOW:
list_pages → find page name
list_frames(page_name) → see frames
get_frame_info(frame_name) → detail one frame
extract_assets(frame_name) → get assets
| Name | Required | Description | Default |
|---|---|---|---|
| file_key | Yes | Figma file key | |
| page_name | Yes | Page name (partial match, case-insensitive) | |
| continue | No | Continue from last response if more frames available |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and adds valuable behavioral context beyond the schema: it explains partial matching for page names, automatic chunking for large pages (>50 frames), the return format ('compact list with frame names, sizes, and IDs'), and session persistence ('Session remembers what was sent'). It doesn't cover error cases or rate limits, but provides substantial operational details.
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 well-structured with clear sections ('HOW IT WORKS', 'TYPICAL WORKFLOW') and front-loaded with the core purpose. Each sentence adds value, though the workflow section is somewhat lengthy; it could be slightly more concise while retaining clarity.
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 no annotations and no output schema, the description does a good job of covering key aspects: purpose, usage guidelines, behavioral traits, and parameter context. It explains the return format and session behavior, which compensates for the lack of output schema. However, it doesn't detail error handling or authentication needs, leaving minor gaps.
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?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds some context: it mentions partial match support for 'page_name' (implied in schema but reinforced) and explains the purpose of 'continue' in relation to chunking. However, it doesn't provide significant additional meaning beyond what the schema offers, meeting the baseline for high 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 specific action ('List frames/screens'), target resource ('in a specific page'), and distinguishes from siblings like 'list_pages' (which lists pages) and 'get_frame_info' (which provides detailed info on a single frame). The opening sentence is precise and unambiguous.
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 'TYPICAL WORKFLOW' section explicitly provides step-by-step guidance on when to use this tool versus alternatives: first use 'list_pages' to find a page name, then 'list_frames' to see frames, followed by 'get_frame_info' for details or 'extract_assets' for assets. This clearly defines the tool's role in the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pagesA
List all pages in a Figma file.
HOW IT WORKS:
Returns compact JSON with page names, IDs, and frame counts
Large files (>50 pages) are automatically chunked
Use 'continue: true' to get next batch
TYPICAL WORKFLOW:
list_pages → see all pages
list_frames(page_name) → see frames in a page
get_frame_info(frame_name) → detail one frame
| Name | Required | Description | Default |
|---|---|---|---|
| file_key | Yes | Figma file key from URL (e.g., 'h75vgHNcwxfHkRBbI53RRu') | |
| continue | No | Continue from last response if more pages available |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and adds valuable behavioral context: it discloses the return format ('compact JSON with page names, IDs, and frame counts'), pagination behavior for large files ('automatically chunked' for >50 pages), and how to handle continuation ('Use 'continue: true' to get next batch'). It doesn't mention rate limits or auth needs, but covers key operational details.
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 well-structured with clear sections ('HOW IT WORKS', 'TYPICAL WORKFLOW'), front-loaded with the core purpose, and every sentence earns its place by adding operational guidance or workflow context without redundancy.
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 read-only listing tool with no output schema, the description is quite complete: it explains purpose, behavior, parameters, and integration with siblings. It could slightly improve by explicitly stating it's a read operation (implied but not stated) or mentioning error cases, but covers most needs given the context.
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?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds marginal value by explaining the 'continue' parameter's purpose in the 'HOW IT WORKS' section, but doesn't provide additional syntax or format details beyond what the schema specifies. Baseline 3 is appropriate.
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 ('List all pages'), target resource ('in a Figma file'), and distinguishes from siblings like 'list_frames' and 'get_frame_info' by focusing on pages rather than frames. The opening sentence is direct and unambiguous.
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 'TYPICAL WORKFLOW' section explicitly provides when to use this tool (step 1 to see all pages) and what to do next (steps 2-3 with sibling tools 'list_frames' and 'get_frame_info'). This gives clear context and alternatives for related tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repeat_lastA
Repeat the last response without making new API calls.
HOW IT WORKS:
Returns exact same response from session state
No Figma API call needed
Useful for context recovery
WHEN TO USE:
Lost context and need to see previous data
Want to reference last response again
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 effectively explains key traits: it returns the 'exact same response from session state,' involves 'No Figma API call needed,' and is 'Useful for context recovery.' This covers the read-only, non-destructive nature and performance benefits, though it could add more on error handling or state persistence.
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 well-structured with clear sections ('HOW IT WORKS,' 'WHEN TO USE'), front-loaded key information, and uses bullet points for readability. Every sentence adds value without redundancy, making it efficient and easy to scan for an AI agent.
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 low complexity (0 parameters, no output schema, no annotations), the description is nearly complete. It explains what the tool does, when to use it, and its behavioral traits. A minor gap is the lack of detail on what happens if no previous response exists, but overall it provides sufficient context for effective use.
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 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately avoids discussing parameters, focusing instead on functionality. A baseline of 4 is applied as it compensates well for the lack of parameters by explaining the tool's behavior clearly.
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 tool's purpose with a specific verb ('Repeat') and resource ('last response'), distinguishing it from all sibling tools which involve API calls to Figma for data retrieval or analysis. It explicitly notes it operates on 'session state' rather than making new API calls, making its unique function immediately apparent.
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 includes an explicit 'WHEN TO USE' section that provides clear guidance: use when 'Lost context and need to see previous data' or 'Want to reference last response again.' This directly addresses when to choose this tool over alternatives (like re-fetching data via API calls), with no misleading exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reset_sessionA
Clear all session state for fresh start.
USE WHEN:
Switching to different Figma file
Want to re-explore from scratch
Session state seems corrupted
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool 'clear[s] all session state', implying a destructive mutation, but doesn't detail what 'session state' includes (e.g., cached data, user context) or any side effects like resetting authentication or rate limits. It adds some context but lacks depth on behavioral traits.
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 front-loaded with the core purpose in the first sentence, followed by a bulleted list for usage guidelines. Every sentence earns its place by adding value without redundancy, making it efficient and well-structured for quick understanding.
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 low complexity (0 parameters, no output schema) and lack of annotations, the description is mostly complete: it states the purpose, provides usage guidelines, and implies behavior. However, it could enhance completeness by specifying what 'session state' entails or confirming no output, but it's adequate for this simple tool.
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?
There are 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't mention parameters, which is appropriate. Baseline for 0 params is 4, as it avoids unnecessary details while being complete for a parameterless tool.
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 tool's purpose with the verb 'clear' and resource 'session state', plus the outcome 'for fresh start'. It distinguishes from siblings like get_session_state (which reads state) by focusing on resetting. However, it doesn't explicitly contrast with all siblings (e.g., repeat_last might also involve session handling), keeping it from a perfect 5.
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 includes a 'USE WHEN' section with three explicit scenarios: switching files, re-exploring from scratch, and handling corrupted state. This provides clear guidance on when to invoke this tool versus alternatives, such as using get_session_state to check state first or other tools for specific file operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_componentsA
Search for components by name across the file.
HOW IT WORKS:
Searches entire file or specific page
Returns top 20 results with total count
If >20 results, suggests refinement options
Use 'continue: true' to get more results
TYPICAL WORKFLOW:
search_components(query) → find matches
If too many: refine with page_name or type filter
get_frame_info on specific result
| Name | Required | Description | Default |
|---|---|---|---|
| file_key | Yes | Figma file key | |
| query | Yes | Search term (case-insensitive, partial match) | |
| page_name | No | Limit search to specific page | |
| type | No | Filter by type: COMPONENT, INSTANCE, FRAME, TEXT, VECTOR | |
| continue | No | Continue from last response for more results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: result limits (top 20 with total count), pagination mechanism ('continue: true'), and refinement suggestions for large result sets. It doesn't mention rate limits, authentication needs, or error conditions, but covers core operational behavior adequately.
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 well-structured with clear sections ('HOW IT WORKS', 'TYPICAL WORKFLOW'), front-loaded with the core purpose, and every sentence adds practical value without redundancy. It's appropriately sized for a 5-parameter search tool.
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 complexity (search with filters and pagination), no annotations, and no output schema, the description does a good job covering key aspects: purpose, behavioral constraints, and usage workflow. It could improve by detailing the output format or error cases, but it's largely complete for guiding effective use.
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?
Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description adds minimal value beyond the schema, mentioning 'continue: true' for pagination and implying usage of 'page_name' and 'type' for refinement, but doesn't provide additional syntax or format details. Baseline 3 is appropriate when schema does the heavy lifting.
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 tool searches for components by name across a Figma file, with specific details about scope (entire file or specific page) and resource (components). However, it doesn't explicitly differentiate from sibling tools like 'list_frames' or 'analyze_page_structure' beyond the search functionality.
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 'TYPICAL WORKFLOW' section provides clear context for when to use this tool in a sequence (search, refine, get details) and mentions refinement options when results exceed 20. It doesn't explicitly state when NOT to use it or name specific alternatives among siblings, but the workflow guidance is practical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, such as analyze_page_structure for section analysis, extract_assets for asset extraction, and get_agent_context for parallel work preparation. However, there is some overlap between get_frame_info and get_full_page_context, as both provide structural details, which could cause confusion about when to use each.
Tool names consistently follow a verb_noun pattern, such as analyze_page_structure, extract_assets, get_frame_info, and list_pages. All names use snake_case, making them predictable and easy to read across the set.
With 15 tools, the server is well-scoped for automating Figma design-to-code workflows, covering tasks from exploration to implementation. Each tool serves a clear role, such as asset extraction, style retrieval, and parallel processing support, without unnecessary redundancy.
The tool set provides comprehensive coverage for Figma automation, including listing pages/frames, analyzing structure, extracting assets and styles, capturing screenshots, supporting parallel agent work, and handling session state. No obvious gaps exist; it supports full workflows from discovery to implementation.
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
Access and maintain design system docs, tokens, components, skills, and contexts across any project.
The Figma MCP server brings Figma design context directly into your AI workflow.
Build and manage your design system with AI: tokens, themes, components, icons, Figma and code.
Turn any live website into brand colors, fonts, design tokens, SVGs, Lottie and paste-ready code.
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables interaction with Figma designs through the Figma API, allowing users to export images in multiple formats, extract style data and CSS, analyze design elements, and retrieve SVG code from Figma files. Supports batch operations and comprehensive design element analysis including images, vectors, and components.72211MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Figma designs using natural language commands, supporting file analysis, component extraction, asset export, comment management, and design system queries through the Figma API.1,7011ISC
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to extract design systems, analyze components, and maintain design-code consistency from Figma files, providing intelligent component analysis and accessibility compliance.15630MIT
- FlicenseBqualityDmaintenanceEnables AI agents to read, inspect, and export Figma designs programmatically. Provides tools for listing components, styles, and exporting assets in various formats.51
Appeared in Searches
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/alucardeht/figma-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server