WorkBuddy Figma
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| figma_statusA | 查看当前连接的 Figma 文档、插件版本与桥接状态。第一次使用、或操作失败后先调这个。 |
| figma_setupA | 生成本机已配对的 Figma 伴生插件,返回需要导入的 manifest.json 路径。首次使用或重装时调用。 |
| figma_select_documentA | 同时连接了多个 Figma 文件时,指定要操作哪一个。connectionId 从 figma_status 获取。 |
| create_sessionA | Create a local task recording UUID for the selected Figma file. Reuse it across calls, including explicitly selected other files. This does not create a cloud session or switch documents. |
| use_figmaA | Run JavaScript using the figma-use 16 contract in the selected local Figma document. Read figma-workbench first. Top-level await/return, query/QueryResult, matches/set/tree, auto layout, screenshots and io.write are supported. Include description, fileKey and sessionId from create_session. Page context starts at the first page every call; switch at most once. Return affected IDs. Errors include safeToRetryWithoutCanvasRead. Requires companion featureVersion 3. |
| get_selectionC | Read the current page and selected nodes. Prefer summary for discovery. |
| list_fontsA | Find available font families and exact styles. No arguments returns the legacy array; filters or pagination return fonts and pagination. |
| get_metadataA | Read a bounded layer tree; prefer summary for discovery. Without nodeId, returns pages and current page. Offset/limit page direct children and require nodeId with depth >= 1. Follow truncation continuations. Only reads without profile, budget or paging options reconcile an uncertain write. |
| get_screenshotA | Return an actual PNG screenshot as a DSH image attachment. Requires an exportable node. |
| get_design_contextA | Read a target subtree and CSS for design-to-code work. For a few native properties prefer bounded get_metadata or one scoped script; do not read an entire subtree for a few descendant values. Set includeScreenshot:false unless an image is needed; screenshots are included by default. No cloud code generation. |
| get_figjamB | Read FigJam structure. Set includeScreenshot:false for structural checks; screenshots are included by default. |
| get_variable_defsA | Read local variables or collection inventory. collectionsOnly:true lists collections including empty ones without reading variables; query then matches collection names. Otherwise collections describe the returned variable page or requested IDs, not a complete collection inventory. Follow coverage and pagination before concluding absence. Summary omits values; no arguments preserves the full result. |
| get_librariesB | Read available team variable libraries through the public Plugin API. |
| search_design_systemB | Search local components, variables and styles. queries batches {entity,query} searches and returns results in order. Legacy query/kind also supported. Components use current page unless pageId supplied. Pagination is per kind; no cloud component-library or Code Connect search. |
| get_component_contextC | Read component, component set or instance properties and descendants. |
| get_local_component_linksA | Read local DSH component-to-code links. These are plugin data, not published Code Connect mappings. |
| set_local_component_linksB | Save local component-to-code links in Figma plugin data. Does not publish Code Connect. |
| get_motion_contextC | Read prototype reactions and public motion data when exposed. Cloud timeline/code conversion is not emulated. |
| upload_assetsB | Import workspace raster/SVG files as editable SVG layers or image fills. Files must be inside the current Work workspace. |
| download_assetsC | Export nodes to workspace files as PNG/JPG/SVG/PDF, optionally with original image bytes. Outputs are saved under .figma/assets. |
| import_sceneA | Import a local JSON scene as native editable Figma nodes. Prefer use_figma for complex components, variables, graphs or Slides. See the scene reference. |
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 21 tools
The read surface has several overlapping tools — get_selection, get_metadata, get_design_context, get_screenshot, and get_figjam all inspect document state, and the distinctions rely on dense guidance like 'prefer summary for discovery' or 'bounded tree.' The descriptions do steer an agent, but misselection between get_metadata and get_design_context is plausible. The write/session/assets tools are clearly distinct.
Nearly everything follows snake_case verb_noun (get_selection, list_fonts, download_assets, set_local_component_links), and the local/set_local pair signals read/write predictably. Minor deviations: a figma_ prefix on three tools and noun-first forms like get_figjam and get_screenshot.
At 21 tools the surface is heavy for what is largely one domain (inspect + mutate a Figma doc), and several read tools could plausibly be collapsed. Each tool does have a defensible niche, so it's borderline rather than bloated.
Coverage spans document selection/session setup, deep reads (metadata, design context, components, variables, libraries, motion, FigJam), asset import/export, and arbitrary mutation via use_figma scripting, so no dead ends for typical workflows. Minor gaps: no first-class node create/delete/styling tools independent of scripting, and no published Code Connect operations.