Figma Context
SAFEgrade B · trust 89/100MCP server to provide Figma layout information to AI coding agents like Cursor
aicursorfigmamcptypescriptOverview
From the repository's own README, as read at the audited commit.
<a href="https://www.framelink.ai/?utm_source=github&utm_medium=referral&utm_campaign=readme" target="_blank" rel="noopener"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://www.framelink.ai/github/HeaderDark.png" /> <img alt="Framelink" src="https://www.framelink.ai/github/HeaderLight.png" /> </picture></a><div align="center"> <h1>Framelink MCP for Figma</h1> <h3>Give your coding agent access to your Figma data.<br/>Implement designs in any framework in one-shot.</h3> <a href="https://npmcharts.com/compare/figma-developer-mcp?interval=30"> <img alt="weekly downloads" src="https://img.shields.io/npm/dm/figma-developer-mcp.svg"> </a> <a href="https://github.com/GLips/Figma-Context-MCP/blob/main/LICENSE"> <img alt="MIT License" src="https://img.shields.io/github/license/GLips/Figma-Context-MCP" /> </a> <a href="https://framelink.ai/discord"> <img alt="Discord" src="https://img.shields.io/discord/1352337336913887343?color=7389D8&label&logo=discord&logoColor=ffffff" /> </a> <br /> <a href="https://twitter.com/glipsman"> <img alt="Twitter" src="https://img.shields.io/twitter/url?url=https%3A%2F%2Fx.com%2Fglipsman&label=%40glipsman" /> </a></div><br/>Give [Cursor](https://cursor.sh/) and other AI-powered coding tools access to your Figma files with this [Model Context Protocol](https://modelcontextprotocol.io/introduction) server.When Cursor has access to Figma design data, it's **way** better at one-shotting designs accurately than alternative approaches like pasting screenshots.<h3><a href="https://www.framelink.ai/docs/quickstart?utm_source=github&utm_medium=referral&utm_campaign=readme">See quickstart instructions →</a></h3>## Demo[Watch a demo of building a UI in Cursor with Figma design data](https://youtu.be/6G9yb-LrEqg)[](https://youtu.be/6G9yb-LrEqg)## How it works1. Open your IDE's chat (e.g. agent mode in Cursor).2. Paste a link to a
Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add figma-developer-mcp --env FIGMA_API_KEY=${FIGMA_API_KEY} -- npx -y [email protected] --stdioExposed tools (2) 2 read · 0 write · 0 destructive
| Tool | Risk | Description |
|---|---|---|
fetch | read | Fetch simplified Figma data and print to stdout |
get_figma_data | read | Get comprehensive Figma file data including layout, content, visuals, and component information |
Details
- Source
- glips/figma-context-mcp
- npm
figma-developer-mcp@0.13.2- Transports
- stdio · streamable-http
- Credentials it reads
FIGMA_API_KEYFIGMA_FILE_KEY- License
- MIT
- Stars
- 15,841 · pushed 3d ago
Trust audit
Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (4 observation(s))
- Network
- none-observed
- Shell
- declared (1 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (16)
.release-please-manifest.json
const parsed = yaml.load(content);
const parsed = yaml.load(output);
const fullHash = createHash("sha1").update(key).digest("hex");const fullHash = createHash("sha1").update(str).digest("hex");import { downloadFigmaImages as runDownloadFigmaImages } from "../../services/download-figma-images.js";import type { FigmaService } from "../../services/figma.js";import { type ResolveLocalPathFailureReason, resolveLocalPath } from "../../utils/local-path.js";import { Logger } from "../../utils/logger.js";{ ...validParams, localPath: "../../etc" },StreamableHTTP endpoint available at http://127.0.0.1:3333/mcp
StreamableHTTP endpoint available at http://127.0.0.1:3333/sse (backward compat)
const transport = new StreamableHTTPClientTransport(new URL(`http://127.0.0.1:${port}/mcp`), {const transport = new StreamableHTTPClientTransport(new URL(`http://127.0.0.1:${port}/mcp`));const transport = new StreamableHTTPClientTransport(new URL(`http://127.0.0.1:${port}/sse`));@figma/rest-api-spec, @jimp/core, @jimp/js-gif, @jimp/js-jpeg, @jimp/js-png, @jimp/plugin-crop, cleye, cross-env
Gates applied: no_behavioural_pass.
Audited 2026-09-13 · audit v0.4.0 · source sha 88c7b3849ad9 · full audit: observations/trust-audit/mcp-server/glips__figma-context.json · Report an issue or request a re-scan
Audit history
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-09-13 | 88c7b3849ad9 | SAFE | B | 89 | first audit |
Alternatives
Other servers in the same categories, safer ones first.
Questions
What is the Figma Context MCP server?
MCP server to provide Figma layout information to AI coding agents like Cursor
What tools does Figma Context expose?
2 in total: 2 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is Figma Context safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.
What credentials does Figma Context need?
It reads FIGMA_API_KEY and FIGMA_FILE_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does Figma Context run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as figma-developer-mcp at 0.13.2.
How current is this page?
The grade is for one exact copy of the source (88c7b3849ad9), read on 2026-09-13. The repository is watched and re-audited when it changes.
Provenance: OBSERVED · read 2026-09-13 · job trust-audit-2026-09-13