Figma Motion MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FIGMA_MOTION_WS_PORT | No | Override the WebSocket bridge port (default 3055) | 3055 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_selectionA | List the currently selected Figma nodes (id, name, type). Use this to obtain a nodeId before authoring motion. |
| probeA | Check that the Motion (Beta) Plugin API is exposed in the connected Figma build. Returns apiVersion, figma.motion keys, and whether motion write methods exist on the first selected node. |
| read_motionA | Read the current motion state of a node: timelines, animated property keys, manual keyframe tracks, and applied animation styles. Run this after applying to confirm results and to discover the real property field names for this build. |
| list_motion_templatesA | List the built-in motion templates and their tunable params. These are code-defined (Figma has no API to publish native styles). |
| apply_motion_templateB | Apply a named motion template to a node. The server resolves template+params into keyframe tracks and applies them, optionally setting the timeline duration. |
| apply_keyframesB | Apply raw keyframe tracks to a node (lower-level than templates). Provide one or more property tracks directly. |
| set_timeline_durationC | Set the duration (seconds) of the node's containing timeline. |
| remove_motionA | Delete motion from a node. Provide |
| list_figma_animation_stylesB | List Figma's native (Beta) animation styles available to apply: styleId, name, props. |
| apply_animation_styleC | Apply a Figma native animation style to a node. Returns the applied instance id. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Each tool has a clearly distinct purpose: applying motion via different methods (style, keyframes, template), reading, removing, setting duration, listing available assets, getting selection, and probing API. No two tools overlap in functionality.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., apply_animation_style, list_motion_templates). Verbs are predictable and clearly indicate the action.
With 10 tools, the set is well-scoped for a motion server. Each tool covers a necessary aspect of the motion workflow without redundancy or excess.
The tools provide comprehensive coverage for applying, reading, removing, and configuring motion, plus listing available styles/templates. A minor gap is the lack of a tool to explicitly update an existing animation, but remove+reapply works around it.