Penpot logo

Penpot

Organization
montevive

Penpot MCP server

Publishermontevive
Repositorypenpot-mcp
LanguagePython
Forks
28
Stars
229
Available tools
0
Transport typestdio
Categories
LicenseMIT
Links
  • Connect tools to AI workflows

    Penpot exposes MCP capabilities that can be used by compatible AI clients and agents.

  • 0 available tools

    Browse the callable actions below, including names and descriptions when provided by the server.

  • Ready-to-copy setup

    Use the installation snippets to configure this server in your preferred MCP client.

  • Open source signals

    229 stars and 28 forks from the linked repository.

Penpot MCP Server πŸŽ¨πŸ€–


πŸš€ What is Penpot MCP?

Penpot MCP is a revolutionary Model Context Protocol (MCP) server that bridges the gap between AI language models and Penpot, the open-source design and prototyping platform. This integration enables AI assistants like Claude (in both Claude Desktop and Cursor IDE) to understand, analyze, and interact with your design files programmatically.

🎯 Key Benefits

  • πŸ€– AI-Native Design Analysis: Let Claude AI analyze your UI/UX designs, provide feedback, and suggest improvements
  • ⚑ Automated Design Workflows: Streamline repetitive design tasks with AI-powered automation
  • πŸ” Intelligent Design Search: Find design components and patterns across your projects using natural language
  • πŸ“Š Design System Management: Automatically document and maintain design systems with AI assistance
  • 🎨 Cross-Platform Integration: Works with any MCP-compatible AI assistant (Claude Desktop, Cursor IDE, etc.)

πŸŽ₯ Demo Video

Check out our demo video to see Penpot MCP in action:

Penpot MCP Demo

✨ Features

πŸ”Œ Core Capabilities

  • MCP Protocol Implementation: Full compliance with Model Context Protocol standards
  • Real-time Design Access: Direct integration with Penpot's API for live design data
  • Component Analysis: AI-powered analysis of design components and layouts
  • Export Automation: Programmatic export of design assets in multiple formats
  • Design Validation: Automated design system compliance checking

πŸ› οΈ Developer Tools

  • Command-line Utilities: Powerful CLI tools for design file analysis and validation
  • Python SDK: Comprehensive Python library for custom integrations
  • REST API: HTTP endpoints for web application integration
  • Extensible Architecture: Plugin system for custom AI workflows

🎨 AI Integration Features

  • Claude Desktop & Cursor Integration: Native support for Claude AI assistant in both Claude Desktop and Cursor IDE
  • Design Context Sharing: Provide design context to AI models for better responses
  • Visual Component Recognition: AI can "see" and understand design components
  • Natural Language Queries: Ask questions about your designs in plain English
  • IDE Integration: Seamless integration with modern development environments

πŸ’‘ Use Cases

For Designers

  • Design Review Automation: Get instant AI feedback on accessibility, usability, and design principles
  • Component Documentation: Automatically generate documentation for design systems
  • Design Consistency Checks: Ensure brand guidelines compliance across projects
  • Asset Organization: AI-powered tagging and categorization of design components

For Developers

  • Design-to-Code Workflows: Bridge the gap between design and development with AI assistance
  • API Integration: Programmatic access to design data for custom tools and workflows
  • Automated Testing: Generate visual regression tests from design specifications
  • Design System Sync: Keep design tokens and code components in sync

For Product Teams

  • Design Analytics: Track design system adoption and component usage
  • Collaboration Enhancement: AI-powered design reviews and feedback collection
  • Workflow Optimization: Automate repetitive design operations and approvals
  • Cross-tool Integration: Connect Penpot with other tools in your design workflow

πŸš€ Quick Start

Prerequisites

  • Python 3.12+ (Latest Python recommended for optimal performance)
  • Penpot Account (Sign up free)
  • Claude Desktop or Cursor IDE (Optional, for AI integration)

Installation

Prerequisites

  • Python 3.12+
  • Penpot account credentials

Installation

Option 1: Install from PyPI

bash
pip install penpot-mcp

Option 2: Using uv (recommended for modern Python development)

bash
# Install directly with uvx (when published to PyPI)
uvx penpot-mcp

# For local development, use uvx with local path
uvx --from . penpot-mcp

# Or install in a project with uv
uv add penpot-mcp

Option 3: Install from source

bash
# Clone the repository
git clone https://github.com/montevive/penpot-mcp.git
cd penpot-mcp

# Using uv (recommended)
uv sync
uv run penpot-mcp

# Or using traditional pip
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
pip install -e .

Configuration

Create a .env file based on env.example with your Penpot credentials:

PENPOT_API_URL=https://design.penpot.app/api
PENPOT_USERNAME=your_penpot_username
PENPOT_PASSWORD=your_penpot_password
PORT=5000
DEBUG=true

⚠️ CloudFlare Protection Notice: The Penpot cloud site (penpot.app) uses CloudFlare protection that may occasionally block API requests. If you encounter authentication errors or blocked requests:

  1. Open your web browser and navigate to https://design.penpot.app
  2. Log in to your Penpot account
  3. Complete any CloudFlare human verification challenges if prompted
  4. Once verified, the API requests should work normally for a period of time

Usage

Running the MCP Server

bash
# Using uvx (when published to PyPI)
uvx penpot-mcp

# Using uvx for local development
uvx --from . penpot-mcp

# Using uv in a project (recommended for local development)
uv run penpot-mcp

# Using the entry point (if installed)
penpot-mcp

# Or using the module directly
python -m penpot_mcp.server.mcp_server

Debugging the MCP Server

To debug the MCP server, you can:

  1. Enable debug mode in your .env file by setting DEBUG=true
  2. Use the Penpot API CLI for testing API operations:
bash
# Test API connection with debug output
python -m penpot_mcp.api.penpot_api --debug list-projects

# Get details for a specific project
python -m penpot_mcp.api.penpot_api --debug get-project --id YOUR_PROJECT_ID

# List files in a project
python -m penpot_mcp.api.penpot_api --debug list-files --project-id YOUR_PROJECT_ID

# Get file details
python -m penpot_mcp.api.penpot_api --debug get-file --file-id YOUR_FILE_ID

Command-line Tools

The package includes utility command-line tools:

bash
# Generate a tree visualization of a Penpot file
penpot-tree path/to/penpot_file.json

# Validate a Penpot file against the schema
penpot-validate path/to/penpot_file.json

MCP Monitoring & Testing

MCP CLI Monitor

bash
# Start your MCP server in one terminal
python -m penpot_mcp.server.mcp_server

# In another terminal, use mcp-cli to monitor and interact with your server
python -m mcp.cli monitor python -m penpot_mcp.server.mcp_server

# Or connect to an already running server on a specific port
python -m mcp.cli monitor --port 5000

MCP Inspector

bash
# Start your MCP server in one terminal
python -m penpot_mcp.server.mcp_server

# In another terminal, run the MCP Inspector (requires Node.js)
npx @modelcontextprotocol/inspector

Using the Client

bash
# Run the example client
penpot-client

MCP Resources & Tools

Resources

  • server://info - Server status and information
  • penpot://schema - Penpot API schema as JSON
  • penpot://tree-schema - Penpot object tree schema as JSON
  • rendered-component://{component_id} - Rendered component images
  • penpot://cached-files - List of cached Penpot files

Tools

  • list_projects - List all Penpot projects
  • get_project_files - Get files for a specific project
  • get_file - Retrieve a Penpot file by its ID and cache it
  • export_object - Export a Penpot object as an image
  • get_object_tree - Get the object tree structure for a Penpot object
  • search_object - Search for objects within a Penpot file by name

AI Integration

The Penpot MCP server can be integrated with AI assistants using the Model Context Protocol. It supports both Claude Desktop and Cursor IDE for seamless design workflow automation.

Claude Desktop Integration

For detailed Claude Desktop setup instructions, see CLAUDE_INTEGRATION.md.

Add the following configuration to your Claude Desktop config file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS or %APPDATA%\Claude\claude_desktop_config.json on Windows):

json
{
  "mcpServers": {
    "penpot": {
      "command": "uvx",
      "args": ["penpot-mcp"],
      "env": {
        "PENPOT_API_URL": "https://design.penpot.app/api",
        "PENPOT_USERNAME": "your_penpot_username",
        "PENPOT_PASSWORD": "your_penpot_password"
      }
    }
  }
}

Cursor IDE Integration

Cursor IDE supports MCP servers through its AI integration features. To configure Penpot MCP with Cursor:

  1. Install the MCP server (if not already installed):

    bash
    pip install penpot-mcp
  2. Configure Cursor settings by adding the MCP server to your Cursor configuration. Open Cursor settings and add:

    json
    {
      "mcpServers": {
        "penpot": {
          "command": "uvx",
          "args": ["penpot-mcp"],
          "env": {
            "PENPOT_API_URL": "https://design.penpot.app/api",
            "PENPOT_USERNAME": "your_penpot_username",
            "PENPOT_PASSWORD": "your_penpot_password"
          }
        }
      }
    }
  3. Alternative: Use environment variables by creating a .env file in your project root:

    bash
    PENPOT_API_URL=https://design.penpot.app/api
    PENPOT_USERNAME=your_penpot_username
    PENPOT_PASSWORD=your_penpot_password
  4. Start the MCP server in your project:

    bash
    # In your project directory
    penpot-mcp
  5. Use in Cursor: Once configured, you can interact with your Penpot designs directly in Cursor by asking questions like:

    • "Show me all projects in my Penpot account"
    • "Analyze the design components in project X"
    • "Export the main button component as an image"
    • "What design patterns are used in this file?"

Key Integration Features

Both Claude Desktop and Cursor integration provide:

  • Direct access to Penpot projects and files
  • Visual component analysis with AI-powered insights
  • Design export capabilities for assets and components
  • Natural language queries about your design files
  • Real-time design feedback and suggestions
  • Design system documentation generation

Package Structure

penpot_mcp/
β”œβ”€β”€ api/              # Penpot API client
β”œβ”€β”€ server/           # MCP server implementation
β”‚   β”œβ”€β”€ mcp_server.py # Main MCP server
β”‚   └── client.py     # Client implementation
β”œβ”€β”€ tools/            # Utility tools
β”‚   β”œβ”€β”€ cli/          # Command-line interfaces
β”‚   └── penpot_tree.py # Penpot object tree visualization
β”œβ”€β”€ resources/        # Resource files and schemas
└── utils/            # Helper utilities

Development

Testing

The project uses pytest for testing:

bash
# Using uv (recommended)
uv sync --extra dev
uv run pytest

# Run with coverage
uv run pytest --cov=penpot_mcp tests/

# Using traditional pip
pip install -e ".[dev]"
pytest
pytest --cov=penpot_mcp tests/

Linting

bash
# Using uv (recommended)
uv sync --extra dev

# Set up pre-commit hooks
uv run pre-commit install

# Run linting
uv run python lint.py

# Auto-fix linting issues
uv run python lint.py --autofix

# Using traditional pip
pip install -r requirements-dev.txt
pre-commit install
./lint.py
./lint.py --autofix

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Please make sure your code follows the project's coding standards and includes appropriate tests.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Installation

TypingMind
Prerequisites:

Node.js 18+

{
  "mcpServers": {
    "penpot": {
      "command": "uvx",
      "args": [
        "penpot-mcp"
      ],
      "env": {
        "PENPOT_API_URL": "https://design.penpot.app/api",
        "PENPOT_USERNAME": "your_penpot_username",
        "PENPOT_PASSWORD": "your_penpot_password"
      }
    }
  }
}

Use Penpot MCP with multiple AI models

TypingMind connects MCP tools at the workspace level, so once Penpot is connected, you can use it with different AI models in TypingMind instead of setting it up separately for each model. This MCP runs locally through the TypingMind MCP connector on your device.

Setup guide to use the local connector

Use this when the MCP server needs access to local files, apps, or private resources on your computer.

1

Open the MCP settings

In TypingMind, go to Settings, Advanced Settings, then Model Context Protocol and choose Setup Connector.

  1. Open TypingMind in your browser.
  2. Click the Settings icon.
  3. Go to Advanced Settings.
  4. Open the Model Context Protocol section.
  5. Click Setup Connector and choose This Device.
TypingMind MCP connector setup screen with This Device selected
2

Run the connector command

Choose This Device, copy the command from TypingMind, and run it in Terminal. Keep the process running while you use MCP.

  1. Copy the setup command shown by TypingMind.
  2. Open Terminal on macOS or Windows Terminal on Windows.
  3. Paste and run the command.
  4. Approve the package install if Terminal asks you to proceed.
  5. Keep the Terminal window running while using MCP tools.
3

Add Penpot as a server

When the connector status is Ready, click Edit Servers and paste the MCP server configuration.

  1. Wait until the connector status shows Ready.
  2. Click Edit Servers.
  3. Paste the Penpot MCP server configuration.
  4. Save the server list.
  5. Refresh if you want to confirm the connector is still ready.
TypingMind MCP settings showing active server and Edit Servers button
{
  "mcpServers": {
    "penpot": {
      "command": "npx",
      "args": [
        "-y",
        "penpot-mcp"
      ]
    }
  }
}
4

Use it across models

Save the server list, open Plugins, enable the Penpot MCP tools, then select any supported AI model in TypingMind and use the tools in chat or assign them to an AI agent.

  1. Open the Plugins page in TypingMind.
  2. Enable the Penpot MCP tools.
  3. Start a chat and choose the AI model you want to use.
  4. Use the MCP tools in chat or assign them to an AI agent.
  5. Switch to another AI model whenever needed without reconnecting MCP.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use Penpot to help me with this task?
Penpot
Sure. I read it.
Here is what I found using Penpot.

Frequently asked questions

What is the Penpot MCP server used for?

Penpot is an MCP server that lets compatible AI clients connect to external tools and context. In TypingMind, you can add this MCP server once and make its tools available in your AI workspace.

Can I use Penpot MCP with multiple AI models in TypingMind?

Yes. TypingMind connects MCP tools at the workspace level, so you can use Penpot with different AI models such as Claude, ChatGPT, Gemini, or other models you have configured in TypingMind without setting up the MCP server separately for each model.

Why use Penpot MCP with TypingMind?

TypingMind is one of the best frontends for LLM chat because it brings multiple AI models, prompts, plugins, AI agents, API keys, and MCP tools into one workspace. With Penpot connected, you can use its MCP tools across your preferred models while keeping your chat workflow organized in TypingMind.

How do I connect Penpot MCP to TypingMind?

Penpot runs through the TypingMind local MCP connector. This is best when the MCP server needs access to local files, desktop apps, command-line tools, or private resources on your computer.

What tools does Penpot MCP provide in TypingMind?

Penpot exposes MCP capabilities that can be enabled from the TypingMind Plugins page and used in chat or assigned to AI agents.

Do I need to share my API keys with TypingMind to use Penpot MCP?

No. TypingMind is local-first and lets you keep your model providers, API keys, prompts, and MCP configuration under your control. If Penpot requires authentication, add the required headers, OAuth settings, or local configuration for that MCP server when you create the connection.

Related MCP Servers

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter πŸ‘‡