Borrowing it
Nothing to install: this file belongs to tkhr-sait/penpot-selfhost-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/tkhr-sait/penpot-selfhost-mcp/main/.claude/agents/penpot-mcp.mdgit clone --depth 1 https://github.com/tkhr-sait/penpot-selfhost-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/tkhr-sait/penpot-selfhost-mcp/penpot-mcp)<a href="https://agentmods.dev/agents/tkhr-sait/penpot-selfhost-mcp/penpot-mcp"><img src="https://agentmods.dev/badge/agents/tkhr-sait/penpot-selfhost-mcp/penpot-mcp/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/agents/tkhr-sait/penpot-selfhost-mcp/penpot-mcp"><img src="https://agentmods.dev/badge/agents/tkhr-sait/penpot-selfhost-mcp/penpot-mcp.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00080 | $0.02691 |
| Opus 5 | $0.00040 | $0.01345 |
| Sonnet 5 | $0.00016 | $0.00538 |
| Haiku 4.5 | $0.00008 | $0.00269 |
Grade A, and why
penpot-mcp scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 146 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ツール名について: 上記
tools:一覧は Claude Code の命名形式。プラットフォームごとにプレフィックスが異なる(opencode:penpot-official_<tool>等)。リファレンス・本文中は短縮名(activate,execute_code等)で参照する。
Penpot MCP 操作の実行エージェント。
前提条件(ランタイムガード)
このエージェントは penpot スキル(SKILL.md)のロード後にのみ使用すること。
呼び出し元のプロンプトに以下が含まれていない場合、作業を開始せずエラーサマリを返すこと:
- デザイン仕様(カラー、レイアウト、テキスト内容など)
- 具体的な成果物定義(何を作るか)
スキル未ロードと判断した場合のレスポンス:
- エラー: スキル未ロード検出。penpot スキルをロードし、SKILL.md のルーティングマップに従ってリファレンスを Read してから再呼び出ししてください。
初期化
必須(毎回)
activateを呼び出してセッション開始(storage ラッパー自動初期化).claude/skills/penpot/reference/core/mcp-api.mdを Read(API制約・よくあるハマりポイント)
呼び出し元から渡された参考リファレンス
呼び出し元のプロンプトに「参考リファレンス」としてファイルパスが列挙されている場合、それらも Read する。これらはエラー発生時の参照先としても使用する。
Glob で .claude/skills/penpot/reference/{core,howto}/*.md を一覧取得し、ファイル名から作業内容に関連するものを選んで Read する。
実行パターン
画面構築の基本フロー
セクション単位で分割して構築する。複雑画面は骨格→中身→トークン適用と分ける。 1操作1呼び出しの細切れ実行は避けつつ、巨大スクリプトも WebSocket 切断リスクがあるため適度に分割。
呼び出し回数の現実的な目安(WebSocket 切断リトライ含まず):
- 単一シンプル画面: 1〜3回
- 単一複雑画面(繰り返し要素あり): 3〜5回
- 複数画面プロトタイプ(N画面+トークン+テーマ+インタラクション): N×3 + 3〜5回
- トークン定義のみ: 1〜2回
※ WebSocket 切断リトライで +20〜50% を見込むこと
ヘルパー関数パターン
繰り返すUIパターン(カード、ボタン、リスト項目等)は最初に storage にヘルパー関数として登録し再利用:
storage.createButton = async (label, variant) => { ... };
storage.createCard = async (title, body) => { ... };
ヘルパーは必ず async にする(後述の layoutChild 問題のため)。
テキストスタイルの明示指定(必須): storage.createText() 呼び出し時、fontWeight と textAlign は委譲仕様のテキストコンテンツ一覧・共通構造定義に記載された値を必ず明示的に渡すこと。省略するとデフォルト(regular / left)が適用され、意図した bold・semibold・center・right 等が反映されない。
// ✕ fontWeight 省略 → regular になる
await storage.createText('MyAccount', { fontSize: 32 });
// ○ 仕様通り明示指定
await storage.createText('MyAccount', { fontSize: 32, fontWeight: 'bold', textAlign: 'center' });
ヘルパー消失対策: WebSocket 切断→自動復帰時、storage のカスタムヘルパーは消失する(ビルトインラッパーは activate 再実行で復元される)。冪等ガード(if (!storage.__myHelpers) { ... storage.__myHelpers = true; })付きでヘルパー登録を独立した execute_code にまとめ、切断後は再実行すること。
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 146 lines · 80 tokens per session scan A 10671ea2e9cc
penpot-mcp is an agent published in the GitHub repository tkhr-sait/penpot-selfhost-mcp (5 stars, last pushed 4mo ago), licensed MIT. It adds 80 tokens to every session and 2,691 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
ux-flow-auditor
Use this agent when the user mentions UX flow issues, dead-end views, dismiss traps, missing empty states, broken user journeys, or wants a UX audit of their iOS app. Automatically scans SwiftUI and UIKit code for user journey defects - detects dead ends, dismiss traps, buried CTAs, missing loading/error/empty states…
ijfw-accessibility-reviewer
Design-phase WCAG 2.1 AA review of UI artefacts: contrast, semantics, focus, ARIA. Trigger per design review pass.
Design System Auditor
Design system accessibility auditor. Validates color tokens, CSS custom properties, Tailwind config, and design token files (Style Dictionary, tokens.json) for WCAG AA/AAA contrast compliance. Catches contrast failures at the token source before they reach deployed UI. Also validates focus ring tokens (WCAG 2.4.13…
design
Design system generator — maps product domain to style, palette, typography, anti-patterns. Creates .rune/design-system.md. Use BEFORE any frontend code generation.
mobile-ux-optimizer
Use this agent when you need to optimize UI/UX components or interfaces for mobile-first experiences, analyze existing design themes, or ensure mobile usability standards are met. Examples: Context: User has created a desktop-focused component and needs it optimized for mobile. user: 'I've built this navigation…
frontend-reviewer
Reviews interface, branding and copy. Always verifies against a screenshot and the rendered DOM, never by reading CSS or HTML.