Professional UI/UX design creation in Penpot with MCP tools, design systems, and accessibility standards.
Works with
Four MCP tools enable design creation, modification, export, and API access within Penpot's plugin context
Includes discovery workflow to identify existing design systems, components, and tokens before building new designs
Covers responsive layouts for mobile (375×812), desktop (1440×900), and platform-specific guidelines (iOS, Android, Material Design)
Provides default design
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionpenpot-uiux-designExecute the skills CLI command in your project's root directory to begin installation:
Fetches penpot-uiux-design from github/awesome-copilot and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate penpot-uiux-design. Access via /penpot-uiux-design in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Automate repetitive workflows and reduce manual effort
Example
Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Learn new skills, understand complex topics, get expert guidance
Example
Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Enhance output quality through reviews, suggestions, and refinements
Example
Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
3
total installs
3
this week
28.7K
GitHub stars
0
upvotes
Run in your terminal
3
installs
3
this week
28.7K
stars
Create professional, user-centered designs in Penpot using the penpot/penpot-mcp MCP server and proven UI/UX principles.
| Tool | Purpose |
|---|---|
mcp__penpot__execute_code |
Run JavaScript in Penpot plugin context to create/modify designs |
mcp__penpot__export_shape |
Export shapes as PNG/SVG for visual inspection |
mcp__penpot__import_image |
Import images (icons, photos, logos) into designs |
mcp__penpot__penpot_api_info |
Retrieve Penpot API documentation |
The Penpot MCP tools require the penpot/penpot-mcp server running locally. For detailed installation and troubleshooting, see setup-troubleshooting.md.
Always check if the MCP server is already available before attempting setup:
Try calling a tool first: Attempt mcp__penpot__penpot_api_info - if it succeeds, the server is running and connected. No setup needed.
If the tool fails, ask the user:
"The Penpot MCP server doesn't appear to be connected. Is the server already installed and running? If so, I can help troubleshoot. If not, I can guide you through the setup."
Only proceed with setup instructions if the user confirms the server is not installed.
# Clone and install
git clone https://github.com/penpot/penpot-mcp.git
cd penpot-mcp
npm install
# Build and start servers
npm run bootstrap
Then in Penpot:
http://localhost:4400/manifest.jsonAdd to settings.json:
{
"mcp": {
"servers": {
"penpot": {
"url": "http://localhost:4401/sse"
}
}
}
}
| Issue | Solution |
|---|---|
| Plugin won't connect | Check servers are running (npm run start:all in penpot-mcp dir) |
| Browser blocks localhost | Allow local network access prompt, or disable Brave Shield, or try Firefox |
| Tools not appearing in client | Restart VS Code/Claude completely after config changes |
| Tool execution fails/times out | Ensure Penpot plugin UI is open and shows "Connected" |
| "WebSocket connection failed" | Check firewall allows ports 4400, 4401, 4402 |
| Task | Reference File |
|---|---|
| MCP server installation & troubleshooting | setup-troubleshooting.md |
| Component specs (buttons, forms, nav) | component-patterns.md |
| Accessibility (contrast, touch targets) | accessibility.md |
| Screen sizes & platform specs | platform-guidelines.md |
mcp__penpot__execute_code with penpotUtils.shapeStructure() to see hierarchypenpotUtils.findShapes() to locate elements by type or namepenpot.createBoard(), penpot.createRectangle(), penpot.createText() etc.addFlexLayout() for responsive containersmcp__penpot__export_shape to visually check your workBefore creating designs, determine if the user has an existing design system:
// Discover existing design patterns in current file
const allShapes = penpotUtils.findShapes(() => true, penpot.root);
// Find existing colors in use
const colors = new Set();
allShapes.forEach(s => {
if (s.fills) s.fills.forEach(f => colors.add(f.fillColor));
});
// Find existing text styles (font sizes, weights)
const textStyles = allShapes
.filter(s => s.type === 'text')
.map(s => ({ fontSize: s.fontSize, fontWeight: s.fontWeight }));
// Find existing components
const components = penpot.library.local.components;
return { colors: [...colors], textStyles, componentCount: components.length };
If user HAS a design system:
If user has NO design system:
width/height are READ-ONLY → use shape.resize(w, h)parentX/parentY are READ-ONLY → use penpotUtils.setParentXY(shape, x, y)insertChild(index, shape) for z-ordering (not appendChild)dir="column" or dir="row"text.resize(), reset growType to "auto-width" or "auto-height"Always check existing boards before creating new ones to avoid overlap:
// Find all existing boards and calculate next position
const boards = penpotUtils.findShapes(s => s.type === 'board', penpot.root);
let nextX = 0;
const gap = 100; // Space between boards
if (boards.length > 0) {
// Find rightmost board edge
boards.forEach(b => {
const rightEdge = b.x + b.width;
if (rightEdge + gap > nextX) {
nextX = rightEdge + gap;
}
});
}
// Create new board at calculated position
const newBoard = penpot.createBoard();
newBoard.x = nextX;
newBoard.y = 0;
newBoard.resize(375, 812);
Board spacing guidelines:
Use these defaults only when user has no design system. Always prefer user's tokens if available.
| Token | Value | Usage |
|---|---|---|
spacing-xs |
4px | Tight inline elements |
spacing-sm |
8px | Related elements |
spacing-md |
16px | Default padding |
spacing-lg |
24px | Section spacing |
spacing-xl |
32px | Major sections |
spacing-2xl |
48px | Page-level spacing |
| Level | Size | Weight | Usage |
|---|---|---|---|
| Display | 48-64px | Bold | Hero headlines |
| H1 | 32-40px | Bold | Page titles |
| H2 | 24-28px | Semibold | Section headers |
| H3 | 20-22px | Semibold | Subsections |
| Body | 16px | Regular | Main content |
| Small | 14px | Regular | Secondary text |
| Caption | 12px | Regular | Labels, hints |
| Purpose | Recommendation |
|---|---|
| Primary | Main brand color, CTAs |
| Secondary | Supporting actions |
| Success | #22C55E range (confirmations) |
| Warning | #F59E0B range (caution) |
| Error | #EF4444 range (errors) |
| Neutral | Gray scale for text/borders |
┌─────────────────────────────┐
│ Status Bar (44px) │
├─────────────────────────────┤
│ Header/Nav (56px) │
├─────────────────────────────┤
│ │
│ Content Area │
│ (Scrollable) │
│ Padding: 16px horizontal │
│ │
├─────────────────────────────┤
│ Bottom Nav/CTA (84px) │
└─────────────────────────────┘
┌──────┬──────────────────────────────────┐
│ │ Header (64px) │
│ Side │──────────────────────────────────│
│ bar │ Page Title + Actions │
│ │──────────────────────────────────│
│ 240 │ Content Grid │
│ px │ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │ │Card │ │Card │ │Card │ │Card │ │
│ │ └─────┘ └─────┘ └─────┘ └─────┘ │
│ │ │
└──────┴──────────────────────────────────┘
Prerequisites
Time Estimate
15-45 minutes depending on use case complexity
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
github/awesome-copilot
github/awesome-copilot
anthropics/claude-code
leonxlnx/taste-skill
sickn33/antigravity-awesome-skills
erichowens/some_claude_skills
penpot-uiux-design fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
penpot-uiux-design has been reliable in day-to-day use. Documentation quality is above average for community skills.
Keeps context tight: penpot-uiux-design is the kind of skill you can hand to a new teammate without a long onboarding doc.
I recommend penpot-uiux-design for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
penpot-uiux-design reduced setup friction for our internal harness; good balance of opinion and flexibility.
penpot-uiux-design is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
penpot-uiux-design has been reliable in day-to-day use. Documentation quality is above average for community skills.
We added penpot-uiux-design from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
Registry listing for penpot-uiux-design matched our evaluation — installs cleanly and behaves as described in the markdown.
Keeps context tight: penpot-uiux-design is the kind of skill you can hand to a new teammate without a long onboarding doc.
showing 1-10 of 55