Summary
Let your AI read your Figma designs: browse team folders and files, inspect pages, frames and layers, export images, look up components and styles, follow version history, read and post comments, and manage Dev Mode links. With a personal access token.
Guided setup
Connect Figma to Microsoft Copilot in 2 minutes
Start a free trial on AnythingMCP Cloud, connect Figma in the guided setup, then add your MCP URL to Microsoft Copilot. No code and no server to run.
No credit card · 7-day trial · Self-host alternative available
Try asking
Example prompts for Figma
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Figma, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
Figma + Microsoft Copilot
Let your AI read your Figma designs: browse team folders and files, inspect pages, frames and layers, export images, look up components and styles, follow version history, read and post comments, and manage Dev Mode links. With a personal access token.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
FIGMA_ACCESS_TOKEN
Step 1 — Get credentials
- In Figma, open the account menu (top left in the file browser) → Settings → Security → Personal access tokens → Generate new token.
- Name the token (for example "AnythingMCP") and choose an expiry: at most 90 days, as Figma no longer issues tokens that never expire. Set these scopes:
current_user:read,file_content:read,file_metadata:read,file_versions:readfile_comments:read,file_comments:writelibrary_content:read,library_assets:read,team_library_content:readfolders:readfile_dev_resources:read,file_dev_resources:write
- Click Generate token and copy it right away: Figma shows it only once. It usually starts with
figd_. - Paste the token into
FIGMA_ACCESS_TOKEN, without the word Bearer, then install the connector. - Start with
figma_get_me: it shows which Figma user the token belongs to. Then give the AI a file link: the file key is the part after/design/in the URL.
Token expiry: tokens last at most 90 days. When yours expires, generate a new one with the same scopes and paste it into FIGMA_ACCESS_TOKEN again. The connector sees exactly the files and teams the token's user can open. Tokens made before Figma renamed projects to folders may only carry projects:read, while the folder tools need folders:read: if they answer 403 naming a scope, generate a new token.
Finding teams and folders: Figma cannot list your teams through its API. Give the AI the link of a team page from the file browser (the team id is the number after /team/); figma_list_team_folders, figma_list_subfolders and figma_list_folder_files then lead to the files.
Permissions and read-only setup: leave out file_comments:write and file_dev_resources:write, and switch off figma_post_comment, figma_delete_comment, figma_add_comment_reaction, figma_create_dev_resource and figma_update_dev_resource. Comments the AI posts appear under the token user's name, and everyone with access to the file can see them.
Switched off at install: figma_delete_dev_resource, which removes a Dev Mode link from a node for everyone. Turn it on only if the AI should delete dev resources.
Rate limits and the Starter plan: Figma limits requests per user and by the plan the file is on. Reading file content, nodes and image renders (figma_get_file, figma_get_file_nodes, figma_render_images) has the tightest limit: 10 to 20 a minute on a paid plan with a Full or Dev seat, but only a handful a month for files on the free Starter plan or with a View or Collab seat. Metadata, comments, versions, components and styles allow far more. Ask the AI to look at single frames rather than whole files; very large answers are cut at 200 KB. Rendered image links stay valid for 30 days.
Dev Mode: dev resources (links to tickets, docs or code attached to a node) need a paid plan and a Full or Dev seat. Without Dev Mode access, Figma answers "File not found" to the dev resource tools, even for a file the other tools read fine. A node holds at most 10 dev resources, each URL once.
Common errors: 401 "Invalid token" means the token is wrong, expired or revoked: generate a new one. 403 means the token lacks a scope (the message names it) or the user has no access to that team or folder. 404 means there is no such file or node, or the user cannot open the file: copy the key from the file's URL. 400 names an invalid parameter, for example a node id with a hyphen instead of a colon (a link's node-id=12-345 is 12:345). 429 is a rate limit: wait and try again. The library tools refuse a branch key: use the main file's key.
The connector does not edit designs, and it does not handle variables, webhooks, FigJam and Slides content beyond the file tree, or library analytics.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Microsoft Copilot
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Microsoft Copilot uses MCP servers through agents built in Copilot Studio: you add AnythingMCP to an agent as a tool, then publish the agent to Microsoft 365 Copilot and Teams. Copilot Studio connects from Microsoft's cloud over Streamable HTTP, which AnythingMCP supports.
- In Copilot Studio, open your agent (or create one), go to Tools and choose Add a tool → New tool → Model Context Protocol.
- Enter a Server name (for example
AnythingMCP), a Server description that says what the connector does, and the Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. Copilot Studio uses the description to decide when to call the server. - Under authentication, choose API key, set Type to Header and the header name to
X-API-Key, then select Create. - In Add tool, choose Create a new connection, paste an MCP API key from AnythingMCP (MCP Servers → your server → API keys) and select Add to agent.
- Try it in the agent's Test pane: ask for something that needs the
Figmatools. - Select Publish, then Channels → Microsoft 365 and Microsoft Teams, keep Make agent available in Microsoft Copilot selected and choose Add channel. See agent in Teams installs it for you; in Microsoft 365 Copilot, type @ and pick the agent.
Prefer per-user sign-in? Choose OAuth 2.0 → Dynamic discovery instead of an API key: each user then signs in to AnythingMCP the first time the agent calls it.
Self-hosting? Use your instance's public HTTPS address instead of https://cloud.anythingmcp.com. Copilot Studio connects from Microsoft's cloud, so localhost does not work.
Available tools
| Tool | What it does |
|---|---|
figma_get_me | Get the Figma user the token belongs to: id, handle, email and avatar URL |
figma_get_file_meta | Get a file's metadata without its content: name, folder name, editor type (figma, figjam, slides ...), creator, last_touched_at and by… |
figma_get_file | Read a file's document tree: pages, frames and layers with their ids, names, types, sizes, fills, text and layout, plus the components and… |
figma_get_file_nodes | Read specific nodes (frames, components, layers) of a file with everything below them: type, name, absolute bounding box, fills, strokes… |
figma_render_images | Render nodes of a file as PNG, JPG, SVG or PDF and get a download URL per node id (null when a node could not be rendered) |
figma_get_image_fills | Get download URLs for every image used as a fill in a file, keyed by imageRef (the imageRef in a node's fills) |
figma_list_versions | List a file's version history, newest first: id, label and description of named versions, created_at, the user and thumbnail |
figma_list_comments | List all comments on a file: id, message, user, created_at, resolved_at, parent_id (for replies), client_meta (where it is pinned: node_id… |
figma_post_comment | Post a comment on a file as the token's user, optionally pinned to a node or a point, or as a reply to a top-level comment (comment_id) |
figma_delete_comment | Delete a comment |
figma_list_comment_reactions | List the emoji reactions on a comment: emoji, user and created_at |
figma_add_comment_reaction | React to a comment with an emoji shortcode, as the token's user; it shows next to the comment |
figma_list_team_folders | List the top-level folders (formerly called projects) of a team that the token's user can see: id, name, parent_folder_id (null at the… |
figma_list_subfolders | List the folders directly inside a folder (folders can be nested): id, name, parent_folder_id and created_at, plus the parent folder's name |
figma_list_folder_files | List the files directly in a folder (not in its subfolders): key, name, thumbnail_url and last_modified, plus the folder's name |
figma_list_team_components | List the published components of a team library: key, name, description, the file and node they live in, thumbnail and who last updated them |
figma_list_team_component_sets | List the published component sets (components with variants) of a team library: key, name, description, the file and node they live in… |
figma_list_team_styles | List the published styles (colors, text, effects, grids) of a team library: key, name, description, the file and node they live in… |
figma_list_file_components | List the published components of a library file: key, name, description, node_id and thumbnail |
figma_list_file_component_sets | List the published component sets of a library file: key, name, description, node_id and thumbnail |
figma_list_file_styles | List the published styles of a library file: key, name, description, node_id and thumbnail |
figma_get_component | Get one published component by its key: name, description, the file and node it lives in, its containing frame and component set, thumbnail… |
figma_get_component_set | Get one published component set (a component with variants) by its key: name, description, file, node and thumbnail |
figma_get_style | Get one published style by its key: name, description, style_type (FILL, TEXT, EFFECT, GRID), the file and node it lives in and thumbnail |
figma_list_dev_resources | List the dev resources of a file: links that developers attached to nodes in Dev Mode (tickets, docs, code), each with id, name, url and… |
figma_create_dev_resource | Attach a link (a ticket, a doc, a code file) to a node as a dev resource, visible to everyone in Dev Mode |
figma_update_dev_resource | Change the name or URL of a dev resource |
figma_delete_dev_resource | Remove a dev resource link from a node, for everyone |
Example prompts
- "Show me the pages and main frames of the Checkout redesign file, and who edited it last."
- "Which comments on the Checkout redesign file are still unresolved, and who wrote them?"
- "Export the Pricing page frame of the Acme website file as a PNG and give me the link."
- "Reply to Lena's comment on the Checkout redesign file and tell her the button color has been updated."
FAQ
Which Copilot is this for? Microsoft 365 Copilot at work, through agents built in Copilot Studio. The Microsoft Copilot app for personal accounts has no option to add your own MCP server.
What do I need? A work account with access to Copilot Studio (a license or a trial) to build the agent. People who use it in Microsoft 365 Copilot or Teams need access to the agent: share it with them, or ask an admin to publish it to the organization. If your organization applies data policies to Power Platform connectors, they cover MCP servers too.
The agent doesn't call the tools. Check that the header name is exactly X-API-Key and that the key belongs to the same MCP server as the URL, and make the server description specific: Copilot Studio uses it to decide when to call the server. Publish the agent again after each change; in an open chat, type "start over" to get the new version.
Next steps
- Connector landing page
- Connect to Claude
- Connect to ChatGPT
- Connect to Cursor
- Connect to Gemini
- Connect to Meta Muse
Was this guide helpful?