About NexusInDesign
NexusInDesign is a Windows MCP server that lets AI tools operate Adobe InDesign 2024–2026 through COM automation. It pairs scripted layout changes with backups, state checks, previews, preflight, and verified exports.
Key features
- 01Automates InDesign through COM
- 02Backs up documents before changes
- 03Checks document revision and state
- 04Creates previews and analyzes layouts
- 05Preflights and verifies exports
Use cases
- 01Apply a scripted layout change
- 02Review a layout using a PNG preview
- 03Preflight and export a document
- 04Restore a backed-up document after a change
MCP support
The engine communicates with MCP clients over stdio and exposes 32 tools for InDesign document operations. It uses InDesign's COM automation and does not send data over the network.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMENexusInDesign
InDesign, driven by your AIs. No panel, no network.
Adobe InDesign 2024 to 2026 for Claude Code and Codex, through one native Windows engine and InDesign's own COM automation: every change checked, every document backed up first, every export verified.
✨ Why NexusInDesign
| 🧩 COM automation only UXP scripts run by DoScript under NEVER_INTERACT: no panel, no Adobe UXP plugin, no Node.js, no Computer Use. | 💾 Backed up, undone in one step Every open document is backed up before a change, and a script's changes are removed by a single undo. | ✅ Checked and verified Each change is checked against the document's revision and state token; every PDF, PNG, IDML and INDD export is verified. |
🖼️ One pass, one previewrun_layout_script checks, backs up, runs, saves and returns a verified PNG preview with the new revision. | 🔒 Nothing leaves the PC No network listener; the engine talks over stdio and sends nothing over the network. | ⚡ Native and self-contained One C# engine, NexusInDesign.exe, x64 and ARM64, no administrator rights. 32 tools. |
🚀 Quick start
Windows (x64 or ARM64), InDesign 2024 to 2026 installed (it registers its COM server), Claude Code and/or Codex.
Tip
Let your AI install it. Paste this sentence into Claude Code or Codex:
Install and set up NexusInDesign for me by following https://raw.githubusercontent.com/pironjulien/NexusSystem/main/INSTALL-AI.md
Or the NexusSystem app (Microsoft Store): it runs this
product's get.ps1 and adds the nexus-indesign plugin to Claude Code and Codex from the Nexus catalog. Restart
Claude Code and Codex afterwards.
Manual install (verified)
Download get.ps1 and SHA256SUMS.txt from the latest release,
check the hash (and gh attestation verify get.ps1 --repo pironjulien/NexusInDesign --signer-repo pironjulien/NexusSystem),
then run the file:
powershell -NoProfile -ExecutionPolicy Bypass -File .\get.ps1
It installs %USERPROFILE%\.nexus\nexus-indesign\NexusInDesign.exe (no administrator rights), the path both plugins
start: a small native launcher that runs the engine of the current version from versions\<version>-<hash>\, a folder
never modified once written, so a conversation already open keeps working through an update. Run it again to update; -Remove removes the program and keeps backups and the audit journal. Claude Desktop
can also use the MCP bundle (nexus-indesign-<version>-win-x64.mcpb or -win-arm64.mcpb) of each release.
The engine starts InDesign when needed and closes it again if it started it hidden and nothing stays open.
⚙️ How it works
flowchart LR
A["Claude Code / Codex"] -->|"MCP over stdio"| E["NexusInDesign.exe<br/>(C#, self-contained)"]
E -->|"COM: DoScript, NEVER_INTERACT"| I["Adobe InDesign 2024–2026"]
E -.->|"backups, audit journal"| P[("~\.nexus\nexus-indesign\private")]
The nexus-indesign skill (in plugin/skills) guides the agent:
silent_status,silent_list_documents, thenopen_documentorcreate_document: each returnsdocumentId,revisionandstateToken.run_layout_scriptfor every coherent change: in one tracked InDesign pass it checks revision and state token, backs up every open document (restorable withsilent_restore_backup), runs the UXP script (app,indesign,doc,input), saves if asked, renders a verified PNG preview and optionally closes. It returns the new revision and token, so calls chain without re-inspection; a failing script is a known outcome with its backup.preflight_document, thenfinalize_layout(PDF only if the layout contract and Adobe's preflight pass) orexport_pdf,export_png,export_idml,package_document,save_document,save_as.silent_close_documentfor the documents the task opened.
Other tools: analyze_layout and compare_layout_snapshot (geometry, resources, styles, lint and a stable layout
fingerprint), preview_layout, create_working_copy, silent_audit_document and the get_* reads,
execute_uxp_silent, indesign_doctor (local checks, never starts InDesign) and search_official_dom (offline index
of Adobe's official DOM reference, pinned by SHA-256). 32 tools in all.
Important
After a timeout or a crash,
silent_operation_statustells what is known; every InDesign command stays refused untilsilent_reconcile_unknown_operationhas proven the documents stable and backed them up (it asks for a full InDesign restart when the interrupted script could still resume).
Warning
Code run through
run_layout_scriptandexecute_uxp_silenthas Adobe's full scripting permissions (files and network included): it is not a sandbox.
🛠️ Settings
Defaults suit most users: documents are read from and written to the user profile; private storage, ~\.nexus,
.ssh, .gnupg and AppData are denied.
Change the allowed folders and limits
Create %USERPROFILE%\.nexus\nexus-indesign\settings.json:
{
"readRoots": ["C:\\Dev", "%USERPROFILE%\\Documents"],
"writeRoots": ["C:\\Dev", "%USERPROFILE%\\Documents"],
"deniedRoots": ["%USERPROFILE%\\Documents\\Secrets"]
}
Environment variables take precedence: INDESIGN_MCP_READ_ROOTS, INDESIGN_MCP_WRITE_ROOTS,
INDESIGN_MCP_DENIED_ROOTS (;-separated), INDESIGN_MCP_COMMAND_TIMEOUT_MS (default 120000),
INDESIGN_MCP_BACKUP_MAX_AGE_HOURS (24), INDESIGN_MCP_BACKUP_MAX_FILES (200), INDESIGN_MCP_ALLOWED_PARENT_*.
🔒 Privacy & security
Everything stays on the PC. The engine sends nothing over the network; backups, the audit journal (no document text,
no path, no code) and the runtime stay in %USERPROFILE%\.nexus\nexus-indesign\private, readable by the current user
only. See SECURITY.md for the trust boundary and the safeguards.
🧪 Build and test
.\test.ps1
pwsh -File tools/package.ps1 -Version 4.1.4
test.ps1 runs the xUnit suite against an emulated InDesign (no InDesign needed). The launcher is compiled with Native
AOT, which needs the Visual C++ build tools (x64 and Arm64 for tools/package.ps1). Every push to main builds and
attests the release files through NexusSystem's shared workflows; a new version is promoted to a stable release with the
same files. See CONTRIBUTING.md and CHANGELOG.md.
Part of the Nexus ecosystem
Your AIs (Claude, Codex, Antigravity) at work on your Windows apps, real Chrome and Android phone — in the background.
NexusSystem | Windows | Browser | Android | Relay |
Keypad | AGYmail | Free | InDesign | Wpp |
Get them all with NexusSystem · Microsoft Store · julienpiron.fr · @julienpironfr
Built in France 🇫🇷 by Julien Piron
MIT license (see LICENSE, NOTICE.md and THIRD_PARTY_NOTICES.md).
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.