Skip to main content
Glama
alucardeht

Figma MCP

by alucardeht

@alucardeht/figma-mcp

License: MIT

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-mcp

Get your Figma Token

  1. Open Figma Settings

  2. Navigate to Personal access tokens

  3. Click Create a new token

  4. 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 tree

  • Asset extraction (extract_assets) - Only visible icons and images

  • Style collection (extract_styles) - Only styles from visible elements

  • Page 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/ and images/ folders

  • Design tokens: Extract colors, typography, effects

  • Configurable screenshots: Scale 1-4x with dimension limits


Available Tools

Navigation

Tool

Description

list_pages(file_key)

List all pages in a file

list_frames(file_key, page_name)

List frames on a page

get_frame_info(file_key, page_name, frame_name, depth?)

Get frame structure in compact format

get_frame_info(file_key, node_id?, depth?)

Get frame via node_id (faster direct access)

search_components(file_key, query)

Find components by name

Extraction

Tool

Description

get_screenshot(file_key, page_name, frame_name)

Export frame as PNG

get_screenshot(file_key, node_id?)

Export frame via node_id (faster direct access)

extract_styles(file_key, page_name, frame_name)

Extract design tokens

extract_assets(file_key, page_name, frame_name)

Export SVGs and images

get_file_styles(file_key)

List published styles

Validation

Tool

Description

validate_implementation(file_key, url, figma_node_id, ...)

Pixel-perfect comparison between Figma and browser, results organized by visual sections with match scores, bounds, colors, and CSS tree

check_layout_bounds(file_key, page_name, frame_name)

Detect content overflow

compare_element_position(file_key, page_name, frame_name, element_name, browser_x, browser_y)

Compare position: Figma vs browser

compare_element_dimensions(file_key, page_name, frame_name, element_name, browser_width, browser_height)

Compare dimensions: Figma vs browser

compare_visual(file_key, page_name, frame_name, screenshot_path)

Pixel-perfect diff with pixelmatch

verify_elements_present(file_key, page_name, frame_name, element_names)

Check elements exist in DOM

verify_assets_loaded(file_key, page_name, frame_name)

Verify images are loaded

validate_responsive_breakpoint(file_key, page_name, frame_name, viewport_width)

Validate specific viewport

test_all_breakpoints(file_key, page_name, frame_name)

Test mobile, tablet, desktop

Session

Tool

Description

repeat_last()

Replay previous response from cache

get_session_state()

View current session state

reset_session()

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:

  1. Open frame in Figma editor

  2. Copy the ID from the URL: https://www.figma.com/design/FILE_KEY/...?node-id=NODE_ID

  3. Node 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 color

  • row / col — Layout direction

  • gap:N — Spacing between children

  • radius:N — Border radius

  • shadow — Has drop shadow

  • INSTANCE / 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.png

Rate 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 tools
analyze_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:

  1. analyze_page_structure → understand structure

  2. If recommended_division='multiple': use get_section_screenshot

  3. Each agent uses get_agent_context for its section

ParametersJSON Schema
NameRequiredDescriptionDefault
file_keyYesFigma file key from URL
page_nameYesPage name (partial match)
frame_nameYesFrame name (partial match)

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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:

  1. get_frame_info → see what assets exist and identify composite groups

  2. extract_assets → download all

  3. Check summary for file paths

ParametersJSON Schema
NameRequiredDescriptionDefault
file_keyYesFigma file key
page_nameYesPage name (partial match)
frame_nameYesFrame name (partial match)
output_dirNoOutput directory (default: ./figma-assets)./figma-assets

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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:

  1. get_frame_info → understand structure

  2. extract_styles → design tokens

  3. Use tokens to build theme/CSS

ParametersJSON Schema
NameRequiredDescriptionDefault
file_keyYesFigma file key
page_nameYesPage name (partial match)
frame_nameYesFrame name (partial match)

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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:

  1. analyze_page_structure → identify sections

  2. For each section: get_section_screenshot → visual reference

  3. get_agent_context(sectionId, agentIndex) → agent-specific context

  4. Each agent implements using provided context

ParametersJSON Schema
NameRequiredDescriptionDefault
file_keyYesFigma file key from URL
page_nameYesPage name (partial match)
frame_nameYesFrame name (partial match)
section_idYesSection ID from analyze_page_structure (e.g., 'section-0')
agent_indexNoZero-based agent index (default: 0)
total_agentsNoTotal number of agents working in parallel (default: 1)

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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:

  1. get_file_styles → global design tokens

  2. extract_styles(frame) → frame-specific tokens

  3. Combine for complete design system

ParametersJSON Schema
NameRequiredDescriptionDefault
file_keyYesFigma file key

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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:

  1. list_frames → find frame name

  2. get_frame_info(frame_name) → structure

  3. extract_styles → design tokens

  4. extract_assets → icons/images

ParametersJSON Schema
NameRequiredDescriptionDefault
file_keyYesFigma file key
page_nameYesPage name (partial match)
frame_nameYesFrame name (partial match)
depthNoHow deep to traverse (1=direct children, 2=grandchildren). Default: 2
continueNoContinue from last response

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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:

  1. get_full_page_context → get everything at once

  2. Distribute sections to multiple agents using agentInstructions

  3. Each agent implements their section with all necessary context

ParametersJSON Schema
NameRequiredDescriptionDefault
file_keyYesFigma file key from URL
page_nameYesPage name (partial match)
frame_nameYesFrame name (partial match)
scaleNoScreenshot scale 1-4 (default: 2)

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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:

  1. list_frames → find frame

  2. get_frame_info → structure details

  3. get_screenshot → visual reference

ParametersJSON Schema
NameRequiredDescriptionDefault
file_keyYesFigma file key
page_nameYesPage name (partial match)
frame_nameYesFrame name (partial match)
scaleNoScale 1-4 (default: 2)
max_dimensionNoMax px before segmenting (default: 4096)

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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:

  1. analyze_page_structure → identify sections

  2. get_section_screenshot(sectionId) → capture isolated section

  3. get_frame_info with section context → implementation details

ParametersJSON Schema
NameRequiredDescriptionDefault
file_keyYesFigma file key from URL
page_nameYesPage name (partial match)
frame_nameYesFrame name (partial match)
section_idYesSection ID from analyze_page_structure (e.g., 'section-0')
include_transition_contextNoInclude margin context for transition elements (default: true)
scaleNoImage scale 1-4 (default: 2)

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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:

  1. list_pages → find page name

  2. list_frames(page_name) → see frames

  3. get_frame_info(frame_name) → detail one frame

  4. extract_assets(frame_name) → get assets

ParametersJSON Schema
NameRequiredDescriptionDefault
file_keyYesFigma file key
page_nameYesPage name (partial match, case-insensitive)
continueNoContinue from last response if more frames available

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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:

  1. list_pages → see all pages

  2. list_frames(page_name) → see frames in a page

  3. get_frame_info(frame_name) → detail one frame

ParametersJSON Schema
NameRequiredDescriptionDefault
file_keyYesFigma file key from URL (e.g., 'h75vgHNcwxfHkRBbI53RRu')
continueNoContinue from last response if more pages available

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines5/5

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:

  1. search_components(query) → find matches

  2. If too many: refine with page_name or type filter

  3. get_frame_info on specific result

ParametersJSON Schema
NameRequiredDescriptionDefault
file_keyYesFigma file key
queryYesSearch term (case-insensitive, partial match)
page_nameNoLimit search to specific page
typeNoFilter by type: COMPONENT, INSTANCE, FRAME, TEXT, VECTOR
continueNoContinue from last response for more results

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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

A4.2/5.0
Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    Enables 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.
    7
    22
    11
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to extract design systems, analyze components, and maintain design-code consistency from Figma files, providing intelligent component analysis and accessibility compliance.
    156
    30
    MIT
  • F
    license
    B
    quality
    D
    maintenance
    Enables AI agents to read, inspect, and export Figma designs programmatically. Provides tools for listing components, styles, and exporting assets in various formats.
    5
    1

Latest Blog Posts

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