About designport
designport is an MCP server and CLI client for the Figma REST API, for workflows that need to read design files and manage comments. It covers a defined subset of file, node, image, style, component, project, and comment operations.
Key features
- 01Fetch files and specific nodes
- 02Render nodes as images
- 03List image fills, styles, and components
- 04Browse team projects and project files
- 05Read and post file comments
Use cases
- 01Inspecting a Figma file or selected nodes
- 02Retrieving node images and file styles
- 03Browsing files within a team project
- 04Reading or posting comments on a file
MCP support
The MCP server exposes tools that call the Figma REST API for file and node data, images, styles, components, projects, and comments. It uses a Figma personal access token.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
10Saved tool list · updated 1w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| depth | number | No | Optional depth of the document tree to return, as a number of levels. |
| version | string | No | Optional specific version of the file to retrieve, identified by its version ID. |
| file_key | string | Yes | Figma file key identifying the file to retrieve. |
Details
From the project READMEdesignport
designport is a compatible client for the Figma REST API, packaged
as an MCP server and a small CLI. It is an independent client for
the same public upstream API (https://api.figma.com/v1) — it is
not a copy of Figma's hosted OAuth remote MCP server, and none of
that server's OAuth tool surface (design context, screenshots,
metadata, variable definitions, code-connect, FigJam, or
design-system rules) is reproduced here.
The subset covers reading design files: fetch a file or specific nodes, render nodes to images, list image fills, styles, and components, browse team projects and project files, and read or post comments on a file.
Authentication is a Figma personal access token, sent as the
X-Figma-Token header. Set FIGMA_PERSONAL_ACCESS_TOKEN before
starting the server; a call made without it fails with an error
naming the variable. The API base can be overridden with
FIGMA_API_BASE.
Install
npx @reneturcios/designport get_file <file_key>
docker run -i ghcr.io/cloudcorprecords/designport
CLI
designport get_file <file_key> --depth 2
designport get_file_nodes <file_key> 1:2,3:4
designport get_images <file_key> 1:2 --format png --scale 2
designport get_file_styles <file_key>
designport get_team_projects <team_id>
designport list_project_files <project_id>
designport post_comment <file_key> "Looks good"
designport --version
Exit codes: 0 success, 1 API error, 2 usage error.
MCP server
npx -y @reneturcios/designport mcp
{
"mcpServers": {
"designport": {
"command": "npx",
"args": ["-y", "@reneturcios/designport", "mcp"],
"env": { "FIGMA_PERSONAL_ACCESS_TOKEN": "your-token" }
}
}
}
Tools
| Tool | Input | Figma endpoint |
|---|---|---|
get_file | file_key, version?, depth? | GET /files/{key} |
get_file_nodes | file_key, node_ids, depth?, version? | GET /files/{key}/nodes |
get_images | file_key, node_ids, format?, scale? | GET /images/{key} |
get_image_fills | file_key | GET /files/{key}/images |
get_file_styles | file_key | GET /files/{key}/styles |
get_file_components | file_key | GET /files/{key}/components |
get_team_projects | team_id | GET /teams/{id}/projects |
list_project_files | project_id | GET /projects/{id}/files |
get_comments | file_key | GET /files/{key}/comments |
post_comment | file_key, message, client_meta? | POST /files/{key}/comments |
node_ids is a comma-separated string of node IDs, sent as the
API's ids parameter. post_comment's optional client_meta is
a string containing a JSON-encoded object — for example
'{"x":10,"y":20}' — which is parsed and sent as the API's
client_meta object; keeping it a string keeps the tool schema
simple.
Out of scope for this subset: the variables API, dev resources, library assets and search, webhooks, activity logs, and payments.
Development
npm install
npm run build
npm test
Tests run entirely on fake-fetch fixtures; no network and no real token are used.
License
MIT — see LICENSE.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.