InDesign MCP Server
by Tlechanteur
README.md
# InDesign MCP Server β Cross-Platform (macOS & Windows)
A comprehensive **Model Context Protocol (MCP) server** for **Adobe InDesign automation** with **35+ professional tools**. This server enables AI assistants like Claude to directly control Adobe InDesign, automating complex publishing workflows, document creation, and professional layout tasks.
> **Cross-platform fork** of [lucdesign/indesign-mcp-server](https://github.com/lucdesign/indesign-mcp-server) (macOS-only, AppleScript). This fork adds a **native Windows transport** via COM/VBScript (`CreateObject("InDesign.Application")` + `DoScript`) and picks the right transport automatically from `process.platform`. All 36 tools are unchanged β the ExtendScript layer is identical on both platforms. See [WINDOWS.md](WINDOWS.md) for details of the port.
## π 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
## π Prerequisites
- **Adobe InDesign** (tested on 2024β2026 releases)
- **macOS** (AppleScript transport) **or Windows** (COM/VBScript transport β this fork)
- **Node.js 18+**
- **MCP-compatible client** (Claude Desktop, Claude Code, Cursorβ¦)
### Optional environment variables
- `INDESIGN_APP_NAME` (macOS) β application name for AppleScript, default `Adobe InDesign 2025`
- `INDESIGN_PROGID` (Windows) β COM ProgID, default `InDesign.Application` (version-independent; falls back through `InDesign.Application.2026/2025/2024`)
## π οΈ Installation
### 1. Clone the Repository
```bash
git clone https://github.com/Tlechanteur/indesign-mcp-server-windows.git
cd indesign-mcp-server-windows
```
### 2. Install Dependencies
```bash
npm install
```
### 3. Configure MCP Client
Add the server to your MCP client configuration (e.g., Claude Desktop):
**claude_desktop_config.json:**
```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
```javascript
// 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
```javascript
// 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
```javascript
// 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
```javascript
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 statistics
- `create_document` - Advanced document creation
- `open_document` - Open existing documents
- `save_document` - Save with optional new path
- `close_document` - Close with save options
### **Page Management (4 tools)**
- `add_page` - Add pages with position control
- `delete_page` - Remove pages safely
- `duplicate_page` - Copy pages with content
- `navigate_to_page` - Page navigation
### **Text Management (3 tools)**
- `create_text_frame` - Advanced text frame creation
- `edit_text_frame` - Modify existing frames
- `find_replace_text` - Search and replace with GREP
### **Graphics Management (3 tools)**
- `place_image` - Image placement with fit options
- `create_rectangle` - Rectangle creation with styling
- `create_ellipse` - Ellipse creation with styling
### **Style Management (4 tools)**
- `create_paragraph_style` - Paragraph style creation
- `create_character_style` - Character style creation
- `apply_paragraph_style` - Apply styles to text
- `list_styles` - List all available styles
### **Color Management (3 tools)**
- `create_color_swatch` - Create CMYK/RGB/Spot colors
- `list_color_swatches` - List available colors
- `apply_color` - Apply colors to objects
### **Table Management (2 tools)**
- `create_table` - Table creation with headers/footers
- `populate_table` - Fill tables with data
### **Layer Management (3 tools)**
- `create_layer` - Create new layers
- `set_active_layer` - Switch active layer
- `list_layers` - List all layers
### **Export & Production (4 tools)**
- `export_pdf` - Professional PDF export
- `export_images` - Multi-format image export
- `export_epub` - Digital publishing export
- `package_document` - Print production packaging
### **Automation & Utilities (4 tools)**
- `execute_indesign_code` - Custom ExtendScript execution
- `preflight_document` - Quality checking
- `view_document` - Document visualization
- `data_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
```javascript
execute_indesign_code({
code: `
// Custom InDesign scripting
var doc = app.activeDocument;
// Your custom automation logic here
`
})
```
### Batch Processing Example
```javascript
// 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 is installed and running
- macOS: check AppleScript permissions in System Preferences
- Windows: the COM bridge starts InDesign if needed, but launching it first is faster and more reliable. If you run several InDesign versions side by side, set `INDESIGN_PROGID` (e.g. `InDesign.Application.2026`)
**"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
```bash
node --inspect index.js
```
## π€ Contributing
1. **Fork** the repository
2. **Create** a feature branch (`git checkout -b feature/AmazingFeature`)
3. **Commit** your changes (`git commit -m 'Add some AmazingFeature'`)
4. **Push** to the branch (`git push origin feature/AmazingFeature`)
5. **Open** a Pull Request
## π License
This project is licensed under the **MIT License** - see the [LICENSE](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](https://github.com/Tlechanteur/indesign-mcp-server-windows/issues)
- **Original macOS project**: [lucdesign/indesign-mcp-server](https://github.com/lucdesign/indesign-mcp-server)
---
**Made with β€οΈ for the publishing community**
*Transform your InDesign workflows with AI automation*TDQS
C2.8/5.0
Scored across 36 tools
Disambiguation4/5
Most tools have distinct purposes, but 'get_document_info' and 'view_document' overlap significantly as both provide document information, causing potential confusion.
Naming Consistency4/5
Tools predominantly follow a verb_noun snake_case pattern, though 'data_merge' deviates (noun_verb) and 'find_replace_text' uses compound verbs, introducing minor inconsistency.
Tool Count5/5
With 36 tools covering a wide range of InDesign operations, the count is well-suited to the complexity of the domain without being excessive or insufficient.
Completeness4/5
The tool set covers most core workflows (document, pages, objects, styles, export), but lacks dedicated object editing tools beyond text frames; however, 'execute_indesign_code' can bridge gaps.
Maintenance
ActivityStale
ResponsivenessNo issues