indesign-mcp-server
This server lets AI assistants, via MCP, directly control Adobe InDesign to automate document creation, layout, styling, production, and publishing workflows.
Create, open, save, close documents with presets, margins, bleeds, slug, facing pages, and multi-page support
Manage pages: add, delete, duplicate, navigate, zoom
Create and edit text frames with fonts, colors, alignment, styles, and find/replace with GREP
Place images and create styled rectangles and ellipses
Manage paragraph/character styles and document layers
Create and apply color swatches (CMYK, RGB, LAB, spot)
Create and populate tables with headers and footers
Export PDFs, images (PNG, JPEG, TIFF, GIF), and EPUB with production options
Package documents for print with fonts and linked files
Run preflight checks and document visualization
Execute custom ExtendScript code and perform data merges from CSV/data sources
Automate batch publishing and professional layout workflows
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@indesign-mcp-server Create an A4 document, add a heading, and export to PDF."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
InDesign MCP Server
A comprehensive Model Context Protocol (MCP) server for Adobe InDesign automation with 51+ professional tools. This server enables AI assistants like Claude to directly control Adobe InDesign, automating complex publishing workflows, document creation, and professional layout tasks.
🚀 Features
📄 Document Management
Create, open, save, and close documents with advanced options
Support for all standard formats (A4, A5, Letter, Legal, Custom)
Facing pages, bleeds, slugs, and margin configuration
Multi-page document handling
✍️ Text & Typography
Advanced text frame creation and editing
Character and paragraph style management
Find/replace with GREP support
Professional typography controls (leading, tracking, optical margin alignment)
🎨 Graphics & Layout
Image placement with multiple fit options
Shape creation (rectangles, ellipses with styling)
Layer management and organization
Color swatch creation and management (CMYK, RGB, Spot colors)
📊 Tables & Data
Table creation and data population
Support for headers and footers
CSV data integration capabilities
📤 Export & Production
Professional PDF export with presets
Multi-format image export (PNG, JPEG, TIFF)
EPUB export for digital publishing
Package for print production
Preflight checking
🔧 Automation & Scripting
Data merge operations
Custom ExtendScript execution
Batch processing capabilities
Professional publishing workflows
Related MCP server: InDesign MCP Server
📋 Prerequisites
Adobe InDesign 2025 (or compatible version)
macOS (required for AppleScript integration)
Node.js 18+
MCP-compatible client (like Claude Desktop)
🛠️ Installation
1. Clone the Repository
git clone https://github.com/lucdesign/indesign-mcp-server.git
cd indesign-mcp-server2. Install Dependencies
npm install3. Configure MCP Client
Add the server to your MCP client configuration (e.g., Claude Desktop):
claude_desktop_config.json:
{
"mcpServers": {
"indesign": {
"command": "node",
"args": ["/path/to/indesign-mcp-server/index.js"],
"env": {}
}
}
}4. Start Adobe InDesign
Ensure Adobe InDesign is running before using the MCP server.
🎯 Quick Start
Create a Professional Document
// Create an A4 document with facing pages
create_document({
preset: "A4",
orientation: "Portrait",
pages: 4,
facingPages: true,
marginTop: 20,
marginBottom: 20,
marginLeft: 20,
marginRight: 20
})Add Formatted Text
// Create a text frame with professional typography
create_text_frame({
content: "Professional Publishing with InDesign MCP",
x: 20,
y: 20,
width: 170,
height: 50,
fontSize: 18,
fontFamily: "Helvetica Neue",
fontStyle: "Bold",
alignment: "LEFT_ALIGN"
})Create and Apply Styles
// Create a character style
create_character_style({
name: "Emphasis",
fontFamily: "Helvetica Neue",
fontStyle: "Italic",
textColor: "Red"
})
// Apply to specific text
find_replace_text({
findText: "important",
replaceText: "important",
applyCharacterStyle: "Emphasis"
})Export Professional PDF
export_pdf({
filePath: "/path/to/output.pdf",
preset: "HighQualityPrint",
includeBleed: true,
colorProfile: "ISO Coated v2"
})🛠️ Available Tools
Document Management (5 tools)
get_document_info- Document information and statisticscreate_document- Advanced document creationopen_document- Open existing documentssave_document- Save with optional new pathclose_document- Close with save options
Page Management (4 tools)
add_page- Add pages with position controldelete_page- Remove pages safelyduplicate_page- Copy pages with contentnavigate_to_page- Page navigation
Text Management (3 tools)
create_text_frame- Advanced text frame creationedit_text_frame- Modify existing framesfind_replace_text- Search and replace with GREP
Graphics Management (3 tools)
place_image- Image placement with fit optionscreate_rectangle- Rectangle creation with stylingcreate_ellipse- Ellipse creation with styling
Style Management (4 tools)
create_paragraph_style- Paragraph style creationcreate_character_style- Character style creationapply_paragraph_style- Apply styles to textlist_styles- List all available styles
Color Management (3 tools)
create_color_swatch- Create CMYK/RGB/Spot colorslist_color_swatches- List available colorsapply_color- Apply colors to objects
Table Management (2 tools)
create_table- Table creation with headers/footerspopulate_table- Fill tables with data
Layer Management (3 tools)
create_layer- Create new layersset_active_layer- Switch active layerlist_layers- List all layers
Export & Production (4 tools)
export_pdf- Professional PDF exportexport_images- Multi-format image exportexport_epub- Digital publishing exportpackage_document- Print production packaging
Automation & Utilities (4 tools)
execute_indesign_code- Custom ExtendScript executionpreflight_document- Quality checkingview_document- Document visualizationdata_merge- Automated data integration
💡 Use Cases
Automated Publishing
Generate newsletters, brochures, and reports from data
Batch process multiple documents
Consistent styling across document series
Data-Driven Documents
Mail merge for personalized materials
Catalog generation from databases
Financial reports with dynamic content
Professional Workflows
Template-based document creation
Brand compliance automation
Print production preparation
Educational Materials
Automated textbook layout
Exercise sheet generation
Multi-language document variants
🔧 Advanced Configuration
Custom ExtendScript Integration
execute_indesign_code({
code: `
// Custom InDesign scripting
var doc = app.activeDocument;
// Your custom automation logic here
`
})Batch Processing Example
// Process multiple files
const files = ["doc1.indd", "doc2.indd", "doc3.indd"];
for (const file of files) {
await open_document({ filePath: file });
await export_pdf({
filePath: file.replace('.indd', '.pdf'),
preset: 'HighQualityPrint'
});
await close_document({ save: false });
}🐛 Troubleshooting
Common Issues
"Adobe InDesign not found"
Ensure InDesign 2025 is installed and running
Check AppleScript permissions in System Preferences
"Script execution failed"
Verify Adobe InDesign is the active application
Check for document-specific errors in console
"Tool not found"
Restart MCP client after configuration changes
Verify server is running with
node index.js
Debug Mode
node --inspect index.js🤝 Contributing
Fork the repository
Create a feature branch (
git checkout -b feature/AmazingFeature)Commit your changes (
git commit -m 'Add some AmazingFeature')Push to the branch (
git push origin feature/AmazingFeature)Open a Pull Request
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
Anthropic for the Model Context Protocol
Adobe for InDesign ExtendScript API
MCP Community for tools and inspiration
📞 Support
Issues: GitHub Issues
Discussions: GitHub Discussions
Made with ❤️ for the publishing community
Transform your InDesign workflows with AI automation
Available Tools
36 toolsadd_pageB
Add a new page to the document
Inputs: position, pageIndex, masterPage.
apply_colorC
Apply color to an object
Inputs: swatchName (required), objectIndex (required), property, pageIndex.
apply_paragraph_styleB
Apply a paragraph style to text
Inputs: styleName (required), frameIndex (required), endIndex, pageIndex, +1 more.
close_documentB
Close the current document
Inputs: save.
create_character_styleC
Create a new character style
Inputs: name (required), fontSize, tracking, baseStyle, +3 more.
create_color_swatchB
Create a new color swatch
Inputs: name (required), colorValues (required), spotColor, colorModel.
create_documentB
Create a new InDesign document with advanced options
Inputs: slug, bleed, pages, width, +8 more.
create_ellipseC
Create an ellipse shape
Inputs: x (required), y (required), width (required), height (required), +4 more.
create_layerC
Create a new layer
Inputs: name (required), color, locked, visible.
create_paragraph_styleC
Create a new paragraph style
Inputs: name (required), leading, fontSize, alignment, +5 more.
create_rectangleC
Create a rectangle shape
Inputs: x (required), y (required), width (required), height (required), +5 more.
create_tableC
Create a table
Inputs: x (required), y (required), rows (required), width (required), +5 more.
create_text_frameB
Create a text frame with advanced formatting options
Inputs: content (required), x, y, width, +9 more.
data_mergeD
Perform data merge operation
Inputs: outputFolder (required), dataSourcePath (required), fileFormat, recordRange.
delete_pageB
Delete a page from the document
Inputs: pageIndex (required).
duplicate_pageC
Duplicate a page
Inputs: pageIndex (required), position.
edit_text_frameB
Edit properties of an existing text frame
Inputs: frameIndex (required), content, fontSize, alignment, +3 more.
execute_indesign_codeC
Execute custom ExtendScript code in InDesign
Inputs: code (required).
export_epubC
Export document as EPUB
Inputs: filePath (required), version, imageFormat, includeImages.
export_imagesB
Export pages as images
Inputs: folderPath (required), format, pageRange, resolution, +1 more.
export_pdfC
Export document as PDF with advanced options
Inputs: filePath (required), preset, pageRange, includeSlug, +3 more.
find_replace_textC
Find and replace text in the document
Inputs: findText (required), replaceText (required), scope, useGrep, +2 more.
get_document_infoB
Get detailed information about the current InDesign document
Inputs: no named parameters.
list_color_swatchesA
List all color swatches in the document
Inputs: no named parameters.
list_layersA
List all layers in the document
Inputs: no named parameters.
list_stylesC
List all available styles in the document
Inputs: styleType.
open_documentB
Open an existing InDesign document
Inputs: filePath (required).
package_documentB
Package document for print production
Inputs: folderPath (required), createReport, includeFonts, includeLinkedFiles.
place_imageC
Place an image with advanced options
Inputs: imagePath (required), x, y, width, +4 more.
populate_tableC
Populate table with data
Inputs: data (required), tableIndex (required), pageIndex, includeHeaders.
preflight_documentC
Run preflight check on the document
Inputs: scope, profile.
save_documentB
Save the current document
Inputs: filePath.
set_active_layerC
Set the active layer
Inputs: layerName (required).
view_documentB
Get visual representation and detailed info about the current document
Inputs: no named parameters.
zoom_to_pageC
Zoom and fit page in view
Inputs: fitOption, pageIndex.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 36 tools
Most tools target distinct resource-action pairs, but get_document_info and view_document both provide document overview, and navigate_to_page/zoom_to_page are visually oriented. Descriptions likely clarify, but a few pairs could cause misselection.
All tools use verb_noun snake_case consistently (create_document, export_pdf, list_layers), with clear verbs and resource names. No mixed conventions or vague verbs.
At 36 tools, this exceeds the 25+ threshold for 'too many'. While InDesign is complex, many tools could be consolidated (e.g., export_* variants, create_rectangle/ellipse), making the surface heavier than necessary.
The server covers document lifecycle, page management, styles, layers, and exports, but lacks object deletion, movement, or listing beyond pages. The execute_indesign_code tool mitigates gaps, but agents will need to use it for missing operations.
Maintenance
Related MCP Connectors
Convert, create and edit Word, PowerPoint, Excel and PDF documents from any AI agent.
Give your AI agents a design superpower. Generate, edit, and publish publication-grade decks, reports, landing pages, resumes, and marketing visuals directly within your agent workflow. Delivering frontier-level design quality at 3× the speed and 53× lower cost -from conversational prompt to live link or vector PDF in minutes.
Build and run AI image, video and on-brand ad workflows from chat, with brand kits and share links.
Build and run visual creative-production workflows from your AI agent.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to inspect, modify, export, and validate design documents with 47 tools covering design, code generation, branding, and print/mockup workflows.4 npm2MIT
- AlicenseCqualityBmaintenanceTransforms Adobe InDesign into an AI-powered design automation platform with 135+ professional tools for seamless programmatic control over layout and design capabilities.210024 npm31MIT
- AlicenseCqualityDmaintenanceEnables AI assistants to control Adobe InDesign for automated publishing workflows, document creation, and layout tasks across macOS and Windows.363MIT
- AlicenseBqualityBmaintenanceEnables AI assistants to control Adobe InDesign on Windows via the Model Context Protocol, allowing document inspection, text and style editing, and exports to formats like PDF, images, and EPUB.1969 npmMIT