adobe-indesign-mcp
Adobe InDesign MCP — 183 tools. Full InDesign DOM control from any AI agent. MCP-native, TypeScript, 31 handlers.
Install / Use
claude mcp add nutriandrea -- npx -y github:nutriandrea/adobe-indesign-mcpIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
AutomationSupported Platforms
Skill content
View source on GitHub🚀 Why This Exists
InDesign automation has been broken for 20 years. ExtendScript is ancient. CEP panels are over-engineered. UXP scripting requires a CS degree. You just want AI to do the layout.
This MCP server fixes that. One npm install and your AI agent controls InDesign like a puppeteer.
🆚 MCP vs The Old Ways
| | MCP (this) | ExtendScript | CEP Panels | UXP Scripts | Manual |
|---|---|---|---|---|---|
| Learn in | 30 seconds | 3 weeks | 2 months | 1 month | 0 (slow) |
| AI-native | ✅ Any MCP agent | ❌ | ❌ | ❌ | ❌ |
| Tool count | 183 | Unlimited (you write them) | 5-20 typical | 5-20 typical | ∞ (manual) |
| Error messages | Human-readable | Opaque crashes | Varies | Better | N/A |
| Setup time | 5 minutes | 10 minutes | 2 hours | 30 minutes | Instant |
| Undo support | ✅ Built-in | ❌ | Varies | ❌ | ✅ |
| Search text | text_search("pattern") | Write 50 lines | Maybe | Maybe | Ctrl+F |
| Debug mode | ✅ Stack traces | ❌ | Varies | Limited | N/A |
| Remote control | ✅ Anywhere STDIO works | ❌ InDesign-only | ❌ | ❌ | N/A |
| Maintenance | Zero (we handle 183 tools) | You write+test everything | Fragile | Fragile | N/A |
✨ What It Can Do
📝 Text & Typography (27 tools)
Create frames, set content, apply paragraph/character styles, control formatting, search with GREP, find/replace, apply fonts, set columns, insets, auto-size, vertical justification, drop caps, keep options, hyphenation, tabs, paragraph rules, text wrap, baseline, linking/unlinking.
🎨 Shapes & Objects (20 tools)
Rectangles, ellipses, polygons, lines, groups, anchored objects — create, modify, delete, list, arrange.
🖼️ Images (5 tools)
Place from disk, query metadata, fit/proportional, adjust brightness/contrast, relink.
🎭 Colors & Swatches (6 tools)
CMYK/RGB/LAB/spot swatches, ink list, gradients, apply to fill/stroke.
📄 Pages & Documents (15 tools)
Create, open, save, close, getInfo, listOpen — plus page add/delete/duplicate/move/getInfo/listAll/applyMaster, sections.
📊 Tables (20 tools)
Create, set cells, add/delete rows/columns, merge/split, alignment, fills, strokes, insets, header/footer, row/column sizing, table styles, cell styles.
🧬 Styles (10 tools)
Paragraph, character, object styles — create, list, duplicate, delete, apply.
🏗️ Masters & Books (10 tools)
Master spreads — create, duplicate, apply, delete, list, getPages. Books — list, open, getDocuments, synchronize.
📤 Export (9 tools)
PDF, EPUB, HTML, JPG, PNG, package — plus preflight, font/swatch/table lists, and script_run() for custom ExtendScript.
🔍 Find & Replace (5 tools)
GREP find/replace, format-aware find/replace.
🔄 Transform (5 tools)
Align, distribute, rotate, scale, flip.
🔗 Interactive (5 tools)
Hyperlinks, buttons, cross-reference anchors.
📚 References (10 tools)
Footnotes, endnotes, cross-references, index entries/topics/generation.
📋 Lists (6 tools)
Define, apply to paragraph/selection, remove, restart numbering.
🧩 XML & Data Merge (11 tools)
XML tags, import/export, data merge with CSV/TSV/XML sources.
🔧 Other
Layers, effects (drop shadow, feather, transparency), TOC, sections, undo/redo, undo groups.
🧠 Included AI Skills
Ten skills ship with the repo, auto-loaded by trigger keywords when you use any AI agent:
| # | Skill | What it does for you |
|---|---|---|
| 1 | Aesthetic Preference | Asks 8 questions before any creative work — font, palette, style, margins. Builds a persistent JSON profile. |
| 2 | Layout Readability | Validates overlays, contrast, orphans/widows, hierarchy, spacing, overflow before delivery. |
| 3 | Export & Verify | Mandatory modify → export JPG → analyze pixels → fix → repeat cycle. |
| 4 | Import Word | Imports .docx, maps Word styles to InDesign paragraph styles. |
| 5 | Batch Operations | Applies the same modification across N pages. |
| 6 | Image Optimize | Place, resize, DPI check, relink. Profiles for print (300dpi CMYK) vs web (72dpi RGB). |
| 7 | Table Format | Creates and styles tables — columns, rows, borders, fills, merge cells. |
| 8 | Template Manager | Save/load reusable page templates. |
| 9 | Export Batch | Export same document to multiple formats at once with different profiles. |
| 10 | Style Extractor | Scans .indd files, extracts full style profile (fonts, colors, styles, masters, margins) as JSON, replicates on new layout. |
🏗️ Architecture
┌─────────────────────┐ STDIO ┌──────────────────────┐ WebSocket ┌──────────────────┐
│ Any AI Agent │ ◄────────────────► │ indesign-nutria-mcp │ ◄───────────────► │ Adobe InDesign │
│ (Claude, OpenCode, │ │ (Node.js MCP Server) │ port 8120 │ + UXP Plugin │
│ Cursor, etc.) │ │ 31 handlers │ │ + ExtendScript │
└─────────────────────┘ │ 183 tools │ └──────────────────┘
│ 10 AI skills │
└──────────────────────┘
Full Handler Catalog
| Handler | Tools | Key Features | |---------|-------|-------------| | AnchoredObject | 5 | create, getSettings, release, setPosition, setProperties | | Book | 4 | list, open, getDocuments, synchronize | | Color | 6 | swatch CRUD, inks, gradients, apply | | DataMerge | 5 | selectDataSource, listFields, mergeRecords, export, removeDataSource | | Document | 8 | create/open/save/close, getInfo, listOpen, getPageStories, getStoryPages | | Effect | 4 | drop shadow, feather, transparency, gradient feather | | Export | 9 | multi-format export, preflight, fonts/swatches/tables, script_run | | Font | 5 | list, find, change, missing check, glyph insert | | Grep | 4 | find, replace, findFormat, replaceFormat | | Image | 5 | place, info, adjust, fit, relink | | Index | 4 | addEntry, createTopic, generate, listTopics | | Interactive | 5 | hyperlinks, buttons, anchors | | Layer | 5 | create, delete, list, reorder, setProperties | | List | 6 | define, apply, remove, restart numbering | | Master | 6 | create, duplicate, apply, delete, list, getPages | | Note | 4 | footnotes, endnotes | | Object | 6 | shapes, groups, image links | | Page | 7 | add, delete, duplicate, move, getInfo, listAll, applyMaster | | Resources | 6 | list/update/embed/unembed links | | Section | 4 | create, list, setNumbering, delete | | Shape | 6 | rectangle/ellipse/line/polygon create, delete, modify | | Style | 7 | paragraph/character/object styles CRUD | | Table | 16 | create, cells, rows/columns, merge/split, alignment, fills, strokes, header/footer | | TableStyle | 4 | tableStyle, cellStyle CRUD | | Text | 7 | frames, content, stories, findReplace, BOM filtering, timeout | | TextAdvanced | 20 | columns, wrap, links, drop caps, rules, tabs, formatting read/write, search | | Toc | 4 | createStyle, generate, update, listStyles | | Transform | 5 | align, distribute, rotate, scale, flip | | Undo | 5 | undo, redo, history, beginGroup, endGroup | | Xml | 6 | tags CRUD, tag/untag items, import/export | | Xref | 3 | create, list, updateFormat |
MCP Resources
| URI | What it gives you |
|---|---|
| mcp://session/status | Active document session state |
| mcp://bridge/status | WebSocket bridge health + queue depth |
| mcp://tools/inventory | Full 183-tool catalog for agent self-discovery |
| mcp://document/active | Currently active document info |
🎯 Use Cases
🏢 Agency Production
"Create a 200-page catalog from this CSV. Product name in 14pt Arial Bold, price in 12pt Arial Regular, description in 10pt. Add a red 'SALE' badge on page 1, 50, 100, 150. Export as PDF."
📚 Book Publishing
"Import this Word document. Map Heading 1 to 'Chapter Title' style, Normal to 'Body Text'. Add running headers with page numbers. Generate a TOC. Export to PDF with crop marks."
🎨 Creative Automation
"Take this InDesign template and generate 50 variations with different colors and text from this spreadsheet. Export each as a separate PDF."
🏭 Print Production
"Check all 200 files for missing fonts and broken links. Fix them. Export as PDF/X-1a."
🔄 Continuous Publishing
"Every morning at 8am, update the daily newspaper template with fresh content from our CMS, preflight, and upload to the web server."
⚡ Quick Start (30 seconds)
npm install -g indesign-nutria-mcp
indesign-nutria-mcp
Or from source:
git clone https://github.com/nutriandrea/adobe-indesign-mcp
cd adobe-indesign-mcp
npm install
npm run build
node dist/index.js
1️⃣ Load the plugin in InDesign
- Open UXP Developer Tool
- Load
plugin/directory - Click MCP Bridge → Connect
2️⃣ Connect your AI agent
OpenCode:
{
"mcpServers": {
"indesign": {
"command": "node",
"args": ["dist/index.js", "opencode-indesign.json"]
}
}
}
Claude Desktop:
{
"mcpServers": {
"indesign": {
"command": "node",
"args": ["/path/to/indesign-nutria-mcp/dist/index.js"]
}
}
}
3️⃣ Start creating
🤖 "Create a landscape A3 document with 3 pages."
🤖 "Add a blue rectangle covering the top half of page 1."
🤖 "In the rectangle, add text 'Hello World' in white, Arial Bold 72pt."
🤖 "Export page 1 as JPG."
🆕 What's New in v1.1.0
| Feature | Tools | What it solves |
|---------|-------|----------------|
| Text formatting read | text_getFormatting | Get font/size/style per text range. No more custom scripts. |
| Character style apply | text_applyCharStyle | Apply to a range in one call. |
| Font apply | text_applyFont | Apply font family/style/size to a range. |
| Text search | text_search, text_searchFormatting | GREP + format-aware search with paragraph-relative positions. |
| Story→Page map | document_getPageStories, document_getStoryPages | Which stories are on whi
Truncated for display — read the full file on GitHub.
Related Skills
momen-cursurrules-prompt-file
40.6kCursor rules for building custom frontends with Momen.app as headless BaaS with GraphQL API, actionflows, AI agents, and Stripe integration.
pyspark-etl-best-practices-cursorrules-prompt-file
40.6kCursor rules for PySpark ETL development with code style, joins, window functions, map operations, and Iceberg patterns.
semiotic-react-dataviz-cursorrules-prompt-file
40.6kCursor rules for Semiotic data visualization library with 30+ chart types, MCP server, and AI-assisted chart generation.
Agent-Reach
74.0kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
