InDesign MCP Server について
デザインチーム、出版社、自動化開発者向けに、構造化されたツールで Adobe InDesign を操作する MCP サーバーです。レイアウトや組版から書籍制作、書き出しまで扱います。
主な機能
- 01ドキュメントとページの管理
- 02テキスト、表、スタイル、レイアウト
- 03書籍と長文ドキュメントのツール
- 04PDF、EPUB、画像の書き出し
- 05macOS、Windows、オプションの UXP バックエンド
活用シーン
- 01スタイルを統一したレポートの自動生成
- 02複数ページの出版物や書籍の制作
- 03レイアウトへのブランドテンプレート適用
- 04印刷用またはデジタル用の書き出し
MCP 対応
互換クライアント向けに、ドキュメント、レイアウト、組版、書き出しなどの InDesign 操作を MCP ツールとして公開します。サーバーはローカルで動作し、インストール済みの InDesign に接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y adobe-mcp-indesignINDESIGN_APP_NAMEmacOS only: force a specific app name, e.g. "Adobe InDesign 2026"INDESIGN_ALLOWED_DIRSExtra directories allowed for file operations (':' on macOS, ';' on Windows)INDESIGN_BACKENDExecution backend: extendscript (default), uxp or autoローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
423掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| position | enum | いいえ | ページを追加する位置:AT_END、AT_BEGINNING、または referencePage の BEFORE/AFTERAT_END | AT_BEGINNING | BEFORE | AFTER |
| referencePage | integer | いいえ | 0 始まりの参照ページインデックス(BEFORE/AFTER の場合は必須) |
詳細
InDesign MCP サーバー
Adobe InDesign を AI デザイン自動化プラットフォームに変えます — ドキュメント、レイアウト、タイポグラフィ、スタイル、表、画像、長文ドキュメント、インタラクティブドキュメント、プリプレス、PDF および EPUB 書き出しに対応する 420 以上の MCP ツールを備えています。自然言語を使って、Claude、Cursor、Warp、または任意の MCP クライアントから InDesign を操作できます。
このプロジェクトの目的
デザイン業務では今も、同じレイアウト作業を手作業で繰り返しています。このサーバーは、エージェントが呼び出せる構造化ツールとして InDesign の機能を公開します。チャットから離れることなく、ページの作成、素材の配置、ブランドスタイルの適用、PDF の書き出しができます。
最適な用途
- レイアウト作業とブランドの一貫性を自動化するデザインチーム
- 大量のドキュメントを生成するコンテンツクリエイター
- 実際に InDesign を操作する必要がある AI アシスタント
- デザイン自動化ワークフローを構築する開発者
- 制作工程を効率化する出版社
主な機能
コア機能
- ドキュメント管理 — 作成、開く、保存、閉じる、環境設定、プリフライト、XML
- ページ管理 — 追加、削除、複製、移動、ガイド、ナビゲーション
- コンテンツ — テキストフレーム、表、検索/置換、図形、画像
- スタイル — 段落、文字、オブジェクトのスタイルとカラースウォッチ
- レイアウト — スプレッド、親スプレッド、レイヤー、グループ、ページアイテム、ガイド、グリッド
- 書き出し — PDF、JPEG/PNG 画像、EPUB(リフロー型または固定レイアウト)、印刷用パッケージ
- ブック — 複数ドキュメントのブック、同期、再ページ付け、相互参照
モジュール領域
各領域では、InDesign の各部分のパネルとダイアログを網羅し、機能アトラスの能力に機能ごとに対応付けています。
- タイポグラフィ — 文字と段落の書式設定、OpenType、箇条書きと番号、GREP スタイル、タブ、CJK 組版
- スタイル — 段落、文字、オブジェクト、表、セル、目次のスタイル、スタイルグループ、クイック適用、入れ子スタイル
- テキストフレーム、表、長文ドキュメント — テキストフレームオプション、テキストの回り込み、注釈と変更履歴、スレッド連結、表とセルのオプション、目次、脚注、索引、条件付きテキスト、ハイパーリンク、相互参照、テキスト変数、ブック
- フレーム、パス、レイアウト — 図形、線、アンカー付きオブジェクト、ライブラリ、変形、パスファインダー、代替レイアウトとリキッドレイアウト、フレックスレイアウト、リンクコンテンツ、ガイド、グリッド
- カラー、効果、画像 — スウォッチ、グラデーション、混合インキ、カラー設定と校正、効果と透明度、リンクと読み込みオプション
- 出力 — あらゆるオプションを備えた PDF、EPUB、HTML の書き出し、Word と Excel の読み込み、印刷、プリフライト、色分解、冊子、パッケージ化
- インタラクティブドキュメント、XML、データ結合 — ボタンとフォーム、オブジェクトの状態、アニメーション、メディア、XML の構造、タグ、読み込み/書き出し、データ結合、検索と変更、辞書と言語
- ドキュメント、ページ、環境設定 — ドキュメントプリセット、ページとスプレッド、親ページ、レイヤー、選択、取り消し履歴、すべての環境設定ペイン
プラットフォーム
- macOS — AppleScript(
osascript)ブリッジを使用します。InDesign のバージョンは自動検出されます(またはINDESIGN_APP_NAMEで設定できます)。 - Windows — PowerShell(
New-Object -ComObject)経由で COM オートメーションを使用します。現在および最近の InDesign ProgID を試します。 - UXP(任意) — ローカルブリッジと
uxp/内のプラグインを介してINDESIGN_BACKEND=uxp|autoを使用します。 - セッションマネージャー — ページの寸法を追跡し、省略された位置とサイズを補います。
- ヘルプツール — 各ツールとカテゴリのパラメーターを、
tools/listと同じ定義から生成します。 - 安全な JSX ヘルパー — ExtendScript に文字列、数値、パスを検証して埋め込むための
src/utils/jsxSafe.js。
クイックスタート
前提条件
- Adobe InDesign(2023 以降を推奨)
- Node.js 18+
- macOS または Windows
macOS
AppleScript を使用します。求められた場合は、ターミナル/Node にオートメーション権限を付与してください(システム設定 → プライバシーとセキュリティ → オートメーション)。
InDesign のバージョンは、次の順序で決定されます。
INDESIGN_APP_NAME環境変数(例:Adobe InDesign 2026)- 実行中の InDesign プロセス
/Applicationsまたは~/Applicationsにある最新のAdobe InDesign *.app- フォールバック:
Adobe InDesign 2025
Windows
PowerShell 経由で COM オートメーションを使用します。追加のインストール手順はありません。InDesign がインストールされている必要があります。サーバーは実行中のインスタンスに接続するか、COM 経由で起動します。
インストール
クローンする必要はありません。MCP クライアントは npx でサーバーを起動し、初回実行時に npm からダウンロードします。公式 MCP Registry には io.github.zachshallbetter/adobe-mcp-indesign として掲載されています。
Claude Code:
claude mcp add indesign -- npx -y adobe-mcp-indesign
MCP クライアントの設定
その他のクライアント(Claude Desktop の claude_desktop_config.json、Cursor、Warp、…):
{
"mcpServers": {
"indesign": {
"command": "npx",
"args": ["-y", "adobe-mcp-indesign"]
}
}
}
任意の環境変数による上書き:
{
"mcpServers": {
"indesign": {
"command": "npx",
"args": ["-y", "adobe-mcp-indesign"],
"env": {
"INDESIGN_APP_NAME": "Adobe InDesign 2026",
"INDESIGN_ALLOWED_DIRS": "/Users/you/Projects:/Users/you/Documents"
}
}
}
}
INDESIGN_APP_NAME— macOS のみ。AppleScript で使用する特定のアプリ名を指定します。INDESIGN_ALLOWED_DIRS— ファイル操作で許可する追加ディレクトリ(区切り文字は macOS では:、Windows では;)
クライアントを再起動して InDesign を開き、次のように試してください:A4 のドキュメントを作成して、中央揃えのタイトルを追加して。
開発のためにクローンから実行する場合は、npm install の後、"command": "node" と "args": ["/ABSOLUTE/PATH/TO/adobe-mcp-indesign/src/index.js"] を使用します。
ヘルプシステム
await tools.call("help");
await tools.call("help", { tool: "create_document" });
await tools.call("help", { category: "text" });
await tools.call("help", { format: "detailed" });
await tools.call("help", { format: "examples" });
呼び出し例
await callTool('create_document', {
width: 210,
height: 297,
pages: 1
});
await callTool('create_text_frame', {
content: 'Hello, InDesign!',
fontSize: 14
});
await callTool('create_paragraph_style', {
name: 'Heading',
fontSize: 24,
alignment: 'CENTER_ALIGN'
});
ツール
7 つの領域に 137 個のツールがあります。すべてのパラメーターを含む完全なリファレンスは docs/TOOLS.md です(サーバーが公開するものと同じ定義から生成されています)。
| 領域 | ツール数 | 例 |
|---|---|---|
| ドキュメントとブック | 46 | create_document、open_document、save_document、preflight_document、data_merge、validate_document、create_book、export_book |
| ページとスプレッド | 30 | add_page、resize_page、create_page_guides、place_file_on_page、list_spreads、duplicate_spread |
| テキストと表 | 5 | create_text_frame、edit_text_frame、create_table、populate_table、find_replace_text |
| グラフィックと画像 | 8 | place_image、create_rectangle、create_polygon、create_object_style |
| スタイルとカラー | 8 | create_paragraph_style、create_character_style、create_color_swatch、apply_color |
| レイアウト、マスター、レイヤー | 30 | move_page_item、create_group、create_master_spread、detach_master_items、create_layer |
| 書き出しとユーティリティ | 10 | export_pdf、export_images、export_epub、package_document、indesign_status、execute_indesign_code |
AI エージェント向け
- 接続時の指示。 サーバーは
initializeの応答で使用上の指示(単位、インデックス、色、フォント、パス、エラー)を送信し、MCP クライアントはそれをモデルに渡します。 - すべてのツールにアノテーション。
readOnlyHint、destructiveHint、idempotentHint、openWorldHintにより、クライアントはdelete_page、cleanup_document、close_document(未保存の変更が破棄されます)などの破壊的な呼び出しの前に確認できます。 - 実際のエラー。 呼び出しに失敗すると、
isError: trueと「No document open」や「Error: color swatch 'Brand' not found」などのメッセージが返されます。 - 自己記述型。
help({ tool })は任意のツールのパラメーターを返し、help({ category })は分野ごとにツールを一覧表示します。 - 規則。 対象ページの左上を原点とするミリメートル単位、0 始まりのインデックス、スウォッチ名または
"#RRGGBB"、フォントは"Family\tStyle"を使用します。ワークフローについては docs/LLM_PROMPT.md を参照してください。
セッション管理
サーバーはページの寸法とアクティブなドキュメントのメタデータを追跡し、座標が省略された場合もツールが適切なデフォルト値でコンテンツを配置できるようにします。
await callTool('get_session_info', {});
await callTool('clear_session', {});
await callTool('create_text_frame', {
content: 'Auto-positioned text',
fontSize: 12
});
アーキテクチャ
src/
├── core/
│ ├── InDesignMCPServer.js # MCP server
│ ├── scriptExecutor.js # macOS AppleScript + Windows COM
│ └── sessionManager.js # Session state
├── handlers/ # Tools by domain
│ ├── documentHandlers.js
│ ├── pageHandlers.js
│ ├── textHandlers.js
│ ├── styleHandlers.js
│ ├── graphicsHandlers.js
│ ├── bookHandlers.js
│ ├── pageItemHandlers.js
│ ├── groupHandlers.js
│ ├── masterSpreadHandlers.js
│ ├── spreadHandlers.js
│ ├── layerHandlers.js
│ ├── exportHandlers.js
│ ├── utilityHandlers.js
│ ├── helpHandlers.js
│ └── index.js
├── types/ # Tool definitions
├── utils/
│ ├── stringUtils.js # Response helpers, escapeJsxString
│ └── jsxSafe.js # Validated ExtendScript literals / paths
└── index.js
スクリプトの実行
| プラットフォーム | 仕組み | 備考 |
|---|---|---|
| macOS | osascript → do script | アプリ名は自動検出されます。一時 .jsx ファイルは OS の一時ディレクトリに置かれます |
| Windows | PowerShell COM DoScript | ProgID は新しいものから順に試されます。一時 .jsx ファイルは OS の一時ディレクトリに置かれます |
ExtendScript の安全性
JSX に渡されるツール引数には、src/utils/jsxSafe.js の関数を使用してください。
str()、num()、bool()、index()、enumOf()、measure()、json()、numList()- ファイルシステムのパスには
validateFilePath()/jsxPath()(INDESIGN_ALLOWED_DIRS)
すべてのハンドラーがこれらのヘルパーを使用します。生の引数文字列がスクリプトに渡されることはありません。
エラー
スクリプトは失敗をテキスト(「No document open」、「Error …」、「… not found」)で報告します。サーバーはこれらを src/utils/stringUtils.js の looksLikeFailure で認識し、success: false および MCP の isError: true とともに返すため、クライアントは呼び出しの失敗と成功を区別できます。
実際の用途
- 一貫したスタイルによるレポートの自動生成
- ブランドアセットおよびテンプレートシステム
- 複数ページの刊行物や書籍
- デザインシステムに基づくレイアウト
テスト
npm run check # syntax check core modules
npm test # everything below that needs no InDesign
npm run test:audit # script audit only; pass a regex to audit some tools
npm run test:integration # full suite — requires InDesign running
npm run test:unified # single-document unified runner
npm test では、次の項目をテストします。
- ツール定義: すべてのツールに説明、タイトル、アノテーション、および型と説明が付いたパラメーター一覧があること
- パスの制限: すべてのファイルまたはフォルダーのパラメーターが、ホームフォルダーおよび
INDESIGN_ALLOWED_DIRSの外部へのパスを拒否すること - MCP プロトコル: サーバーが stdio 経由で起動し、指示を送信し、すべてのツールを一覧表示し、各ツールの
helpに応答すること - エラー検出: 失敗メッセージが
isErrorの結果になること - ツールリファレンス:
docs/TOOLS.mdが定義と一致していること - スクリプト監査: 以下を参照
スクリプト監査(tests/audit/scripts.audit.js)では、各ツールをスキーマから作成した引数で呼び出し、送信される ExtendScript を取得します。また、公開されているツールがディスパッチされない場合、スクリプトが有効な ES5 でない場合(ExtendScript には let、アロー関数、JSON がありません)、またはスクリプトが InDesign 2023 スクリプティング DOM に存在しないプロパティ、メソッド、列挙値、グローバルを使用している場合(types-for-adobe)は失敗します。
CI では、プッシュとプルリクエストのたびに check と npm test を実行します。監査ではスクリプトを Adobe の公開 DOM に照らして検証します。スクリプト自体は実行しないため、実際に稼働している InDesign を使った統合テストが最終確認となります。
関連プロジェクト
実行バックエンド
| バックエンド | 有効化方法 |
|---|---|
| ExtendScript / COM(デフォルト) | 未設定、または INDESIGN_BACKEND=extendscript |
| UXP ブリッジ + プラグイン | INDESIGN_BACKEND=uxp(または auto)+ npx -p adobe-mcp-indesign adobe-mcp-indesign-uxp-bridge + uxp/plugin を読み込み |
| ArtCraft / DesignCraft | INDESIGN_TARGET=craft、または InDesign がなく DesignCraft が実行中の場合に自動でフォールバック(127.0.0.1:7979) |
ArtCraft(DesignCraft)サポート
このサーバーは、Storytold のDesignCraftデスクトップパブリッシングアプリケーションを透過的にアダプターでサポートします。InDesign がインストールされていない、または実行されていない場合、あるいは INDESIGN_TARGET=craft(または ADOBE_TARGET=craft)が設定されている場合、対応するツールは DesignCraft のループバック制御プロトコルに直接ルーティングされます(デフォルトは 127.0.0.1:7979、または DESIGNCRAFT_CONTROL_PORT)。
詳細:docs/architecture-execution.md および uxp/README.md。
任意のパッケージング参照:theloniuser/indesign-uxp-server(ブリッジ/プラグインを謝辞を付記して uxp/ に適合させています)。
例
初回実行のワークフローとクライアント設定については、examples/basic-flyer.md および examples/mcp-config.json を参照してください。
コントリビューション
CONTRIBUTING.md を参照してください。セキュリティ上の問題は、SECURITY.md に記載の方法で非公開に報告してください。
クレジット
このサーバーは、MIT License の下で公開された Lukas Drechsel-Burkhard による lucdesign/indesign-mcp-server を起点としています。このプロジェクトはその成果を基盤としており、元の著作権表示は LICENSE に保持されています。
ライセンス
MIT。LICENSE を参照してください。
ドキュメント
- docs/MCP_INSTRUCTIONS.md:各クライアントのセットアップ、環境変数、トラブルシューティング
- docs/TOOLS.md:すべてのツールとパラメーター
- docs/LLM_PROMPT.md:エージェント向けの規約とワークフロー
- docs/architecture-execution.md:スクリプトが InDesign に接続する仕組み
- docs/CHANGELOG.md
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。