Penpot

Provides programmatic access to Penpot for AI agents, enabling reading, creating, and exporting design elements via MCP.
  • typescript

2

GitHub Stars

typescript

Language

4 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs

You use this MCP server to give AI agents direct, programmatic access to your self-hosted Penpot instance. It enables reading, creating, modifying, and exporting design elements through MCP with a secure, centralized bridge between your AI tools and Penpot.

How to use

You connect your MCP client to the server over network transport. The server runs as a Docker container and exposes an MCP endpoint at a public or private URL. Once connected, you can ask your AI agent to list projects, create UI components, export frames as SVG or PNG, read color tokens, and apply changes to shapes or text. The server ensures changes originate from the Penpot RPC API so actions are tracked and reversible when supported.

How to install

Prerequisites you need before installation include Docker and Docker Compose, plus a self-hosted Penpot setup already running on your host or in the same network.

Additional setup and configuration

Enable access tokens in Penpot to allow API access tokens for secure authentication. Set environment variables for the MCP server and Penpot connectivity, and add the MCP service to your Penpot stack so both run together on the same network.

Configuration Reference

All configuration is provided via environment variables. The key options you will use include the Penpot base URL, a public URL for browser access, and database connection details. The MCP host and port define where the MCP service listens.

Enable Access Tokens

To enable API access tokens in Penpot, update the Penpot environment so the feature flag is active, then restart Penpot. After that, you can generate a token from Penpot’s Access Tokens interface and place it in the MCP server’s environment.

Penpot Docker Integration

The MCP server runs as a Docker container alongside Penpot. Add the MCP service to your existing docker-compose setup so it shares the same Docker network and can reach Penpot services. The MCP container exposes port 8787 on the host for HTTP MCP connections.

Development

For local development, you can run the MCP server outside of Docker if you prefer. Ensure you point PENPOT_DB_HOST and PENPOT_DB_PORT to your local database, and set PENPOT_BASE_URL to your local Penpot instance. Run the development server with the provided tooling and verify connectivity by performing a basic MCP initialization against the exposed endpoint.

Available tools

list_projects

List Penpot projects accessible to the connected account.

list_teams

List teams within Penpot and associated projects.

list_files

List files within a project or folder.

search_files

Search files by name or metadata.

create_file

Create a new file in Penpot from a given payload.

get_file_pages

Retrieve pages from a Penpot file for rendering or export.

rename_file

Rename an existing Penpot file.

duplicate_file

Duplicate an existing Penpot file.

get_shape_tree

Read the hierarchical shape tree of a design.

get_shape_details

Get detailed information about a specific shape.

get_shape_css

Generate CSS rules for a selected shape.

search_shapes

Search shapes by type, properties, or attributes.

get_design_tokens

Fetch design tokens from the design system.

get_colors_library

Retrieve color tokens and palettes.

get_typography_library

Retrieve typography tokens and font styles.

create_frame

Create a new frame in a Penpot project.

create_rectangle

Create a rectangle shape in the current canvas.

create_text

Create a text block in the design.

create_path

Create a custom path/shapes path.

set_fill

Update the fill color of a shape.

set_stroke

Update the stroke color or width of a shape.

set_layout

Adjust layout properties of a shape or group.

move_shape

Move a shape to a new position.

resize_shape

Resize a shape to new dimensions.

set_text_content

Edit the textual content of a text shape.

set_font

Change the font family of text.

set_font_size

Change the font size of text.

set_text_align

Set text alignment for a text shape.

export_frame_png

Export a frame as a PNG image.

export_frame_svg

Export a frame as an SVG image.

upload_media

Upload a media asset to Penpot.

list_media_assets

List media assets available in the project.

list_fonts

List available fonts in Penpot.

get_file_raw_data

Fetch raw underlying data for a file.

compare_revisions

Compare revisions of a file to identify changes.

create_snapshot

Create a design snapshot for versioning.

get_snapshots

List available design snapshots.

get_profile

Retrieve user or account profile information.

get_webhooks

List configured webhooks for events.

get_file_pages

Retrieve pages from a Penpot file.

create_comment

Create a comment on a design element.

reply_to_comment

Reply to an existing comment.

resolve_comment

Resolve or close a comment thread.

search_files

Search files within the Penpot workspace.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational
Penpot MCP Server - ancrz/penpot-mcp-server | VeilStrat