mcpField
I
InDesign MCP Server

InDesign MCP Server

ローカル
github.com/zachshallbetterメディア・デザイン281 週間前に更新

InDesign MCP Server について

デザインチーム、出版社、自動化開発者向けに、構造化されたツールで Adobe InDesign を操作する MCP サーバーです。レイアウトや組版から書籍制作、書き出しまで扱います。

主な機能

  1. 01ドキュメントとページの管理
  2. 02テキスト、表、スタイル、レイアウト
  3. 03書籍と長文ドキュメントのツール
  4. 04PDF、EPUB、画像の書き出し
  5. 05macOS、Windows、オプションの UXP バックエンド

活用シーン

  1. 01スタイルを統一したレポートの自動生成
  2. 02複数ページの出版物や書籍の制作
  3. 03レイアウトへのブランドテンプレート適用
  4. 04印刷用またはデジタル用の書き出し

MCP 対応

互換クライアント向けに、ドキュメント、レイアウト、組版、書き出しなどの InDesign 操作を MCP ツールとして公開します。サーバーはローカルで動作し、インストール済みの InDesign に接続します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"zachshallbetter-adobe-mcp-indesign": {
"command": "npx",
"args": [
"-y",
"adobe-mcp-indesign"
],
"env": {
"INDESIGN_APP_NAME": "<INDESIGN_APP_NAME>",
"INDESIGN_ALLOWED_DIRS": "<INDESIGN_ALLOWED_DIRS>",
"INDESIGN_BACKEND": "<INDESIGN_BACKEND>"
}
}
}
}
起動コマンドnpx -y adobe-mcp-indesign
設定が必要な環境変数
INDESIGN_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmadobe-mcp-indesign2.5.0

ツール

423

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
positionenumいいえページを追加する位置:AT_END、AT_BEGINNING、または referencePage の BEFORE/AFTERAT_END | AT_BEGINNING | BEFORE | AFTER
referencePageintegerいいえ0 始まりの参照ページインデックス(BEFORE/AFTER の場合は必須)

詳細

InDesign MCP サーバー

npm License: MIT Node.js Platform MCP GitHub stars

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 のバージョンは、次の順序で決定されます。

  1. INDESIGN_APP_NAME 環境変数(例:Adobe InDesign 2026)
  2. 実行中の InDesign プロセス
  3. /Applications または ~/Applications にある最新の Adobe InDesign *.app
  4. フォールバック: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 です(サーバーが公開するものと同じ定義から生成されています)。

領域ツール数例
ドキュメントとブック46create_document、open_document、save_document、preflight_document、data_merge、validate_document、create_book、export_book
ページとスプレッド30add_page、resize_page、create_page_guides、place_file_on_page、list_spreads、duplicate_spread
テキストと表5create_text_frame、edit_text_frame、create_table、populate_table、find_replace_text
グラフィックと画像8place_image、create_rectangle、create_polygon、create_object_style
スタイルとカラー8create_paragraph_style、create_character_style、create_color_swatch、apply_color
レイアウト、マスター、レイヤー30move_page_item、create_group、create_master_spread、detach_master_items、create_layer
書き出しとユーティリティ10export_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
スクリプトの実行
プラットフォーム仕組み備考
macOSosascript → do scriptアプリ名は自動検出されます。一時 .jsx ファイルは OS の一時ディレクトリに置かれます
WindowsPowerShell COM DoScriptProgID は新しいものから順に試されます。一時 .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 / DesignCraftINDESIGN_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 を参照してください。

ドキュメント

課題:https://github.com/zachshallbetter/adobe-mcp/issues

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。