MCP server wrapping the Penpot REST API for headless design automation
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"penpot-api-mcp","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# penpot-api-mcp [](https://github.com/lesleslie/crackerjack) [](https://github.com/lesleslie/oneiric) [](https://github.com/jlowin/fastmcp) [](https://github.com/astral-sh/uv) [](https://www.python.org/downloads/) MCP server wrapping the [Penpot](https://penpot.app) REST API for headless design automation. Provides read, search, and export access to Penpot projects, files, and design objects — without requiring a browser session. Part of the **Bodai Ecosystem** alongside Mahavishnu, Akosha, Dhara, Session-Buddy, and Crackerjack. ## Why this exists The official `@penpot/mcp` (TypeScript) requires a live browser plugin to operate — it is the right tool for interactive canvas manipulation. This server targets the complementary use case: background automation, asset export pipelines, and AI-driven design queries that run without a browser. ## Tools | Tool | Description | |---|---| | `list_projects` | List all projects for the authenticated user | | `get_project_files` | List design files in a project | | `get_file` | Fetch the full content of a design file | | `get_object_tree` | Return the design object hierarchy for a file | | `search_objects` | Search objects by name or type | | `export_object` | Export a design object as PNG/SVG (base64-encoded) | ## Setup ```bash uv sync touch .env # then fill in credentials (see Configuration below) ``` ## Configuration Environment variables (prefix `PENPOT_`): | Variable | Description | Default | |---|---|---| | `PENPOT_ACCESS_TOKEN` | API access token (preferred) | — | | `PENPOT_EMAIL` | Email…
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.