# Adobe InDesign (npm · indesign-nutria-mcp)

The most comprehensive MCP server for Adobe InDesign: 197 tools, AI-native, full DOM control

- Trust score: 67/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-23

## Components

- npm · `indesign-nutria-mcp`: 67/100 (this document), [markdown](https://verifymcp.io/servers/nutriandrea-indesign-nutria-mcp/indesign-nutria-mcp.md), [page](https://verifymcp.io/servers/nutriandrea-indesign-nutria-mcp/indesign-nutria-mcp)

## Channel facts

- Registry: `npm`
- Package: `indesign-nutria-mcp`
- Version: `1.6.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-23.

- **Supply Chain Security**: 80/100
  - No malware found by supply-chain analysis.
  - CVE check failed: a known high-severity CVE affects uuid 9.0.1, a direct dependency. A fixed version is available.
  - No install/post-install scripts declared.
  - 40 of 122 dependencies flagged as unhealthy (1 deprecated).
- **Provenance & Transparency**: 100/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to nutriandrea/adobe-indesign-mcp).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 2 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 36/100
  - 0% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (fair).
  - Tool/resource definitions use about 16054 tokens (~79/item across 201 items; 197 tools + 4 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 13/100
  - Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 76/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 28% of tool parameters carry a description.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 23 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "page_delete" implies "delete" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.
  - An AI judge read all 199 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Adobe InDesign MCP server?

Adobe InDesign runs locally as an npm package, launched with npx -y indesign-nutria-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add nutriandrea-indesign-nutria-mcp -- npx -y indesign-nutria-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "nutriandrea-indesign-nutria-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "indesign-nutria-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "nutriandrea-indesign-nutria-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "indesign-nutria-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add nutriandrea-indesign-nutria-mcp -- npx -y indesign-nutria-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "nutriandrea-indesign-nutria-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "indesign-nutria-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add nutriandrea-indesign-nutria-mcp --command npx --arg -y --arg indesign-nutria-mcp
```

### Hermes

```yaml
mcp_servers:
  nutriandrea-indesign-nutria-mcp:
    command: "npx"
    args: ["-y", "indesign-nutria-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "nutriandrea-indesign-nutria-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "indesign-nutria-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add nutriandrea-indesign-nutria-mcp -t stdio -c npx -a -y indesign-nutria-mcp
```

### Other

```json
{
  "mcpServers": {
    "nutriandrea-indesign-nutria-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "indesign-nutria-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-23 (score 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-21 (score 66, +16)

- [security improvement] Malware scan: unverified → pass

### 2026-10-20 (score 50, −15)

- [security regression] Malware scan: pass → unverified
- [functional] Package version: 1.6.0 → 1.6.1

### 2026-10-19 (score 65)

First indexed and scored.

## MCP tools (197)

### `document_create` (~113 tokens)

Create a new InDesign document with specified dimensions, margins, and settings

Input parameters:

- `bleed` (object)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `facingPages` (boolean)
- `height` (number)
- `margins` (object)
- `orientation` (string)
- `pages` (integer)
- `slug` (object)
- `width` (number)

### `document_open` (~67 tokens)

Open an existing InDesign document from file path

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `filePath` (string, required)
- `showWindow` (boolean)

### `document_save` (~70 tokens)

Save the active InDesign document, optionally to a specific path

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `filePath` (string)
- `saveOptions` (string)

### `document_close` (~59 tokens)

Close the active InDesign document with save options

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `saveOptions` (string)

### `document_getInfo` (~58 tokens)

Get detailed information about the active document including page count, dimensions, and margins

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `document_listOpen` (~50 tokens)

List all currently open InDesign documents

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `document_getState` (~101 tokens)

Get the editing state in one call: the front document (name, path, page count, size, margins), the index of that document, the names of every open document, the active layer, and how many objects are selected. Prefer this over chaining document_getInfo and document_listOpen

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `document_getPageStories` (~61 tokens)

Get all stories that appear on a specific page

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `pageIndex` (integer, required)

### `document_getStoryPages` (~69 tokens)

Get all pages covered by a specific story (for finding which pages a story lives on)

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `storyIndex` (integer, required)

### `page_add` (~69 tokens)

Add a new page to the active document at a specified position

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `position` (string)
- `referencePage` (integer)

### `page_delete` (~58 tokens)

Delete a page from the active document by index

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `index` (integer, required)

### `page_duplicate` (~56 tokens)

Duplicate a page in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `index` (integer, required)

### `page_move` (~68 tokens)

Move a page to a new position in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `index` (integer, required)
- `toIndex` (integer, required)

### `page_getInfo` (~57 tokens)

Get detailed information about a specific page

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `index` (integer, required)

### `page_listAll` (~53 tokens)

List all pages in the active document with their properties

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `page_applyMaster` (~66 tokens)

Apply a master spread to a page

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `masterName` (string, required)
- `pageIndex` (integer, required)

### `text_addFrame` (~75 tokens)

Add a text frame to a specified page with content

Input parameters:

- `bounds` (object, required)
- `content` (string)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `pageIndex` (integer, required)

### `text_setContent` (~72 tokens)

Set content of a text frame

Input parameters:

- `content` (string, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `frameIndex` (integer, required)
- `pageIndex` (integer, required)

### `text_getContent` (~101 tokens)

Get content from a text frame

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `frameIndex` (integer, required)
- `includeControlChars` (boolean): Include BOM (\ufeff) and control chars (\u0004) in output
- `pageIndex` (integer, required)
- `timeout` (integer): Custom timeout in ms

### `text_getStories` (~101 tokens)

List all stories in the active document with optional timeout and max results

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `includeControlChars` (boolean): Include BOM and control characters in content preview
- `maxResults` (integer): Maximum number of stories to return
- `timeout` (integer): Custom timeout in ms for large documents

### `text_applyParagraphStyle` (~84 tokens)

Apply a paragraph style to a text range

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `frameIndex` (integer, required)
- `pageIndex` (integer, required)
- `paragraphIndex` (integer)
- `styleName` (string, required)

### `text_findReplace` (~71 tokens)

Find and replace text content

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `findWhat` (string, required)
- `replaceWith` (string, required)
- `scope` (string)

### `text_getTextFrames` (~93 tokens)

List all text frames on a page with optional timeout

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `includeControlChars` (boolean): Include BOM and control characters in content preview
- `pageIndex` (integer, required)
- `timeout` (integer): Custom timeout in ms for large documents

### `style_listParagraph` (~51 tokens)

List all paragraph styles in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `style_listCharacter` (~51 tokens)

List all character styles in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `style_listObject` (~51 tokens)

List all object styles in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `style_createParagraph` (~124 tokens)

Create a new paragraph style

Input parameters:

- `basedOn` (string)
- `color` (string)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `fontFamily` (string)
- `fontStyle` (string)
- `leading` (number)
- `name` (string, required)
- `pointSize` (number)
- `properties` (object)
- `spaceAfter` (number)
- `spaceBefore` (number)

### `style_createCharacter` (~101 tokens)

Create a new character style

Input parameters:

- `basedOn` (string)
- `color` (string)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `fontFamily` (string)
- `fontStyle` (string)
- `name` (string, required)
- `pointSize` (number)
- `properties` (object)

### `style_duplicate` (~67 tokens)

Duplicate a style

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `name` (string, required)
- `newName` (string, required)
- `type` (string, required)

### `style_delete` (~59 tokens)

Delete a style

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `name` (string, required)
- `type` (string, required)

### `image_list` (~57 tokens)

List all placed images in a page

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `pageIndex` (integer, required)

### `image_getLinks` (~50 tokens)

Get link status for all placed images

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `shape_create` (~108 tokens)

Create a geometric shape (rectangle, ellipse, polygon, line)

Input parameters:

- `bounds` (object, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `fillColor` (string)
- `layerIndex` (integer)
- `pageIndex` (integer, required)
- `strokeColor` (string)
- `strokeWeight` (number)
- `type` (string, required)

### `shape_list` (~56 tokens)

List all shapes on a page

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `pageIndex` (integer, required)

### `group_list` (~56 tokens)

List all groups in a page

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `pageIndex` (integer, required)

### `group_ungroup` (~66 tokens)

Ungroup a group by index

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `groupIndex` (integer, required)
- `pageIndex` (integer, required)

### `export_document` (~84 tokens)

Export the active document to a specified format (PDF, JPG, PNG, EPUB, HTML, package)

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `filePath` (string)
- `format` (string, required)
- `options` (object)

### `export_batchFolder` (~114 tokens)

Export every InDesign (.indd) file in a folder to PDF in one run — opens each document invisibly and reports per-file results

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `folderPath` (string, required): Absolute folder containing .indd files
- `outputDir` (string): Defaults to the same folder
- `overwrite` (boolean)
- `timeoutMs` (integer)

### `export_preflight` (~68 tokens)

Run a preflight check on the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `profile` (string)
- `waitForCompletion` (boolean)

### `export_getSwatches` (~60 tokens)

Get all swatches (colors, gradients, tints) from the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `export_getFonts` (~51 tokens)

Get all fonts used in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `export_getMasterSpreads` (~53 tokens)

List all master spreads in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `export_getTables` (~58 tokens)

List all tables in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `pageIndex` (integer)

### `export_getXmlTags` (~51 tokens)

List XML tags in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `export_executeScript` (~58 tokens)

Execute arbitrary ExtendScript code in InDesign

Input parameters:

- `code` (string, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `script_run` (~99 tokens)

Execute arbitrary ExtendScript code with optional debug mode that returns line-level error stack traces

Input parameters:

- `code` (string, required)
- `debug` (boolean): Enable debug mode: wraps code in try/catch and returns ExtendScript error stack
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `timeout` (integer): Custom timeout in ms

### `master_create` (~69 tokens)

Create a new master spread with a given name and page count

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `name` (string, required)
- `pageCount` (integer)

### `master_duplicate` (~62 tokens)

Duplicate an existing master spread

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `name` (string, required)
- `newName` (string, required)

### `master_apply` (~66 tokens)

Apply a master spread to a specific page

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `masterName` (string, required)
- `pageIndex` (integer, required)

### `master_delete` (~55 tokens)

Delete a master spread by name

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `name` (string, required)

### `master_list` (~49 tokens)

List all master spreads with page count

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `master_getPages` (~57 tokens)

List all pages on a master spread

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `name` (string, required)

### `table_create` (~85 tokens)

Create a table on a page at specified bounds with row/column count

Input parameters:

- `bounds` (object, required)
- `columns` (integer)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `pageIndex` (integer, required)
- `rows` (integer)

### `table_list` (~60 tokens)

List all tables on a page or in the document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `pageIndex` (integer)

### `table_addRow` (~77 tokens)

Add a row to a table at a specific index

Input parameters:

- `atIndex` (integer)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `pageIndex` (integer, required)
- `tableIndex` (integer, required)

### `table_addColumn` (~77 tokens)

Add a column to a table at a specific index

Input parameters:

- `atIndex` (integer)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `pageIndex` (integer, required)
- `tableIndex` (integer, required)

### `table_deleteRow` (~73 tokens)

Delete a row from a table

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `pageIndex` (integer, required)
- `rowIndex` (integer, required)
- `tableIndex` (integer, required)

### `table_deleteColumn` (~73 tokens)

Delete a column from a table

Input parameters:

- `columnIndex` (integer, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `pageIndex` (integer, required)
- `tableIndex` (integer, required)

### `table_setCell` (~86 tokens)

Set content of a specific cell

Input parameters:

- `column` (integer, required)
- `content` (string, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `pageIndex` (integer, required)
- `row` (integer, required)
- `tableIndex` (integer, required)

### `table_getInfo` (~72 tokens)

Get detailed info about a table (rows, columns, cell contents)

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `pageIndex` (integer, required)
- `tableIndex` (integer, required)

### `table_mergeCells` (~98 tokens)

Merge a range of cells into one

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `endColumn` (integer, required)
- `endRow` (integer, required)
- `pageIndex` (integer, required)
- `startColumn` (integer, required)
- `startRow` (integer, required)
- `tableIndex` (integer, required)

### `table_splitCell` (~93 tokens)

Split a merged cell

Input parameters:

- `columnIndex` (integer, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `horizontal` (boolean)
- `pageIndex` (integer, required)
- `rowIndex` (integer, required)
- `tableIndex` (integer, required)
- `vertical` (boolean)

### `table_setCellFill` (~100 tokens)

Set a cell's fill color and tint

Input parameters:

- `columnIndex` (integer, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `fillColor` (string, required)
- `pageIndex` (integer, required)
- `rowIndex` (integer, required)
- `tableIndex` (integer, required)
- `tintPercent` (number)

### `table_setCellStroke` (~112 tokens)

Set cell edge stroke properties

Input parameters:

- `columnIndex` (integer, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `edge` (string, required)
- `pageIndex` (integer, required)
- `rowIndex` (integer, required)
- `strokeColor` (string)
- `strokeType` (string)
- `strokeWeight` (number, required)
- `tableIndex` (integer, required)

### `table_setCellInset` (~108 tokens)

Set cell inset spacing

Input parameters:

- `bottom` (number, required)
- `columnIndex` (integer, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `left` (number, required)
- `pageIndex` (integer, required)
- `right` (number, required)
- `rowIndex` (integer, required)
- `tableIndex` (integer, required)
- `top` (number, required)

### `table_setCellAlignment` (~96 tokens)

Set cell text alignment

Input parameters:

- `columnIndex` (integer, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `horizontalAlignment` (string)
- `pageIndex` (integer, required)
- `rowIndex` (integer, required)
- `tableIndex` (integer, required)
- `verticalAlignment` (string)

### `table_setHeaderFooter` (~90 tokens)

Set header and footer row counts

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `footerRows` (integer)
- `headerRows` (integer)
- `pageIndex` (integer, required)
- `repeatHeader` (boolean)
- `tableIndex` (integer, required)

### `table_setRowColumnSize` (~95 tokens)

Set row height or column width

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `index` (integer, required)
- `pageIndex` (integer, required)
- `size` (number, required)
- `tableIndex` (integer, required)
- `type` (string, required)
- `units` (string)

### `resources_listLinks` (~52 tokens)

List all document links with status and file path

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `resources_updateLink` (~72 tokens)

Update/relink a specific link by index to a new file

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `linkIndex` (integer, required)
- `newFilePath` (string, required)

### `resources_updateAllLinks` (~52 tokens)

Re-establish all broken/modified links

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `resources_embedLink` (~58 tokens)

Embed a linked file into the document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `linkIndex` (integer, required)

### `resources_unembedLink` (~69 tokens)

Unembed a file and save as linked resource

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `filePath` (string, required)
- `linkIndex` (integer, required)

### `resources_getLinkInfo` (~59 tokens)

Get detailed status for a specific link

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `linkIndex` (integer, required)

### `book_list` (~49 tokens)

List all open books in InDesign

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `book_open` (~59 tokens)

Open an InDesign book file (.indb)

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `filePath` (string, required)

### `book_getDocuments` (~57 tokens)

List all documents in a book

Input parameters:

- `bookIndex` (integer, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `book_synchronize` (~59 tokens)

Synchronize book documents with the style source

Input parameters:

- `bookIndex` (integer, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `interactive_listHyperlinks` (~51 tokens)

List all hyperlinks in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `interactive_addHyperlink` (~84 tokens)

Add a hyperlink to a text selection or page item

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `itemIndex` (integer, required)
- `name` (string, required)
- `pageIndex` (integer, required)
- `url` (string, required)

### `interactive_deleteHyperlink` (~56 tokens)

Delete a hyperlink by index

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `index` (integer, required)

### `interactive_listButtons` (~50 tokens)

List all buttons in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `interactive_listAnchors` (~53 tokens)

List all cross-reference anchors in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `xml_listTags` (~51 tokens)

List all XML tags in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `xml_addTag` (~55 tokens)

Create a new XML tag

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `name` (string, required)

### `xml_deleteTag` (~56 tokens)

Delete an XML tag by name

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `name` (string, required)

### `xml_tagPageItem` (~76 tokens)

Apply an XML tag to a page item

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `itemIndex` (integer, required)
- `pageIndex` (integer, required)
- `tagName` (string, required)

### `xml_export` (~55 tokens)

Export document structure as XML

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `filePath` (string, required)

### `xml_import` (~56 tokens)

Import XML file into the document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `filePath` (string, required)

### `toc_createStyle` (~121 tokens)

Create or modify a Table of Contents style in the active document

Input parameters:

- `betweenEntryAndNumber` (string)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `entryStyle` (string)
- `includeParagraphStyles` (array)
- `name` (string, required)
- `pageNumberStyle` (string)
- `replaceExisting` (boolean)
- `title` (string)
- `titleStyle` (string)

### `toc_generate` (~89 tokens)

Generate a Table of Contents on a specified page

Input parameters:

- `bounds` (object)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `layerIndex` (integer)
- `pageIndex` (integer, required)
- `styleName` (string, required)
- `title` (string)

### `toc_listStyles` (~53 tokens)

List all Table of Contents styles in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `toc_update` (~70 tokens)

Update (regenerate) an existing TOC from its story

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `storyIndex` (integer, required)
- `styleName` (string)

### `note_addFootnote` (~108 tokens)

Add a footnote to a specific paragraph in a story

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `numberingType` (string)
- `paragraphIndex` (integer, required)
- `prefix` (string)
- `startingNumber` (integer)
- `storyIndex` (integer, required)
- `suffix` (string)
- `text` (string, required)

### `note_listFootnotes` (~63 tokens)

List all footnotes in a story or the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `storyIndex` (integer)

### `note_footnoteOptions` (~97 tokens)

Set footnote options for the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `layout` (string)
- `numberingType` (string)
- `prefix` (string)
- `separator` (string)
- `startingNumber` (integer)
- `suffix` (string)

### `note_addEndnote` (~74 tokens)

Add an endnote to a story

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `numberingType` (string)
- `storyIndex` (integer, required)
- `text` (string, required)

### `index_addEntry` (~91 tokens)

Add an index entry for the current selection

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `pageRange` (string)
- `pageReferenceType` (string)
- `sortBy` (string)
- `subTopic` (string)
- `topic` (string, required)

### `index_generate` (~80 tokens)

Generate the index on a specified page

Input parameters:

- `bounds` (object)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `includeBookDocuments` (boolean)
- `pageIndex` (integer, required)
- `title` (string)

### `index_listTopics` (~51 tokens)

List all index topics in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `index_createTopic` (~62 tokens)

Create a new index topic

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `name` (string, required)
- `parent` (string)

### `grep_find` (~85 tokens)

Find text using GREP pattern in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `grepWhat` (string, required)
- `includeFootnotes` (boolean)
- `includeMasterPages` (boolean)
- `scope` (string)

### `grep_replace` (~73 tokens)

Find and replace text using GREP pattern

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `grepWhat` (string, required)
- `replaceWith` (string, required)
- `scope` (string)

### `grep_findFormat` (~70 tokens)

Find text with specific formatting

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `findWhat` (string, required)
- `format` (object)
- `scope` (string)

### `grep_replaceFormat` (~73 tokens)

Find and replace text while changing formatting

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `findWhat` (string, required)
- `format` (object)
- `replaceWith` (string, required)

### `text_linkFrames` (~87 tokens)

Link (thread) two text frames together

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `sourceFrameIndex` (integer, required)
- `sourcePageIndex` (integer, required)
- `targetFrameIndex` (integer, required)
- `targetPageIndex` (integer, required)

### `text_unlinkFrames` (~68 tokens)

Unlink a text frame from its thread

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `frameIndex` (integer, required)
- `pageIndex` (integer, required)

### `text_setColumns` (~82 tokens)

Set column count and gutter for a text frame

Input parameters:

- `count` (integer, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `frameIndex` (integer, required)
- `gutter` (number)
- `pageIndex` (integer, required)

### `text_setTextWrap` (~88 tokens)

Set text wrap preferences for an object

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `itemIndex` (integer, required)
- `mode` (string, required)
- `offset` (number)
- `pageIndex` (integer, required)
- `side` (string)

### `text_setDropCap` (~97 tokens)

Set drop cap options for a paragraph

Input parameters:

- `characterStyle` (string)
- `characters` (integer)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `frameIndex` (integer, required)
- `lines` (integer)
- `pageIndex` (integer, required)
- `paragraphIndex` (integer, required)

### `text_setKeepOptions` (~115 tokens)

Set keep options (widow/orphan control) for a paragraph

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `frameIndex` (integer, required)
- `keepWithNext` (integer)
- `keepWithPrevious` (boolean)
- `linesTogether` (integer)
- `pageIndex` (integer, required)
- `paragraphIndex` (integer)
- `startParagraph` (string)

### `text_setInsetSpacing` (~93 tokens)

Set text frame inset spacing

Input parameters:

- `bottom` (number, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `frameIndex` (integer, required)
- `left` (number, required)
- `pageIndex` (integer, required)
- `right` (number, required)
- `top` (number, required)

### `text_setAutoSize` (~85 tokens)

Set auto-sizing type for a text frame

Input parameters:

- `autoSizingType` (string, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `frameIndex` (integer, required)
- `pageIndex` (integer, required)
- `referencePoint` (string)

### `text_setVerticalJustification` (~75 tokens)

Set vertical justification for a text frame

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `frameIndex` (integer, required)
- `justification` (string, required)
- `pageIndex` (integer, required)

### `text_setFirstBaseline` (~84 tokens)

Set first baseline options for a text frame

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `frameIndex` (integer, required)
- `minOffset` (number)
- `offsetType` (string, required)
- `pageIndex` (integer, required)

### `text_setIgnoreWrap` (~75 tokens)

Set whether text frame ignores text wrap

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `frameIndex` (integer, required)
- `ignoreWrap` (boolean, required)
- `pageIndex` (integer, required)

### `text_setParagraphRuleAbove` (~142 tokens)

Add or modify rule above a paragraph

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `frameIndex` (integer, required)
- `pageIndex` (integer, required)
- `paragraphIndex` (integer, required)
- `ruleColor` (string, required)
- `ruleLeftIndent` (number, required)
- `ruleOffset` (number, required)
- `ruleOn` (boolean, required)
- `ruleRightIndent` (number, required)
- `ruleType` (string)
- `ruleWeight` (number, required)
- `ruleWidth` (string, required)

### `text_setParagraphRuleBelow` (~142 tokens)

Add or modify rule below a paragraph

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `frameIndex` (integer, required)
- `pageIndex` (integer, required)
- `paragraphIndex` (integer, required)
- `ruleColor` (string, required)
- `ruleLeftIndent` (number, required)
- `ruleOffset` (number, required)
- `ruleOn` (boolean, required)
- `ruleRightIndent` (number, required)
- `ruleType` (string)
- `ruleWeight` (number, required)
- `ruleWidth` (string, required)

### `text_setTabs` (~81 tokens)

Set tab stops for a paragraph

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `frameIndex` (integer, required)
- `pageIndex` (integer, required)
- `paragraphIndex` (integer, required)
- `tabStops` (array, required)

### `text_setHyphenation` (~123 tokens)

Set hyphenation settings for a paragraph

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `frameIndex` (integer, required)
- `hyphenation` (boolean, required)
- `letterSpacing` (number)
- `maxConsecutiveHyphens` (integer)
- `minWordLength` (integer)
- `pageIndex` (integer, required)
- `paragraphIndex` (integer, required)
- `wordSpacing` (number)

### `text_getFormatting` (~96 tokens)

Get detailed formatting (font, size, style, character style) for each text style range in a paragraph

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `includeControlChars` (boolean): Include BOM/control chars in range text
- `paragraphIndex` (integer, required)
- `storyIndex` (integer, required)

### `text_applyCharStyle` (~96 tokens)

Apply a character style to a range of characters within a paragraph

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `endChar` (integer, required)
- `paragraphIndex` (integer, required)
- `startChar` (integer, required)
- `storyIndex` (integer, required)
- `styleName` (string, required)

### `text_applyFont` (~141 tokens)

Apply font family, style, and/or size to a range of characters within a paragraph

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `endChar` (integer, required)
- `fontFamily` (string): Font family name (e.g. "Minion Pro")
- `fontStyle` (string): Font style (e.g. "Bold", "Italic", "Regular")
- `paragraphIndex` (integer, required)
- `pointSize` (number)
- `startChar` (integer, required)
- `storyIndex` (integer, required)

### `text_search` (~92 tokens)

Search text within a story using a GREP pattern, returning match positions and context

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `maxResults` (integer)
- `pattern` (string, required): GREP search pattern
- `storyIndex` (integer, required)
- `timeout` (integer)

### `text_searchFormatting` (~131 tokens)

Find text ranges with specific formatting (font family, style, or size) within a story

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `fontFamily` (string): Font family to search for
- `fontStyle` (string): Font style to search for (e.g. "Bold", "Italic")
- `maxResults` (integer)
- `pointSize` (number): Font size in points
- `storyIndex` (integer, required)
- `timeout` (integer)

### `xref_create` (~83 tokens)

Create a cross-reference in the active document

Input parameters:

- `appliedFormat` (string)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `sourceText` (string, required)
- `targetName` (string, required)
- `targetType` (string, required)

### `xref_list` (~52 tokens)

List all cross-references in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `xref_updateFormat` (~66 tokens)

Update the format of a cross-reference

Input parameters:

- `appliedFormat` (string, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `index` (integer, required)

### `effect_applyDropShadow` (~110 tokens)

Apply a drop shadow effect to an object

Input parameters:

- `angle` (number)
- `blur` (number)
- `color` (string)
- `distance` (number)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `itemIndex` (integer, required)
- `mode` (string)
- `opacity` (number)
- `pageIndex` (integer, required)

### `effect_applyFeather` (~97 tokens)

Apply a feather effect to an object

Input parameters:

- `chamferWidth` (number)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `itemIndex` (integer, required)
- `noise` (number)
- `pageIndex` (integer, required)
- `type` (string)
- `width` (number)

### `effect_applyTransparency` (~99 tokens)

Set transparency and blend mode for an object

Input parameters:

- `blendMode` (string)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `isolatedBlending` (boolean)
- `itemIndex` (integer, required)
- `knockoutGroup` (boolean)
- `opacity` (number)
- `pageIndex` (integer, required)

### `effect_applyGradientFeather` (~99 tokens)

Apply a gradient feather effect to an object

Input parameters:

- `angle` (number)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `endPoint` (object)
- `itemIndex` (integer, required)
- `pageIndex` (integer, required)
- `startPoint` (object)
- `type` (string)

### `transform_align` (~87 tokens)

Align objects on a page relative to selection, margins, or page

Input parameters:

- `alignMode` (string, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `itemIndices` (array, required)
- `pageIndex` (integer, required)
- `relativeTo` (string)

### `transform_distribute` (~81 tokens)

Distribute objects evenly on a page

Input parameters:

- `bounds` (string)
- `distributeMode` (string, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `itemIndices` (array, required)
- `pageIndex` (integer, required)

### `transform_rotate` (~80 tokens)

Rotate an object by a specified angle

Input parameters:

- `angle` (number, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `itemIndex` (integer, required)
- `layerIndex` (integer)
- `pageIndex` (integer, required)

### `transform_scale` (~87 tokens)

Scale an object by percentages

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `isPercentage` (boolean)
- `itemIndex` (integer, required)
- `pageIndex` (integer, required)
- `scaleX` (number)
- `scaleY` (number)

### `transform_flip` (~71 tokens)

Flip an object horizontally or vertically

Input parameters:

- `axis` (string, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `itemIndex` (integer, required)
- `pageIndex` (integer, required)

### `tableStyle_create` (~124 tokens)

Create a table style in the active document

Input parameters:

- `alternatingFillColors` (array)
- `alternatingFills` (string)
- `basedOn` (string)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `fillColor` (string)
- `name` (string, required)
- `spaceAfter` (number)
- `spaceBefore` (number)
- `strokeColor` (string)
- `strokeWeight` (number)

### `tableStyle_list` (~51 tokens)

List all table styles in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `cellStyle_create` (~130 tokens)

Create a cell style in the active document

Input parameters:

- `basedOn` (string)
- `bottomInset` (number)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `fillColor` (string)
- `leftInset` (number)
- `name` (string, required)
- `paragraphStyle` (string)
- `rightInset` (number)
- `strokeColor` (string)
- `strokeWeight` (number)
- `topInset` (number)

### `cellStyle_list` (~51 tokens)

List all cell styles in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `section_create` (~100 tokens)

Create a new section starting at a specified page

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `includePrefix` (boolean)
- `name` (string)
- `numberingStyle` (string)
- `pageNumberStart` (integer)
- `sectionPrefix` (string)
- `startPageIndex` (integer, required)

### `section_list` (~49 tokens)

List all sections in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `section_setNumbering` (~75 tokens)

Update page numbering for a section

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `numberingStyle` (string)
- `pageNumberStart` (integer, required)
- `sectionIndex` (integer, required)

### `section_delete` (~56 tokens)

Delete a section by its index

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `sectionIndex` (integer, required)

### `color_swatch_create` (~122 tokens)

Create a new color swatch

Input parameters:

- `black` (number)
- `blue` (number)
- `colorType` (string)
- `cyan` (number)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `green` (number)
- `magenta` (number)
- `model` (string, required)
- `name` (string, required)
- `red` (number)
- `yellow` (number)

### `color_swatch_list` (~52 tokens)

List all color swatches in the document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `color_swatch_delete` (~58 tokens)

Delete a color swatch by name

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `name` (string, required)

### `color_gradient_create` (~69 tokens)

Create a gradient swatch

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `name` (string, required)
- `stops` (array, required)
- `type` (string)

### `color_apply` (~70 tokens)

Apply a color swatch to selected item (fill or stroke)

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `swatchName` (string, required)
- `target` (string)

### `color_ink_list` (~50 tokens)

List all inks in the document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `font_list` (~46 tokens)

List all available fonts

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `font_find` (~53 tokens)

Search fonts by name

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `query` (string, required)

### `font_change` (~70 tokens)

Change font of selected text

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `fontName` (string, required)
- `fontStyle` (string)
- `size` (number)

### `font_glyph_insert` (~68 tokens)

Insert a special glyph at the cursor position

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `fontName` (string)
- `glyphId` (integer, required)

### `font_missing_check` (~50 tokens)

Check for missing fonts in the document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `image_place` (~96 tokens)

Place an image from a file path onto a page

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `filePath` (string, required)
- `height` (number)
- `pageIndex` (integer, required)
- `width` (number)
- `x` (number, required)
- `y` (number, required)

### `image_adjust` (~81 tokens)

Adjust image properties (brightness, contrast, etc.)

Input parameters:

- `brightness` (number)
- `contrast` (number)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `itemIndex` (integer, required)
- `pageIndex` (integer, required)

### `image_fit` (~71 tokens)

Fit image content to its frame

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `fitting` (string, required)
- `itemIndex` (integer, required)
- `pageIndex` (integer, required)

### `image_relink` (~77 tokens)

Relink/replace an image with a new file

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `filePath` (string, required)
- `itemIndex` (integer, required)
- `pageIndex` (integer, required)

### `image_info` (~66 tokens)

Get metadata for an image on a page

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `itemIndex` (integer, required)
- `pageIndex` (integer, required)

### `layer_create` (~86 tokens)

Create a new layer in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `guideLayer` (boolean)
- `locked` (boolean)
- `name` (string)
- `printable` (boolean)
- `visible` (boolean)

### `layer_list` (~49 tokens)

List all layers in the active document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `layer_reorder` (~70 tokens)

Move a layer to a new position in the layer stack

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `layerIndex` (integer, required)
- `newIndex` (integer, required)

### `layer_setProperties` (~81 tokens)

Set layer properties (visibility, lock, etc.)

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `layerIndex` (integer, required)
- `locked` (boolean)
- `printable` (boolean)
- `visible` (boolean)

### `layer_delete` (~53 tokens)

Delete a layer

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `layerIndex` (integer, required)

### `shape_rectangle_create` (~117 tokens)

Create a rectangle on a page

Input parameters:

- `cornerRadius` (number)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `fillColor` (string)
- `height` (number, required)
- `pageIndex` (integer, required)
- `strokeColor` (string)
- `strokeWeight` (number)
- `width` (number, required)
- `x` (number, required)
- `y` (number, required)

### `shape_ellipse_create` (~112 tokens)

Create an ellipse or circle on a page

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `fillColor` (string)
- `height` (number, required)
- `pageIndex` (integer, required)
- `strokeColor` (string)
- `strokeWeight` (number)
- `width` (number, required)
- `x` (number, required)
- `y` (number, required)

### `shape_polygon_create` (~118 tokens)

Create a polygon on a page

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `fillColor` (string)
- `height` (number, required)
- `numberOfSides` (integer)
- `pageIndex` (integer, required)
- `strokeColor` (string)
- `strokeWeight` (number)
- `width` (number, required)
- `x` (number, required)
- `y` (number, required)

### `shape_line_create` (~106 tokens)

Create a graphic line on a page

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `pageIndex` (integer, required)
- `strokeColor` (string)
- `strokeWeight` (number)
- `x1` (number, required)
- `x2` (number, required)
- `y1` (number, required)
- `y2` (number, required)

### `shape_modify` (~124 tokens)

Modify properties of an existing shape

Input parameters:

- `cornerRadius` (number)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `fillColor` (string)
- `height` (number)
- `itemIndex` (integer, required)
- `pageIndex` (integer, required)
- `strokeColor` (string)
- `strokeWeight` (number)
- `width` (number)
- `x` (number)
- `y` (number)

### `shape_delete` (~64 tokens)

Delete a shape from a page

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `itemIndex` (integer, required)
- `pageIndex` (integer, required)

### `undo` (~45 tokens)

Undo the last operation

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `redo` (~47 tokens)

Redo the last undone operation

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `undo_history` (~48 tokens)

Get undo/redo state information

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `undo_beginGroup` (~106 tokens)

Begin an undo group. While active, each subsequent script runs as a single undo step, so one Undo reverts a whole tool call (e.g. a multi-step recipe). It cannot merge separate calls into one step — each call is still its own undo entry. Call undo_endGroup() to restore the default.

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `undo_endGroup` (~53 tokens)

End the undo group and restore the default undo behavior

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `anchoredObject_create` (~135 tokens)

Create an anchored object at an insertion point or attach to a text frame

Input parameters:

- `anchorPoint` (string)
- `anchoredPosition` (string)
- `contentType` (string, required)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `height` (number, required)
- `insertionIndex` (integer, required)
- `spaceAbove` (number)
- `storyIndex` (integer, required)
- `width` (number, required)
- `xOffset` (number)
- `yOffset` (number)

### `anchoredObject_setPosition` (~105 tokens)

Reposition an anchored object

Input parameters:

- `anchorPoint` (string)
- `anchoredPosition` (string)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `itemIndex` (integer, required)
- `pageIndex` (integer, required)
- `spaceAbove` (number)
- `xOffset` (number)
- `yOffset` (number)

### `anchoredObject_release` (~66 tokens)

Release anchored object to regular page item

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `itemIndex` (integer, required)
- `pageIndex` (integer, required)

### `anchoredObject_getSettings` (~64 tokens)

Get anchored object settings

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `itemIndex` (integer, required)
- `pageIndex` (integer, required)

### `anchoredObject_setProperties` (~72 tokens)

Set multiple anchored object properties

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `itemIndex` (integer, required)
- `pageIndex` (integer, required)
- `properties` (object, required)

### `list_define` (~73 tokens)

Define a new numbered or bulleted list

Input parameters:

- `continueNumbering` (boolean)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `name` (string, required)
- `type` (string, required)

### `list_applyToParagraph` (~90 tokens)

Apply a list to a specific paragraph

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `frameIndex` (integer, required)
- `level` (integer)
- `listName` (string, required)
- `pageIndex` (integer, required)
- `paragraphIndex` (integer, required)

### `list_applyToSelection` (~67 tokens)

Apply a list to the current text selection

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `level` (integer)
- `listName` (string, required)

### `list_removeFromParagraph` (~74 tokens)

Remove list formatting from a paragraph

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `frameIndex` (integer, required)
- `pageIndex` (integer, required)
- `paragraphIndex` (integer, required)

### `list_list` (~49 tokens)

List all defined lists in the document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `list_restartNumbering` (~82 tokens)

Restart numbering at a specific paragraph

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `frameIndex` (integer, required)
- `pageIndex` (integer, required)
- `paragraphIndex` (integer, required)
- `startNumber` (integer, required)

### `dataMerge_selectDataSource` (~68 tokens)

Select a data source (CSV/TSV/XML) file for data merge

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `filePath` (string, required)

### `dataMerge_listFields` (~54 tokens)

List available data merge fields from the current data source

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `dataMerge_mergeRecords` (~89 tokens)

Merge records into the document using the selected data source

Input parameters:

- `alertWhenOverset` (boolean)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `generatePreview` (boolean)
- `linkImages` (boolean)
- `recordsPerPage` (integer)

### `dataMerge_export` (~65 tokens)

Export the merged document to a file

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `format` (string, required)
- `outputPath` (string, required)

### `dataMerge_removeDataSource` (~53 tokens)

Remove the current data source from the document

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.

### `preview_document` (~99 tokens)

Render a page of the active document as an image (PNG or JPEG) so you can visually inspect layout, colors and typography

Input parameters:

- `documentIndex` (integer)
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `format` (string)
- `pageIndex` (integer)
- `resolutionPpi` (integer)

### `recipe_flowTextStory` (~203 tokens)

Place a text file and flow it across as many pages as it needs in one call — creates the frames, links them, adds pages when it runs out, and reports where the story ended and whether it still overflows

Input parameters:

- `documentIndex` (integer): Index into the open-document list (see document_getState); defaults to the front document
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `filePath` (string, required): Absolute path to the text file to place (.txt, .rtf, .docx, … or a text-only .indd)
- `maxPages` (integer): Hard cap on frames created; if reached, the remaining overset text is reported, not thrown
- `pageIndex` (integer): Page to start the story on (0-based)
- `timeout` (integer): Custom timeout in ms

### `recipe_exportPreset` (~159 tokens)

Export the active document to PDF using a named PDF export preset in one call — validates the preset first and, if it is wrong, fails with the list of valid preset names

Input parameters:

- `documentIndex` (integer): Index into the open-document list (see document_getState); defaults to the front document
- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `filePath` (string, required): Absolute path of the PDF to write
- `presetName` (string, required): Name of an existing PDF export preset, e.g. "[Press Quality]" — the error lists the valid names
- `timeout` (integer): Custom timeout in ms

### `changes_getStatus` (~98 tokens)

Report document change activity pushed by the plugin over the bridge — no InDesign round-trip. Pass `since` (epoch ms) to learn whether anything changed after that moment, e.g. to skip re-rendering a preview when nothing changed.

Input parameters:

- `document_id`: Which open document to act on: a name (see document_listOpen) or a 0-based index. Defaults to the front document.
- `since` (number)

## Diagnostics

Captured diagnostic sections: Provenance, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/nutriandrea-indesign-nutria-mcp/indesign-nutria-mcp#diagnostics

## Score history

- 2026-10-23: 67
- 2026-10-22: 66
- 2026-10-21: 66
- 2026-10-20: 50
- 2026-10-19: 65

## Common questions

### What is the Adobe InDesign MCP server?

Adobe InDesign is an MCP server listed in the public MCP registry as io.github.nutriandrea/indesign-nutria-mcp. The most comprehensive MCP server for Adobe InDesign: 197 tools, AI-native, full DOM control. This page covers its npm package (indesign-nutria-mcp).

### Is the Adobe InDesign MCP server safe to use?

Adobe InDesign scores 67 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 23 October 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Adobe InDesign MCP server expose?

Adobe InDesign exposes 197 tools: document_create, document_open, document_save, document_close, document_getInfo, and 192 more. Their descriptions and schemas cost roughly 15,291 tokens of context every time the server is loaded.

### Is the Adobe InDesign MCP server still maintained?

Adobe InDesign is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Adobe InDesign MCP server under?

Adobe InDesign declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/indesign-nutria-mcp
- Socket report: https://socket.dev/npm/package/indesign-nutria-mcp
- Repository: https://github.com/nutriandrea/adobe-indesign-mcp
- Changelog RSS feed: https://verifymcp.io/servers/nutriandrea-indesign-nutria-mcp/indesign-nutria-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/nutriandrea-indesign-nutria-mcp/indesign-nutria-mcp.json
- HTML version of this page: https://verifymcp.io/servers/nutriandrea-indesign-nutria-mcp/indesign-nutria-mcp
