mcp-indesign
Enables 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.
README
<div align="center">
Control Adobe InDesign directly from Codex, Claude, OpenCode, and other MCP clients.
Installation · Tools · Security · Development
</div>
InDesign MCP is a Model Context Protocol server that automates Adobe InDesign on Windows through COM and ExtendScript. It enables AI assistants to inspect documents, edit content, and perform exports using structured tools.
✨ Highlights
- 19 tools ready for editing, inspection, and export.
- npm installation, with no InDesign plugin or startup script required.
- Native integration with Codex, Claude Desktop, Claude Code, and OpenCode.
- Local execution over
stdio; your documents are not sent through MCP. - Secure by default, with arbitrary JSX execution disabled.
📋 Requirements
- Windows 10 or 11
- Adobe InDesign 2024 or later
- Node.js 18 or later
- PowerShell 5.1 or later
InDesign must be open while the server is in use. No startup script or firewall configuration is required.
📦 npm Installation
You do not need to clone the repository or install the package globally. Configure your MCP client to run:
npx -y mcp-indesign
Codex
Add the following to ~/.codex/config.toml:
[mcp_servers.indesign]
command = "npx"
args = ["-y", "mcp-indesign"]
startup_timeout_sec = 30
[mcp_servers.indesign.env]
INDESIGN_MCP_LANGUAGE = "en"
Claude Desktop or Claude Code
{
"mcpServers": {
"indesign": {
"command": "npx",
"args": ["-y", "mcp-indesign"],
"env": { "INDESIGN_MCP_LANGUAGE": "en" }
}
}
}
OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"indesign": {
"type": "local",
"command": ["npx", "-y", "mcp-indesign"],
"environment": { "INDESIGN_MCP_LANGUAGE": "en" },
"enabled": true
}
}
}
Restart the client, open InDesign, and run check_connection.
🧰 Tools
| Tool | Function |
|---|---|
check_connection |
Checks communication with InDesign |
list_documents |
Lists open documents |
get_document_info |
Returns document pages and properties |
get_page_info |
Returns information about a page |
get_text |
Reads text from the selection, page, document, or frame |
insert_text |
Inserts text into a frame |
set_frame_text |
Replaces, appends, or prepends text |
replace_text |
Finds and replaces text |
list_frames |
Lists text frames |
create_text_frame |
Creates a text frame |
list_styles |
Lists document styles |
apply_style |
Applies styles to the selection or a frame |
list_colors |
Lists color swatches |
create_color_swatch |
Creates an RGB, CMYK, LAB, or GRAY swatch |
export_pdf |
Exports a PDF |
export_image |
Exports a JPG, PNG, or TIFF image |
quick_export |
Quickly exports to a selected format |
batch_export |
Exports multiple documents and formats |
run_jsx |
Runs ExtendScript when explicitly enabled |
🔐 Security
The runtime defaults to English. Set the interface language in your MCP environment when needed:
INDESIGN_MCP_LANGUAGE=en # English
INDESIGN_MCP_LANGUAGE=pt-BR # Portuguese (pt and pt-PT are also accepted)
INDESIGN_MCP_LANGUAGE=es # Spanish
run_jsx allows arbitrary ExtendScript execution and is disabled by default. Enable it only in trusted environments:
INDESIGN_MCP_ENABLE_RUN_JSX=1
To use an external installation of BatchExportProfessional.jsx:
INDESIGN_MCP_BATCH_SCRIPT=C:\path\BatchExportProfessional.jsx
🛠️ Development
git clone https://github.com/SanNw/Indesign-MCP.git
cd Indesign-MCP
npm install
npm test
The test starts the server, validates all 19 tools, and confirms that run_jsx remains blocked by default.
🩺 Troubleshooting
- Run
check_connectionbefore using the other tools. - Confirm that InDesign is open in the same Windows session.
- Restart the MCP client after changing its configuration.
- Export presets vary by InDesign version and language.
⚠️ Limitations
- The
0.1.xseries supports Windows only. - Operations may modify the open document but do not save it automatically.
- Compatibility has been directly validated with InDesign 2025; other versions should be tested by the community.
📄 License
<div align="center">
Built to bring artificial intelligence and editorial design closer together.
</div>
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.