Skip to main content
Glama
gummiz
by gummiz

InDesign for Claude

Collage of InDesign panels, a note reading "place 12 images in a 4x3 grid, 5 mm gutter" and an arrow to a magazine spread with that grid

Describe what you want, and Claude builds it in Adobe InDesign: frames, text, colours, whole pages. It always works on a copy of your file, so the original stays exactly as you left it.

No terminal, no code. You install one file into the Claude desktop app.

What you need

Related MCP server: Claude Talk to Figma MCP

Install

  1. Download indesign.mcpb from the latest release.

  2. Double-click the file. Claude opens and shows the extension.

  3. Click Install.

Claude shows a red warning saying the extension gets access to your computer and that the developer details are not verified by Anthropic. That appears for every extension installed from a file. The extension only talks to InDesign, and the full source code is in this repository.

To check that it worked, open Settings → Extensions in Claude. "InDesign" should be listed and switched on.

First steps

  1. Start InDesign and open a document. It has to be saved at least once.

  2. Start a new chat in Claude and ask: "Which documents are open in InDesign?"

  3. The first time, macOS asks whether Claude may control InDesign. Click OK.

  4. Now ask for something real: "Draw a red 50 × 50 mm square on page 1."

A new file appears next to your document, named like flyer--claude.indd, and opens in InDesign. That is where Claude works.

How your work stays safe

Your original is never changed. Claude copies your document to <name>--claude.indd in the same folder and makes every change there. If that copy already exists, Claude keeps working in it and never overwrites it. Bringing results back into the original is up to you.

Every change can be undone. Each request Claude carries out is a single step in InDesign's Edit menu, labelled "Claude: …". One Cmd+Z undoes exactly that step, so you can always tell whether the next undo hits your own work or Claude's.

You keep working. You can scroll, switch documents and open others while Claude works. Claude always names the document it means and never simply picks whichever window is in front.

Nothing happens silently. Claude does not save, close or delete files on its own. Saving the copy is your call.

Prompts to try

  • "Set all body text in the copy to 9/13 pt Minion Pro."

  • "Add a 3 mm bleed and check that all images reach the bleed edge."

  • "List every font used in this document, and where."

  • "Align all captions to the baseline grid."

  • "Find text that overflows its frame."

Troubleshooting

"Document is not open." Claude only works with documents that are already open in InDesign. Open the file, then ask again.

"Has never been saved." Save the document once (Cmd+S). The copy needs a folder to live in.

Claude can't reach InDesign. Open System Settings → Privacy & Security → Automation, find Claude and turn on Adobe InDesign. Then restart Claude.

InDesign seems frozen. A long job is still running. Wait until it finishes; it can't be cancelled from Claude.

Two documents with the same name. Close one of them, so Claude knows which file you mean.

Uninstall

Claude → Settings → Extensions → InDesign → Uninstall. The --claude copies stay in your folders; delete them whenever you like.


For developers

The extension is a small MCP server in Node.js. It sends ExtendScript to InDesign via AppleScript (do script … language javascript) and has three tools:

Tool

Purpose

ping

Version and platform. Does not touch InDesign.

status

All open documents: name, path, size in mm, bleed, working copy or not. Call it first.

run_jsx

Runs ExtendScript. Requires document and undo_name. Writes only to the --claude copy.

Use with Claude Code

Requires Node 20 or later.

git clone https://github.com/gummiz/claude-indesign.git
cd claude-indesign
npm install
claude mcp add indesign -s user -- node "$PWD/bin/indesign-mcp.js"

Other MCP clients

The server speaks plain MCP over stdio, so any client that runs local MCP servers can use it: Cursor, VS Code, LM Studio, Gemini CLI, Codex CLI and others. Clone and npm install as above, then add this to the client's MCP configuration, with the absolute path to your clone:

{
  "mcpServers": {
    "indesign": {
      "command": "node",
      "args": ["/absolute/path/to/claude-indesign/bin/indesign-mcp.js"]
    }
  }
}

The exact file and key name differ between clients (VS Code, for example, uses servers), so check your client's MCP docs. Two things to know. Undo steps in InDesign are labelled "Claude: …" whichever model runs them. And results depend on the model, since it has to write working ExtendScript, which is ES3; smaller local models tend to struggle with that.

Build the extension

npm run pack

This writes dist/indesign.mcpb.

License

MIT © Stefan Kummerlöw. Made at tadaptive lab.

Adobe and InDesign are trademarks of Adobe Inc. This project is not affiliated with or endorsed by Adobe.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables text manipulation in Adobe InDesign documents via Claude Desktop by providing tools to add, update, remove, and retrieve text content through ExtendScript API.
    19
    -
  • A
    license
    C
    quality
    B
    maintenance
    Enables AI assistants to automate Adobe InDesign publishing workflows, including document creation, text formatting, image placement, PDF export, and more via 35+ professional tools.
    36
    42
    MIT