Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

InDesign MCP Server

NPM · INDESIGN-MCP-SERVER

Drive Adobe InDesign from any MCP client: 135+ tools for layout, styles, books and PDF export.

Available components

+3 this week 73 Trust /100

Last scanned (2 hours ago)

Scores higher than 45% of npm servers

Deprecated

This server is marked deprecated in the MCP registry. The registry records this reason: Renamed to adobe-mcp-indesign.

Trust breakdown (7 categories)

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. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 39 of 121 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency16
Schema Quality & AI Usability71
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 14090 tokens (~102/item across 137 items; 137 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management70
  • Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 10 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 138 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 +1

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

  • 2 Nov 26 +1

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

  • 31 Oct 26 +1

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

  • 29 Oct 26 +1

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

  • 26 Oct 26 +1

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

  • 24 Oct 26 +1

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

  • 22 Oct 26 +4
    • Stability: unverified → 0.23 ▲ functional
  • 16 Oct 26 −2
    • Maintenance: pass → fail ▼ functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/indesign-mcp-server@2.3.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 121 packages
Packages resolved 121
Stale 39
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 137 exposed · ~13,643 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
place_image ~213

Place an image file in a new frame on the active page (or pageIndex). Omit width and height to size the frame to the image.

NameTypeReqDescription
filePathstringyesPath to the image file
fitModestring–InDesign fit option applied to the frame (PROPORTIONALLY and FILL_PROPORTIONALLY also center the content); NONE keeps the placed size
heightnumber–Frame height in mm
linkImageboolean–Keep the image linked (false embeds it)
objectStylestring–Object style to apply to the frame
pageIndexinteger–Page index (0-based); defaults to the active page
scalenumber–Image scale percentage (1-1000); used when fitMode is NONE or the frame is sized to the image
widthnumber–Frame width in mm
xnumber–X position in mm
ynumber–Y position in mm

No output schema declared.

No examples provided.

place_xml_on_page ~108

Place an XML element (the first element whose tag matches xmlElementName) on a page. x/y are measured in mm from the page's top-left corner.

NameTypeReqDescription
autoflowingboolean–Autoflow placed text
pageIndexintegeryes0-based page index
xnumber–X position in mm
xmlElementNamestringyesTag name of the XML element to place
ynumber–Y position in mm

No output schema declared.

No examples provided.

place_xml_on_spread ~155

Place an element of the document's XML structure on a spread (Spread.placeXML). The element is found by tag name, searching the structure depth-first from the root.

NameTypeReqDescription
autoflowingboolean–Autoflow placed text
matchIndexinteger–Which element to use when several have this tag (0-based, document order)
spreadIndexintegeryesSpread index (0-based)
xnumber–X of the place point in mm, measured from the ruler origin
xmlElementNamestringyesTag name (markup tag) of the XML element to place
ynumber–Y of the place point in mm, measured from the ruler origin

No output schema declared.

No examples provided.

populate_table ~121

Fill table cells from a 2-D array. Tables are numbered across the text frames of the page; cells outside the table are skipped and counted.

NameTypeReqDescription
dataarrayyesRows of cell values; null becomes an empty cell
pageIndexinteger–Page index (0-based); defaults to the active page
startColumninteger–Starting column index
startRowinteger–Starting row index (header rows count)
tableIndexinteger–Index among the tables in page.textFrames, counted frame by frame

No output schema declared.

No examples provided.

preflight_book ~92

Preflight a book and save the preflight report (PDF, or text if the path ends in .txt). The report path is returned.

NameTypeReqDescription
autoOpenboolean–Automatically open the report
bookPathstringyesPath to the book file
outputPathstring–Path for the preflight report (default: <book name>-preflight.pdf in the system temp folder)

No output schema declared.

No examples provided.

preflight_document ~122

Run a preflight check on the active document with a preflight profile and list the problems found (optionally saving a report)

NameTypeReqDescription
maxResultsinteger–Maximum number of problems to list
profilestring–Preflight profile name, e.g. "[Basic]" (the built-in profile). Embedded document profiles are checked first, then application profiles.
reportPathstring–Optional absolute path to save the preflight report (.pdf or .txt)
timeoutSecondsinteger–Maximum seconds to wait for preflight to finish

No output schema declared.

No examples provided.

print_book ~94

Print every document in a book with a printer preset, optionally showing the print dialog first

NameTypeReqDescription
bookPathstringyesPath to the book file
printDialogboolean–Show the print dialog and wait for the user (leave false for unattended use)
printerPresetstring–Printer preset name (e.g. "[Default]" or a saved preset), or "DEFAULT_VALUE" for the default preset

No output schema declared.

No examples provided.

reframe_page ~123

Reframe a page: set its bounding box from two opposing corners, in mm in the given coordinate space

NameTypeReqDescription
coordinateSpacestring–Coordinate space of the corner coordinates; PAGE_COORDINATES unless you need another
pageIndexintegeryes0-based page index
x1numberyesTop-left X coordinate in mm
x2numberyesBottom-right X coordinate in mm
y1numberyesTop-left Y coordinate in mm
y2numberyesBottom-right Y coordinate in mm

No output schema declared.

No examples provided.

remove_item_from_group ~117

Remove a member from a group (the group is rebuilt with the remaining members, or dissolved if fewer than 2 remain)

NameTypeReqDescription
groupIndexintegeryesIndex of the group to remove the item from, as numbered by list_groups (its index in page.allPageItems)
itemIndexintegeryesIndex of the member within the group (group.pageItems), as listed by get_group_info; not the list_page_items numbering
pageIndexintegeryesIndex of the page containing the group (0-based)

No output schema declared.

No examples provided.

remove_master_override ~84

Remove local overrides from master items on a document page, restoring the master version. Without itemIndex, all overrides on the page are removed.

NameTypeReqDescription
itemIndexinteger–0-based index among the page's overridden master items (top-level page items first, then guides); omit to remove all
pageIndexintegeryes0-based document page index

No output schema declared.

No examples provided.

repaginate_book ~35

Repaginate all documents in a book and save it

NameTypeReqDescription
bookPathstringyesPath to the book file

No output schema declared.

No examples provided.

resize_page ~183

Resize a page (Page.resize). With REPLACING/ADDING, width and height are lengths in mm; with MULTIPLYING they are scale factors; with RESHAPING_* they are a width:height ratio.

NameTypeReqDescription
anchorPointstring–Point of the page that stays fixed while it resizes
coordinateSpacestring–Coordinate space the size is measured in; PAGE_COORDINATES unless you need another
heightnumberyesHeight value (mm, factor or ratio part depending on resizeMethod)
pageIndexintegeryes0-based page index
resizeMethodstring–How width and height are applied: replace the size (default), multiply it, add to it, or reshape to a ratio
widthnumberyesWidth value (mm, factor or ratio part depending on resizeMethod)

No output schema declared.

No examples provided.

resize_page_item ~106

Resize a page item to width x height mm around an anchor point

NameTypeReqDescription
anchorPointstring–Anchor point for resizing
heightnumberyesNew height in mm
itemIndexintegeryesIndex of the page item to resize, in page.allPageItems as numbered by list_page_items (nested items included)
pageIndexintegeryesIndex of the page containing the item (0-based)
widthnumberyesNew width in mm

No output schema declared.

No examples provided.

save_document ~71

Save the active document. With filePath, saves to that location (Save As); without it, saves in place (the document must have been saved before).

NameTypeReqDescription
filePathstring–Absolute path to save to (e.g. /Users/me/Documents/file.indd). Omit to save in place.

No output schema declared.

No examples provided.

save_document_to_cloud ~85

Save the active document as an Adobe Creative Cloud document (Document.saveAsCloud / saveACopyCloud). Requires InDesign with cloud documents support and a signed-in Creative Cloud account.

NameTypeReqDescription
cloudNamestringyesName for the cloud document
modestring–SAVE_A_COPY keeps the open document as is; SAVE_AS makes the open document the cloud document

No output schema declared.

No examples provided.

select_page ~72

Select a page in the active document (for example before running a command that acts on the selection)

NameTypeReqDescription
pageIndexintegeryes0-based page index
selectionModestring–REPLACE_WITH replaces the selection; ADD_TO / REMOVE_FROM change it; SET_KEY makes the page the key object

No output schema declared.

No examples provided.

select_page_item ~88

Select a page item (by index from list_page_items) in the document window

NameTypeReqDescription
existingSelectionstring–How to handle existing selection
itemIndexintegeryesIndex of the page item to select, in page.allPageItems as numbered by list_page_items (nested items included)
pageIndexintegeryesIndex of the page containing the item (0-based)

No output schema declared.

No examples provided.

select_spread ~85

Select a spread (Spread.select) and optionally make it the active spread in the layout window

NameTypeReqDescription
makeActiveboolean–Also make it the layout window's active spread (scrolls it into view)
selectionModestring–How the selection relates to the existing selection (SelectionOptions)
spreadIndexintegeryesSpread index to select (0-based)

No output schema declared.

No examples provided.

set_active_layer ~33

Make an existing layer the active layer of the active document

NameTypeReqDescription
layerNamestringyesLayer name to activate

No output schema declared.

No examples provided.

set_book_properties ~269

Set book options (only the ones given) and save the book

NameTypeReqDescription
automaticDocumentConversionboolean–Enable automatic document conversion
automaticPaginationboolean–Enable automatic pagination
bookPathstringyesPath to the book file
insertBlankPageboolean–Insert blank pages as necessary
mergeIdenticalLayersboolean–Merge identical layers when exporting to PDF
synchronizeBulletNumberingListboolean–Synchronize bullets and numbering
synchronizeCellStyleboolean–Synchronize cell styles
synchronizeCharacterStyleboolean–Synchronize character styles
synchronizeConditionalTextboolean–Synchronize conditional text
synchronizeCrossReferenceFormatboolean–Synchronize cross reference formats
synchronizeMasterPageboolean–Synchronize master pages
synchronizeObjectStyleboolean–Synchronize object styles
synchronizeParagraphStyleboolean–Synchronize paragraph styles
synchronizeSwatchboolean–Synchronize swatches
synchronizeTableOfContentStyleboolean–Synchronize table of content styles
synchronizeTableStyleboolean–Synchronize table styles
synchronizeTextVariableboolean–Synchronize text variables
synchronizeTrapStyleboolean–Synchronize trap styles

No output schema declared.

No examples provided.

set_document_grid_settings ~313

Set document grid and baseline grid settings (GridPreference). Pass only the properties to change. Measurements are millimetres.

NameTypeReqDescription
baselineColorstring–baselineColor (UIColors)
baselineDivisionnumber–baselineDivision. Millimetres (a string with units such as "12pt" or "0.5in" is also accepted)
baselineGridRelativeOptionstring–baselineGridRelativeOption (BaselineGridRelativeOption)
baselineGridShownboolean–baselineGridShown
baselineStartnumber–baselineStart. Millimetres (a string with units such as "12pt" or "0.5in" is also accepted)
baselineViewThresholdnumber–baselineViewThreshold
documentGridShownboolean–documentGridShown
documentGridSnaptoboolean–documentGridSnapto
gridColorstring–gridColor (UIColors)
gridsInBackboolean–gridsInBack
horizontalGridSubdivisioninteger–horizontalGridSubdivision
horizontalGridlineDivisionnumber–horizontalGridlineDivision. Millimetres (a string with units such as "12pt" or "0.5in" is also accepted)
verticalGridSubdivisioninteger–verticalGridSubdivision
verticalGridlineDivisionnumber–verticalGridlineDivision. Millimetres (a string with units such as "12pt" or "0.5in" is also accepted)

No output schema declared.

No examples provided.

set_document_layout_preferences ~102

Set Adjust Layout preferences (stored in the document) and Align & Distribute / Smart Guides preferences (application-wide in InDesign). Pass one or more groups with the properties to change.

NameTypeReqDescription
adjustLayoutobject–Adjust Layout (document, AdjustLayoutPreference)
alignDistributeobject–Align & Distribute (application-wide, AlignDistributePreference)
smartGuidesobject–Smart Guides (application-wide, SmartGuidePreference)

No output schema declared.

No examples provided.

set_document_preferences ~120

Set document preferences. Pass one or more groups (general, margins, guides, text, grid) with the properties to change. Measurements are millimetres. Margin changes are applied to the document defaults and to every existing document and master page.

NameTypeReqDescription
generalobject–Document setup (DocumentPreference)
gridobject–Grids (GridPreference)
guidesobject–Ruler guides (GuidePreference)
marginsobject–Margins and columns (MarginPreference)
textobject–Text (TextPreference)

No output schema declared.

No examples provided.

set_group_properties ~100

Set a group's name, visibility and locked state

NameTypeReqDescription
groupIndexintegeryesIndex of the group to modify, as numbered by list_groups (its index in page.allPageItems)
lockedboolean–Whether the group is locked
namestring–Name for the group
pageIndexintegeryesIndex of the page containing the group (0-based)
visibleboolean–Whether the group is visible

No output schema declared.

No examples provided.

set_page_background ~105

Set a page background: adds a full-page rectangle filled with a swatch, sent to the back of its layer

NameTypeReqDescription
backgroundColorstring–Swatch name in the document (e.g. "Paper", "Black", a custom swatch); "White" falls back to "Paper"
opacitynumber–Background opacity percentage (0-100)
pageIndexinteger–0-based page index (default 0, the first page)

No output schema declared.

No examples provided.

set_page_item_properties ~163

Set fill, stroke, visibility and lock state of a page item (only the properties you pass are changed)

NameTypeReqDescription
fillColorstring–Fill swatch name (e.g. "Black", "None") or "#RRGGBB"
itemIndexintegeryesIndex of the page item to modify, in page.allPageItems as numbered by list_page_items (nested items included)
lockedboolean–Whether the item is locked
pageIndexintegeryesIndex of the page containing the item (0-based)
strokeColorstring–Stroke swatch name or "#RRGGBB"
strokeWeightnumber–Stroke weight in points
visibleboolean–Whether the item is visible

No output schema declared.

No examples provided.

set_page_properties ~157

Set properties for a page (only the properties given are changed)

NameTypeReqDescription
appliedTrapPresetstring–Name of an existing trap preset to apply
labelstring–Page label
layoutRulestring–Liquid layout rule (LayoutRuleOptions)
optionalPageboolean–Optional page for HTML5 pagination
pageColorstring–Page color shown in the Pages panel: UI color name (e.g. "BLUE", "LIGHT_BLUE"), "r,g,b" (0-255), "USE_MASTER_COLOR" or "NOTHING"
pageIndexintegeryes0-based page index
snapshotBlendingModestring–Snapshot blending mode (SnapshotBlendingModes)

No output schema declared.

No examples provided.

set_spread_properties ~208

Set writable properties of a spread. Only the properties you pass are changed; each is applied independently and any rejected value is reported.

NameTypeReqDescription
allowPageShuffleboolean–If true, the spread holds at most two pages when pages are added; if false, pages can be added or moved into this existing spread
labelstring–Script label (any string)
namestring–Spread name (InDesign treats this as an alias of the spread's label)
pageTransitionDirectionstring–Page transition direction (PageTransitionDirectionOptions); must be one the chosen transition type supports
pageTransitionDurationstring–Page transition duration (PageTransitionDurationOptions)
pageTransitionTypestring–Page transition type (PageTransitionTypeOptions), used in SWF/interactive PDF export
showMasterItemsboolean–Display master page items on the pages of this spread
spreadIndexintegeryesSpread index (0-based)

No output schema declared.

No examples provided.

snapshot_page_layout ~38

Create a liquid-layout snapshot of the page layout for its current size and shape

NameTypeReqDescription
pageIndexintegeryes0-based page index

No output schema declared.

No examples provided.

synchronize_book ~47

Synchronize styles, swatches and other enabled options from the book's style source document to all documents, then save the book

NameTypeReqDescription
bookPathstringyesPath to the book file

No output schema declared.

No examples provided.

ungroup ~65

Ungroup a group, releasing all its items

NameTypeReqDescription
groupIndexintegeryesIndex of the group to ungroup, as numbered by list_groups (its index in page.allPageItems)
pageIndexintegeryesIndex of the page containing the group (0-based)

No output schema declared.

No examples provided.

update_all_cross_references ~32

Update all cross references in a book

NameTypeReqDescription
bookPathstringyesPath to the book file

No output schema declared.

No examples provided.

update_all_numbers ~39

Update all numbers (page numbers, chapter numbers, paragraph numbers) in a book

NameTypeReqDescription
bookPathstringyesPath to the book file

No output schema declared.

No examples provided.

update_chapter_and_paragraph_numbers ~35

Update chapter and paragraph numbers in a book

NameTypeReqDescription
bookPathstringyesPath to the book file

No output schema declared.

No examples provided.

validate_document ~145

Check the document for problems: missing/modified links, missing fonts, missing or low-resolution images, overset text and unused styles

NameTypeReqDescription
checkFontsboolean–Report fonts that are not installed (missing, substituted, faux)
checkImagesboolean–Report placed graphics with missing/modified links and images below minImagePpi
checkLinksboolean–Report links that are missing, out of date or inaccessible
checkOversetboolean–Report stories with overset text
checkStylesboolean–Report paragraph and character styles not applied to any text
minImagePpinumber–Minimum effective resolution for images

No output schema declared.

No examples provided.

view_document ~15

View document information and current state

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

zoom_to_page ~70

Show a page in the document window: fit the page in the window, or zoom to a given percentage

NameTypeReqDescription
pageIndexintegeryesZero-based page index to show
zoomLevelnumber–Zoom percentage (5-4000). Omit to fit the page in the window.

No output schema declared.

No examples provided.

Install

How do I install the InDesign MCP Server server?

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

npm · indesign-mcp-server

# add to Claude Code
claude mcp add zachshallbetter-indesign-mcp-server -- npx -y indesign-mcp-server
Common questions

What is the InDesign MCP Server server?

InDesign MCP Server is listed in the public MCP registry as io.github.zachshallbetter/indesign-mcp-server. Drive Adobe InDesign from any MCP client: 135+ tools for layout, styles, books and PDF export. This page covers its npm package (indesign-mcp-server).

Is the InDesign MCP Server server safe to use?

InDesign MCP Server scores 73 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. 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 InDesign MCP Server server expose?

InDesign MCP Server exposes 137 tools: add_page, delete_page, duplicate_page, navigate_to_page, get_page_info, and 132 more. Their descriptions and schemas cost roughly 13,643 tokens of context every time the server is loaded.

Is the InDesign MCP Server server still maintained?

InDesign MCP Server is marked deprecated in the MCP registry. We last reached this channel on 5 November 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 InDesign MCP Server server under?

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