About Psd MCP
Psd MCP is an MCP server published by KimMaru10 in the Other category: pSD ファイルからデザイン情報を抽出する MCP サーバーです。.
The repository has 5 stars and 1 forks, with the last commit 6 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/KimMaru10/psd-mcp-serverThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (11)
compare_designPSDデザインと実装のスクリーンショットをピクセル単位で比較し、差分を検出します。差分ヒートマップ画像、差分率、差分領域のバウンディングボックスを返します。
Parameters not published.
export_imagePSDの合成画像または特定レイヤー/グループをPNG/JPEG形式でファイルに書き出します。
Parameters not published.
get_design_specレイヤーまたはグループの実装用デザイン仕様書を一括生成します。CSS、レイアウト情報、テキスト、border-radius、子要素の仕様を再帰的に含む包括的な仕様書です。実装前の参照やレビュー時の突合に使用します。
Parameters not published.
get_design_tokensPSDファイルからデザイントークン(カラー、フォント、シャドウ、グラデーション)を抽出します。JSON、CSS変数、Tailwind形式で出力可能です。
Parameters not published.
get_document_infoPSDファイルの概要を取得します。ドキュメントサイズ、カラーモード、解像度、レイヤーツリーを返します。オプションで合成画像のスクリーンショットも取得できます。
Parameters not published.
get_layer_cssレイヤーのスタイル情報をCSS形式で生成します。position, size, background, border, border-radius, box-shadow, text styles等を含みます。
Parameters not published.
get_layer_detail特定レイヤーの詳細情報を取得します。テキスト、ベクター、エフェクト、スマートオブジェクトなどの情報を含みます。
Parameters not published.
get_layout_infoグループレイヤー内の子要素間のスペーシング、整列パターン、推奨レイアウト方向を解析します。CSS実装時のmargin/padding/gap/flexbox方向の判断に活用できます。
Parameters not published.
get_screenshotPSDの合成画像または特定レイヤー/グループの画像をPNG形式で取得します。
Parameters not published.
get_text_contentPSDファイル内の全テキストレイヤーの内容とスタイリング情報を抽出します。
Parameters not published.
search_layersレイヤーを名前、タイプ、可視性などで検索します。
Parameters not published.
Ask AI
Ask AI about Psd MCP
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
psd-mcp
PSD ファイルからデザイン情報を抽出する MCP サーバーです。
Claude Code や Cursor などの AI コーディングツールから PSD デザインを直接読み取り、コード実装に活用できます。
Photoshop のインストールは不要です。 PSD ファイルを直接解析します。
目次
できること
デザイナー 開発者
PSD ファイル ──────────→ Claude Code / Cursor
│
├─ レイヤー構造の取得
├─ テキスト・フォント情報の抽出
├─ カラー・シャドウのデザイントークン化
├─ スクリーンショット画像の取得
├─ レイヤー単位の CSS 生成
├─ レイアウト解析(flex方向・gap推定)
├─ デザイン仕様書の自動生成
├─ 実装とのピクセル差分比較
└─ そのまま React / HTML / CSS に実装
- PSD のレイヤー構造をツリー形式で確認
- テキストレイヤーのフォント名・サイズ・色・行間を一括抽出
- カラーパレット・フォント一覧・シャドウを CSS Variables / Tailwind / JSON で出力
- ドキュメント全体や個別レイヤーのスクリーンショットを PNG で取得
- レイヤーを PNG / JPEG でファイルに書き出し
- レイヤーのスタイルを CSS コードとして生成
- グループ内の レイアウト解析(flex方向、gap、整列パターン推定)
- 実装用の デザイン仕様書を再帰的に一括生成
- PSD デザインと実装スクリーンショットのピクセル差分比較
- 「この PSD を React コンポーネントにして」のような指示でコード生成
動作環境
| 項目 | 要件 |
|---|---|
| Node.js | v18 以上 (v20 推奨) |
| npm | v9 以上 |
| OS | macOS / Windows / Linux |
| AI ツール | Claude Code、Cursor、Claude Desktop のいずれか |
セットアップ
1. リポジトリのクローン
git clone https://github.com/KimMaru10/psd-mcp.git
cd psd-mcp
2. 依存パッケージのインストール
npm install
macOS で
canvasのインストールに失敗する場合:brew install pkg-config cairo pango libpng jpeg giflib librsvg npm installUbuntu / Debian の場合:
sudo apt-get install -y build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev npm install
3. ビルド
npm run build
4. インストール先パスの確認
ビルド後、以下のパスをメモしておいてください。MCP 設定で使います。
# 自分の環境での絶対パスを確認
echo "$(pwd)/dist/index.js"
出力例: /Users/yourname/dev/psd-mcp/dist/index.js
MCP サーバーの設定
Claude Code
以下のコマンドで設定を追加します(最も簡単な方法):
claude mcp add psd node /path/to/psd-mcp/dist/index.js
または、設定ファイルを直接編集する場合:
グローバル設定 (~/.claude/settings.json) ← 全プロジェクトで使える
{
"mcpServers": {
"psd": {
"command": "node",
"args": ["/path/to/psd-mcp/dist/index.js"]
}
}
}
プロジェクト設定 (.claude/settings.json) ← 特定プロジェクトのみ
{
"mcpServers": {
"psd": {
"command": "node",
"args": ["/path/to/psd-mcp/dist/index.js"]
}
}
}
/path/to/psd-mcpはセットアップ手順4で確認した実際のパスに置き換えてください。
Cursor
プロジェクトルートに .cursor/mcp.json を作成:
{
"mcpServers": {
"psd": {
"command": "node",
"args": ["/path/to/psd-mcp/dist/index.js"]
}
}
}
設定後、Cursor を再起動してください。
Claude Desktop
Settings > Developer > Edit Config を開き、以下を追加:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"psd": {
"command": "node",
"args": ["/path/to/psd-mcp/dist/index.js"]
}
}
}
設定後、Claude Desktop を再起動してください。
動作確認
設定後、以下の方法で正しく接続されているか確認できます。
Claude Code の場合
PSDファイルの分析ツールが使えますか?
と入力すると、get_document_info などのツールが利用可能であることを応答します。
実際のPSDで確認
/path/to/design.psd のドキュメント情報を表示して
レイヤーツリーとドキュメント情報が返ってくれば成功です。
ツール一覧
get_document_info - ドキュメント概要
PSD ファイル全体の構造を取得します。最初に呼ぶべきツールです。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
filePath |
string | ○ | PSD ファイルの絶対パス |
includeScreenshot |
boolean | - | 合成画像のスクリーンショットを含めるか(デフォルト: true) |
返却内容: ドキュメントサイズ、カラーモード、解像度、レイヤーツリー、スクリーンショット画像
get_layer_detail - レイヤー詳細
特定レイヤーの詳細情報を取得します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
filePath |
string | ○ | PSD ファイルの絶対パス |
layerId |
number | △ | レイヤー ID |
layerName |
string | △ | レイヤー名(完全一致) |
layerPath |
string | △ | レイヤーパス(例: Header/Logo) |
includeImage |
boolean | - | レイヤー画像を含めるか(デフォルト: false) |
layerId/layerName/layerPathのいずれか1つを指定してください。
返却内容: bounds、opacity、blendMode、テキスト情報、ベクター情報、エフェクト、スマートオブジェクト情報
get_design_tokens - デザイントークン抽出
PSD 全体からカラー・フォント・シャドウ・グラデーションを収集し、構造化データとして出力します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
filePath |
string | ○ | PSD ファイルの絶対パス |
format |
string | - | 出力形式: json(デフォルト)/ css-variables / tailwind |
出力例(css-variables):
:root {
--color-1: #1a202c; /* text:Header/Title */
--color-2: #3182ce; /* vector:Content/Button */
--font-1: "Helvetica";
--shadow-1: -2px 3px 8px 0px #000000;
}
出力例(tailwind):
{
"theme": {
"extend": {
"colors": { "custom-1": "#1a202c", "custom-2": "#3182ce" },
"fontFamily": { "custom-1": ["Helvetica"] },
"boxShadow": { "custom-1": "-2px 3px 8px 0px #000000" }
}
}
}
get_screenshot - スクリーンショット取得
ドキュメント全体または特定レイヤーの画像を PNG で取得します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
filePath |
string | ○ | PSD ファイルの絶対パス |
layerId |
number | - | 特定レイヤーの ID |
layerPath |
string | - | 特定レイヤーのパス |
maxWidth |
number | - | 最大幅 px(デフォルト: 1200) |
maxHeight |
number | - | 最大高さ px(デフォルト: 1200) |
get_text_content - テキスト一括抽出
全テキストレイヤーの内容とスタイリング情報を抽出します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
filePath |
string | ○ | PSD ファイルの絶対パス |
layerPath |
string | - | 特定グループ内に限定するパス |
返却内容: 各テキストレイヤーのテキスト内容、フォント名、フォントサイズ、色、行間、文字間隔、テキスト配置、スタイルラン
export_image - 画像書き出し
PSD の合成画像または特定レイヤー/グループを PNG/JPEG ファイルとして書き出します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
filePath |
string | ○ | PSD ファイルの絶対パス |
outputPath |
string | ○ | 出力先ファイルパス(例: /tmp/output.png) |
layerId |
number | - | 特定レイヤーの ID |
layerPath |
string | - | 特定レイヤーのパス(例: Header/Logo) |
format |
string | - | png(デフォルト)/ jpeg |
quality |
number | - | JPEG 品質(1-100、デフォルト: 92) |
scale |
number | - | スケール倍率(例: 0.5 = 50%, 2 = 200%) |
width |
number | - | 出力幅 px(アスペクト比維持) |
height |
number | - | 出力高さ px(アスペクト比維持) |
search_layers - レイヤー検索
レイヤーを名前やタイプで検索します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
filePath |
string | ○ | PSD ファイルの絶対パス |
query |
string | - | レイヤー名の検索クエリ(部分一致) |
type |
string | - | text / group / bitmap / vector / adjustment / smartObject / all |
visible |
boolean | - | 可視レイヤーのみ / 非表示のみ |
hasEffects |
boolean | - | エフェクト付きレイヤーのみ |
get_layout_info - レイアウト解析
グループレイヤー内の子要素間のスペーシング、整列パターン、推奨レイアウト方向を解析します。CSS 実装時の margin/padding/gap/flexbox 方向の判断に活用できます。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
filePath |
string | ○ | PSD ファイルの絶対パス |
layerId |
number | △ | グループレイヤーの ID |
layerPath |
string | △ | グループレイヤーのパス(例: Header) |
layerName |
string | △ | グループレイヤー名(完全一致) |
layerId/layerPath/layerNameのいずれか1つを指定してください。
返却内容: レイアウト方向(horizontal/vertical)、子要素間の gap、整列パターン、推奨 CSS(flexbox/grid)
get_layer_css - CSS 生成
レイヤーのスタイル情報を CSS 形式で生成します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
filePath |
string | ○ | PSD ファイルの絶対パス |
layerId |
number | △ | レイヤー ID |
layerName |
string | △ | レイヤー名(完全一致) |
layerPath |
string | △ | レイヤーパス(例: Header/Logo) |
useParentRelative |
boolean | - | 親グループ基準の相対座標を使うか(デフォルト: true) |
layerId/layerName/layerPathのいずれか1つを指定してください。
返却内容: position, size, background, border, border-radius, box-shadow, text styles 等の CSS プロパティ
get_design_spec - デザイン仕様書生成
レイヤーまたはグループの実装用デザイン仕様書を一括生成します。CSS、レイアウト情報、テキスト、border-radius、子要素の仕様を再帰的に含む包括的な仕様書です。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
filePath |
string | ○ | PSD ファイルの絶対パス |
layerId |
number | △ | レイヤー ID |
layerName |
string | △ | レイヤー名(完全一致) |
layerPath |
string | △ | レイヤーパス(例: Header) |
maxDepth |
number | - | 子要素の再帰深度(デフォルト: 3) |
includeScreenshot |
boolean | - | スクリーンショットを含めるか(デフォルト: true) |
layerId/layerName/layerPathのいずれか1つを指定してください。
返却内容: レイヤーごとの CSS、レイアウト解析、テキスト情報、エフェクト、子要素の仕様(再帰)、スクリーンショット
compare_design - デザイン差分比較
PSD デザインと実装のスクリーンショットをピクセル単位で比較し、差分を検出します。
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
filePath |
string | △ | PSD ファイルの絶対パス(PSD と比較する場合) |
layerId |
number | - | 比較対象のレイヤー ID(PSD 使用時) |
layerPath |
string | - | 比較対象のレイヤーパス(PSD 使用時) |
designImagePath |
string | △ | デザイン画像ファイルのパス(画像同士を比較する場合) |
implementationImagePath |
string | ○ | 実装のスクリーンショット画像ファイルのパス |
tolerance |
number | - | 色差の許容値(0-255、デフォルト: 30) |
filePath(PSD)またはdesignImagePath(画像)のいずれかを指定してください。
返却内容: 差分率(%)、差分ヒートマップ画像、差分領域のバウンディングボックス、判定サマリー
使い方ガイド
基本的なワークフロー
Step 1: まずドキュメント概要を確認
/path/to/design.psd の構造を教えて
Step 2: 必要な部分のデザイントークンを抽出
/path/to/design.psd のデザイントークンを Tailwind 形式で出力して
Step 3: コード実装を依頼
/path/to/design.psd を React + Tailwind CSS で実装して
よく使うプロンプト例
| やりたいこと | プロンプト例 |
|---|---|
| PSD の全体像を把握 | design.psd を分析して |
| ヘッダー部分だけ見たい | design.psd の Header グループの詳細を教えて |
| 使われている色を知りたい | design.psd で使われている全カラーをリストアップして |
| CSS 変数として出力 | design.psd のデザイントークンを CSS 変数で出力して |
| 特定セクションだけ実装 | design.psd の Content セクションを HTML/CSS で実装して |
| テキスト内容を一括取得 | design.psd の全テキストを抽出して |
| ボタンのスタイルを確認 | design.psd の Button レイヤーのエフェクトを教えて |
| スクリーンショットを見たい | design.psd のスクリーンショットを表示して |
| レイヤーを画像で書き出し | design.psd の Logo レイヤーを /tmp/logo.png に書き出して |
| レイヤーの CSS を取得 | design.psd の CTAButton の CSS を生成して |
| レイアウト構造を確認 | design.psd の Header グループのレイアウトを解析して |
| デザイン仕様書を作成 | design.psd の Content セクションのデザイン仕様書を生成して |
| 実装との差分を比較 | design.psd と screenshot.png を比較して差分を教えて |
PSD ファイルの準備(デザイナー向け)
より良い解析結果のために、PSD ファイル作成時に以下を推奨します。
レイヤー名のルール
- レイヤーには意味のある名前を付ける(
レイヤー 1ではなくHeaderNavMenuなど) - グループ(フォルダ)でセクションを整理する
- 名前に 英語 を使うとコード生成時にそのままクラス名として活用しやすい
推奨構成例
Header/
├── Logo
├── NavMenu/
│ ├── Link-Home
│ ├── Link-About
│ └── Link-Contact
└── HeaderBG
Content/
├── HeroTitle
├── HeroDescription
└── CTAButton
Footer/
├── Copyright
└── FooterBG
その他のポイント
- テキストはテキストレイヤーで作成する(ラスタライズしない)
- ベクターシェイプはシェイプレイヤーのまま保持する
- カラーモードは RGB を使用する
- 不要なレイヤーは非表示にするか削除する
トラブルシューティング
canvas パッケージのインストールに失敗する
canvas(node-canvas)はネイティブ依存があります。OS ごとの対処法:
macOS:
brew install pkg-config cairo pango libpng jpeg giflib librsvg
Ubuntu / Debian:
sudo apt-get install -y build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
Windows: node-canvas の Windows Installation Guide を参照してください。
MCP サーバーが認識されない
- 設定ファイルのパスが絶対パスであることを確認
npm run buildが成功していることを確認- Claude Code / Cursor / Claude Desktop を再起動
- 手動でサーバーが起動するか確認:
echo '{}' | node /path/to/psd-mcp/dist/index.js # エラーが出なければ OK(Ctrl+C で終了)
PSD ファイルの解析に失敗する
- カラーモード: RGB 以外(CMYK、Lab 等)は一部機能が制限される場合があります
- ファイルサイズ: 非常に大きな PSD(100MB 超)はメモリ不足になる可能性があります
- バージョン: Photoshop CS6 以降で作成された PSD ファイルを推奨します
スクリーンショットが表示されない
includeScreenshot: true(デフォルト)で呼び出しているか確認- PSD にフラット化された合成画像が含まれている必要があります
- Photoshop で保存時に「互換性を優先」にチェックを入れてください
技術スタック
| ライブラリ | 用途 |
|---|---|
| ag-psd | PSD ファイルの解析(レイヤー、テキスト、エフェクト) |
| canvas | レイヤー画像の描画・リサイズ |
| @modelcontextprotocol/sdk | MCP プロトコル実装 |
| zod | ツール入力のスキーマバリデーション |
ライセンス
MIT
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.