← InDesign MCP Server

InDesign MCP Server 3162eebf032a95aa8711accc51e49614c8d16b4c

source_git · tlechanteur/indesign-mcp-server-windows · current release

36
Tools
0
Resources
0
Templates
0
Prompts

Observation

Observed 2026-08-25T12:21:46.166Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2024-11-05.

Server capabilities
{
  "tools": {}
}

Tools 36

ToolCategoryAnnotationsRisk
add_pageAdd a new page to the document
Input schema
{
  "type": "object",
  "properties": {
    "position": {
      "type": "string",
      "enum": [
        "before",
        "after",
        "end"
      ],
      "default": "end"
    },
    "pageIndex": {
      "type": "number",
      "description": "Reference page index (for before/after)"
    },
    "masterPage": {
      "type": "string",
      "description": "Master page to apply"
    }
  }
}
— · —
apply_colorApply color to an object
Input schema
{
  "type": "object",
  "properties": {
    "objectIndex": {
      "type": "number",
      "description": "Object index on page"
    },
    "pageIndex": {
      "type": "number",
      "description": "Page index",
      "default": 0
    },
    "swatchName": {
      "type": "string",
      "description": "Color swatch name"
    },
    "property": {
      "type": "string",
      "enum": [
        "fill",
        "stroke"
      ],
      "default": "fill"
    }
  },
  "required": [
    "objectIndex",
    "swatchName"
  ]
}
— · —
apply_paragraph_styleApply a paragraph style to text
Input schema
{
  "type": "object",
  "properties": {
    "styleName": {
      "type": "string",
      "description": "Paragraph style name"
    },
    "frameIndex": {
      "type": "number",
      "description": "Text frame index"
    },
    "pageIndex": {
      "type": "number",
      "description": "Page index",
      "default": 0
    },
    "startIndex": {
      "type": "number",
      "description": "Start character index (optional)"
    },
    "endIndex": {
      "type": "number",
      "description": "End character index (optional)"
    }
  },
  "required": [
    "styleName",
    "frameIndex"
  ]
}
— · —
close_documentClose the current document
Input schema
{
  "type": "object",
  "properties": {
    "save": {
      "type": "boolean",
      "description": "Save before closing",
      "default": false
    }
  }
}
— · —
create_character_styleCreate a new character style
Input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Style name"
    },
    "fontFamily": {
      "type": "string",
      "description": "Font family"
    },
    "fontStyle": {
      "type": "string",
      "description": "Font style (Regular, Bold, Italic)"
    },
    "fontSize": {
      "type": "number",
      "description": "Font size in points"
    },
    "textColor": {
      "type": "string",
      "description": "Text color"
    },
    "tracking": {
      "type": "number",
      "description": "Character tracking"
    },
    "baseStyle": {
      "type": "string",
      "description": "Base style to inherit from"
    }
  },
  "required": [
    "name"
  ]
}
— · —
create_color_swatchCreate a new color swatch
Input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Swatch name"
    },
    "colorModel": {
      "type": "string",
      "enum": [
        "CMYK",
        "RGB",
        "LAB"
      ],
      "default": "CMYK"
    },
    "colorValues": {
      "type": "array",
      "description": "Color values array [C,M,Y,K] or [R,G,B]",
      "items": {
        "type": "number"
      }
    },
    "spotColor": {
      "type": "boolean",
      "description": "Create as spot color",
      "default": false
    }
  },
  "required": [
    "name",
    "colorValues"
  ]
}
— · —
create_documentCreate a new InDesign document with advanced options
Input schema
{
  "type": "object",
  "properties": {
    "preset": {
      "type": "string",
      "description": "Document preset (A4, A5, Letter, Custom, etc.)",
      "default": "A4"
    },
    "width": {
      "type": "number",
      "description": "Document width in mm (for custom preset)"
    },
    "height": {
      "type": "number",
      "description": "Document height in mm (for custom preset)"
    },
    "orientation": {
      "type": "string",
      "enum": [
        "Portrait",
        "Landscape"
      ],
      "default": "Portrait"
    },
    "pages": {
      "type": "number",
      "description": "Number of pages",
      "default": 1
    },
    "facingPages": {
      "type": "boolean",
      "description": "Enable facing pages",
      "default": false
    },
    "bleed": {
      "type": "number",
      "description": "Bleed in mm",
      "default": 0
    },
    "slug": {
      "type": "number",
      "description": "Slug area in mm",
      "default": 0
    },
    "marginTop": {
      "type": "number",
      "description": "Top margin in mm",
      "default": 20
    },
    "marginBottom": {
      "type": "number",
      "description": "Bottom margin in mm",
      "default": 20
    },
    "marginLeft": {
      "type": "number",
      "description": "Left margin in mm",
      "default": 20
    },
    "marginRight": {
      "type": "number",
      "description": "Right margin in mm",
      "default": 20
    }
  }
}
— · —
create_ellipseCreate an ellipse shape
Input schema
{
  "type": "object",
  "properties": {
    "x": {
      "type": "number",
      "description": "X position in mm"
    },
    "y": {
      "type": "number",
      "description": "Y position in mm"
    },
    "width": {
      "type": "number",
      "description": "Width in mm"
    },
    "height": {
      "type": "number",
      "description": "Height in mm"
    },
    "pageIndex": {
      "type": "number",
      "description": "Page index",
      "default": 0
    },
    "fillColor": {
      "type": "string",
      "description": "Fill color"
    },
    "strokeColor": {
      "type": "string",
      "description": "Stroke color"
    },
    "strokeWidth": {
      "type": "number",
      "description": "Stroke width in points",
      "default": 1
    }
  },
  "required": [
    "x",
    "y",
    "width",
    "height"
  ]
}
— · —
create_layerCreate a new layer
Input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Layer name"
    },
    "color": {
      "type": "string",
      "description": "Layer color for guides"
    },
    "visible": {
      "type": "boolean",
      "description": "Layer visibility",
      "default": true
    },
    "locked": {
      "type": "boolean",
      "description": "Layer locked state",
      "default": false
    }
  },
  "required": [
    "name"
  ]
}
— · —
create_paragraph_styleCreate a new paragraph style
Input schema
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Style name"
    },
    "fontFamily": {
      "type": "string",
      "description": "Font family"
    },
    "fontSize": {
      "type": "number",
      "description": "Font size in points"
    },
    "leading": {
      "type": "number",
      "description": "Leading (line spacing) in points"
    },
    "spaceBefore": {
      "type": "number",
      "description": "Space before paragraph in mm"
    },
    "spaceAfter": {
      "type": "number",
      "description": "Space after paragraph in mm"
    },
    "alignment": {
      "type": "string",
      "enum": [
        "LEFT_ALIGN",
        "CENTER_ALIGN",
        "RIGHT_ALIGN",
        "JUSTIFY"
      ]
    },
    "textColor": {
      "type": "string",
      "description": "Text color"
    },
    "baseStyle": {
      "type": "string",
      "description": "Base style to inherit from"
    }
  },
  "required": [
    "name"
  ]
}
— · —
create_rectangleCreate a rectangle shape
Input schema
{
  "type": "object",
  "properties": {
    "x": {
      "type": "number",
      "description": "X position in mm"
    },
    "y": {
      "type": "number",
      "description": "Y position in mm"
    },
    "width": {
      "type": "number",
      "description": "Width in mm"
    },
    "height": {
      "type": "number",
      "description": "Height in mm"
    },
    "pageIndex": {
      "type": "number",
      "description": "Page index",
      "default": 0
    },
    "fillColor": {
      "type": "string",
      "description": "Fill color (RGB hex or swatch name)"
    },
    "strokeColor": {
      "type": "string",
      "description": "Stroke color"
    },
    "strokeWidth": {
      "type": "number",
      "description": "Stroke width in points",
      "default": 1
    },
    "cornerRadius": {
      "type": "number",
      "description": "Corner radius in mm",
      "default": 0
    }
  },
  "required": [
    "x",
    "y",
    "width",
    "height"
  ]
}
— · —
create_tableCreate a table
Input schema
{
  "type": "object",
  "properties": {
    "x": {
      "type": "number",
      "description": "X position in mm"
    },
    "y": {
      "type": "number",
      "description": "Y position in mm"
    },
    "width": {
      "type": "number",
      "description": "Table width in mm"
    },
    "height": {
      "type": "number",
      "description": "Table height in mm"
    },
    "rows": {
      "type": "number",
      "description": "Number of rows"
    },
    "columns": {
      "type": "number",
      "description": "Number of columns"
    },
    "pageIndex": {
      "type": "number",
      "description": "Page index",
      "default": 0
    },
    "headerRows": {
      "type": "number",
      "description": "Number of header rows",
      "default": 1
    },
    "footerRows": {
      "type": "number",
      "description": "Number of footer rows",
      "default": 0
    }
  },
  "required": [
    "x",
    "y",
    "width",
    "height",
    "rows",
    "columns"
  ]
}
— · —
create_text_frameCreate a text frame with advanced formatting options
Input schema
{
  "type": "object",
  "properties": {
    "content": {
      "type": "string",
      "description": "Text content for the frame"
    },
    "x": {
      "type": "number",
      "description": "X position in mm",
      "default": 10
    },
    "y": {
      "type": "number",
      "description": "Y position in mm",
      "default": 10
    },
    "width": {
      "type": "number",
      "description": "Width in mm",
      "default": 100
    },
    "height": {
      "type": "number",
      "description": "Height in mm",
      "default": 50
    },
    "pageIndex": {
      "type": "number",
      "description": "Page index (0-based)",
      "default": 0
    },
    "fontSize": {
      "type": "number",
      "description": "Font size in points",
      "default": 12
    },
    "fontFamily": {
      "type": "string",
      "description": "Font family name",
      "default": "Helvetica Neue"
    },
    "fontStyle": {
      "type": "string",
      "description": "Font style (Regular, Bold, Italic, etc.)",
      "default": "Regular"
    },
    "textColor": {
      "type": "string",
      "description": "Text color (RGB hex or name)",
      "default": "Black"
    },
    "alignment": {
      "type": "string",
      "enum": [
        "LEFT_ALIGN",
        "CENTER_ALIGN",
        "RIGHT_ALIGN",
        "JUSTIFY"
      ],
      "default": "LEFT_ALIGN"
    },
    "paragraphStyle": {
      "type": "string",
      "description": "Paragraph style name to apply"
    },
    "characterStyle": {
      "type": "string",
      "description": "Character style name to apply"
    }
  },
  "required": [
    "content"
  ]
}
— · —
data_mergePerform data merge operation
Input schema
{
  "type": "object",
  "properties": {
    "dataSourcePath": {
      "type": "string",
      "description": "Path to CSV data source"
    },
    "outputFolder": {
      "type": "string",
      "description": "Output folder for merged documents"
    },
    "fileFormat": {
      "type": "string",
      "enum": [
        "INDD",
        "PDF",
        "BOTH"
      ],
      "default": "PDF"
    },
    "recordRange": {
      "type": "string",
      "description": "Record range (e.g., \"1-10\", \"all\")",
      "default": "all"
    }
  },
  "required": [
    "dataSourcePath",
    "outputFolder"
  ]
}
— · —
delete_pageDelete a page from the document
Input schema
{
  "type": "object",
  "properties": {
    "pageIndex": {
      "type": "number",
      "description": "Page index to delete"
    }
  },
  "required": [
    "pageIndex"
  ]
}
— · —
duplicate_pageDuplicate a page
Input schema
{
  "type": "object",
  "properties": {
    "pageIndex": {
      "type": "number",
      "description": "Page index to duplicate"
    },
    "position": {
      "type": "string",
      "enum": [
        "before",
        "after",
        "end"
      ],
      "default": "after"
    }
  },
  "required": [
    "pageIndex"
  ]
}
— · —
edit_text_frameEdit properties of an existing text frame
Input schema
{
  "type": "object",
  "properties": {
    "frameIndex": {
      "type": "number",
      "description": "Text frame index on page"
    },
    "pageIndex": {
      "type": "number",
      "description": "Page index",
      "default": 0
    },
    "content": {
      "type": "string",
      "description": "New text content"
    },
    "fontSize": {
      "type": "number",
      "description": "Font size in points"
    },
    "fontFamily": {
      "type": "string",
      "description": "Font family name"
    },
    "textColor": {
      "type": "string",
      "description": "Text color"
    },
    "alignment": {
      "type": "string",
      "enum": [
        "LEFT_ALIGN",
        "CENTER_ALIGN",
        "RIGHT_ALIGN",
        "JUSTIFY"
      ]
    }
  },
  "required": [
    "frameIndex"
  ]
}
— · —
execute_indesign_codeExecute custom ExtendScript code in InDesign
Input schema
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "description": "ExtendScript/JavaScript code to execute in InDesign"
    }
  },
  "required": [
    "code"
  ]
}
— · —
export_epubExport document as EPUB
Input schema
{
  "type": "object",
  "properties": {
    "filePath": {
      "type": "string",
      "description": "Output EPUB file path"
    },
    "version": {
      "type": "string",
      "enum": [
        "EPUB2",
        "EPUB3"
      ],
      "default": "EPUB3"
    },
    "includeImages": {
      "type": "boolean",
      "description": "Include images",
      "default": true
    },
    "imageFormat": {
      "type": "string",
      "enum": [
        "PNG",
        "JPEG",
        "GIF"
      ],
      "default": "PNG"
    }
  },
  "required": [
    "filePath"
  ]
}
— · —
export_imagesExport pages as images
Input schema
{
  "type": "object",
  "properties": {
    "folderPath": {
      "type": "string",
      "description": "Output folder path"
    },
    "format": {
      "type": "string",
      "enum": [
        "PNG",
        "JPEG",
        "TIFF",
        "GIF"
      ],
      "default": "PNG"
    },
    "resolution": {
      "type": "number",
      "description": "Export resolution in DPI",
      "default": 300
    },
    "pageRange": {
      "type": "string",
      "description": "Page range",
      "default": "all"
    },
    "includeBleed": {
      "type": "boolean",
      "description": "Include bleed area",
      "default": false
    }
  },
  "required": [
    "folderPath"
  ]
}
— · —
export_pdfExport document as PDF with advanced options
Input schema
{
  "type": "object",
  "properties": {
    "filePath": {
      "type": "string",
      "description": "Output PDF file path"
    },
    "preset": {
      "type": "string",
      "enum": [
        "Print",
        "Web",
        "SmallestFileSize",
        "HighQualityPrint",
        "PressQuality"
      ],
      "default": "HighQualityPrint"
    },
    "pageRange": {
      "type": "string",
      "description": "Page range (e.g., \"1-5\", \"all\")",
      "default": "all"
    },
    "includeBleed": {
      "type": "boolean",
      "description": "Include bleed area",
      "default": false
    },
    "includeSlug": {
      "type": "boolean",
      "description": "Include slug area",
      "default": false
    },
    "colorProfile": {
      "type": "string",
      "description": "Color profile for export"
    },
    "jpegQuality": {
      "type": "string",
      "enum": [
        "Low",
        "Medium",
        "High",
        "Maximum"
      ],
      "default": "High"
    }
  },
  "required": [
    "filePath"
  ]
}
— · —
find_replace_textFind and replace text in the document
Input schema
{
  "type": "object",
  "properties": {
    "findText": {
      "type": "string",
      "description": "Text to find"
    },
    "replaceText": {
      "type": "string",
      "description": "Replacement text"
    },
    "caseSensitive": {
      "type": "boolean",
      "description": "Case sensitive search",
      "default": false
    },
    "wholeWord": {
      "type": "boolean",
      "description": "Whole word only",
      "default": false
    },
    "useGrep": {
      "type": "boolean",
      "description": "Use GREP (regular expressions)",
      "default": false
    },
    "scope": {
      "type": "string",
      "enum": [
        "document",
        "story",
        "selection"
      ],
      "default": "document"
    }
  },
  "required": [
    "findText",
    "replaceText"
  ]
}
— · —
get_document_infoGet detailed information about the current InDesign document
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
list_color_swatchesList all color swatches in the document
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
list_layersList all layers in the document
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
list_stylesList all available styles in the document
Input schema
{
  "type": "object",
  "properties": {
    "styleType": {
      "type": "string",
      "enum": [
        "paragraph",
        "character",
        "object",
        "all"
      ],
      "default": "all"
    }
  }
}
— · —
navigate_to_pageNavigate to a specific page
Input schema
{
  "type": "object",
  "properties": {
    "pageIndex": {
      "type": "number",
      "description": "Page index to navigate to"
    }
  },
  "required": [
    "pageIndex"
  ]
}
— · —
open_documentOpen an existing InDesign document
Input schema
{
  "type": "object",
  "properties": {
    "filePath": {
      "type": "string",
      "description": "Path to the InDesign document (.indd)"
    }
  },
  "required": [
    "filePath"
  ]
}
— · —
package_documentPackage document for print production
Input schema
{
  "type": "object",
  "properties": {
    "folderPath": {
      "type": "string",
      "description": "Output folder path"
    },
    "includeLinkedFiles": {
      "type": "boolean",
      "description": "Include linked files",
      "default": true
    },
    "includeFonts": {
      "type": "boolean",
      "description": "Include fonts",
      "default": true
    },
    "createReport": {
      "type": "boolean",
      "description": "Create packaging report",
      "default": true
    }
  },
  "required": [
    "folderPath"
  ]
}
— · —
place_imagePlace an image with advanced options
Input schema
{
  "type": "object",
  "properties": {
    "imagePath": {
      "type": "string",
      "description": "Path to the image file"
    },
    "x": {
      "type": "number",
      "description": "X position in mm",
      "default": 10
    },
    "y": {
      "type": "number",
      "description": "Y position in mm",
      "default": 10
    },
    "width": {
      "type": "number",
      "description": "Width in mm (optional, maintains aspect ratio if not specified)"
    },
    "height": {
      "type": "number",
      "description": "Height in mm (optional, maintains aspect ratio if not specified)"
    },
    "pageIndex": {
      "type": "number",
      "description": "Page index",
      "default": 0
    },
    "fitOption": {
      "type": "string",
      "enum": [
        "PROPORTIONALLY",
        "FRAME_TO_CONTENT",
        "CONTENT_TO_FRAME",
        "CENTER_CONTENT"
      ],
      "default": "PROPORTIONALLY"
    },
    "createFrame": {
      "type": "boolean",
      "description": "Create frame first",
      "default": true
    }
  },
  "required": [
    "imagePath"
  ]
}
— · —
populate_tablePopulate table with data
Input schema
{
  "type": "object",
  "properties": {
    "tableIndex": {
      "type": "number",
      "description": "Table index on page"
    },
    "pageIndex": {
      "type": "number",
      "description": "Page index",
      "default": 0
    },
    "data": {
      "type": "array",
      "description": "Array of arrays with table data",
      "items": {
        "type": "array"
      }
    },
    "includeHeaders": {
      "type": "boolean",
      "description": "First row contains headers",
      "default": true
    }
  },
  "required": [
    "tableIndex",
    "data"
  ]
}
— · —
preflight_documentRun preflight check on the document
Input schema
{
  "type": "object",
  "properties": {
    "profile": {
      "type": "string",
      "description": "Preflight profile name"
    },
    "scope": {
      "type": "string",
      "enum": [
        "document",
        "selection"
      ],
      "default": "document"
    }
  }
}
— · —
save_documentSave the current document
Input schema
{
  "type": "object",
  "properties": {
    "filePath": {
      "type": "string",
      "description": "Optional: Save as new file path"
    }
  }
}
— · —
set_active_layerSet the active layer
Input schema
{
  "type": "object",
  "properties": {
    "layerName": {
      "type": "string",
      "description": "Layer name to activate"
    }
  },
  "required": [
    "layerName"
  ]
}
— · —
view_documentGet visual representation and detailed info about the current document
Input schema
{
  "type": "object",
  "properties": {}
}
— · —
zoom_to_pageZoom and fit page in view
Input schema
{
  "type": "object",
  "properties": {
    "pageIndex": {
      "type": "number",
      "description": "Page index to zoom to"
    },
    "fitOption": {
      "type": "string",
      "enum": [
        "FIT_PAGE",
        "FIT_SPREAD",
        "ACTUAL_SIZE",
        "ZOOM_TO_SELECTION"
      ],
      "default": "FIT_PAGE"
    }
  }
}
— · —

Resources 0

Resource templates 0

Prompts 0

Let’s talk about MCP security.

Share your details and our security team will contact you.