InDesign MCP para Windows
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| INDESIGN_PROGID | No | COM ProgID for InDesign. Use e.g. InDesign.Application.2026 to select a specific version. | InDesign.Application |
| INDESIGN_TIMEOUT_MS | No | Timeout for each COM execution in milliseconds (1000-1800000). Adjust client timeout as well. | 60000 |
| INDESIGN_ALLOWED_DIRS | No | Semicolon-separated list of allowed directories on Windows. Overrides default when set. | user's home directory |
| INDESIGN_ALLOW_ARBITRARY_CODE | No | Set to 1 to enable execute_indesign_code for trusted ExtendScript code. | 0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_document_infoB | Get detailed information about the current InDesign document |
| create_documentB | Create a new InDesign document with advanced options |
| open_documentB | Open an existing InDesign document |
| save_documentB | Save the current document |
| close_documentC | Close the current document |
| add_pageB | Add a new page to the document |
| delete_pageB | Delete a page from the document |
| duplicate_pageC | Duplicate a page |
| navigate_to_pageC | Navigate to a specific page |
| get_selected_objectsA | Get information about currently selected objects in InDesign. ESSENTIAL for working with user-selected text frames. |
| get_text_contentA | Extract raw text content from selected text frame, insertion point, or specific frame. Automatically handles different selection types and normalizes line breaks to spaces. RECOMMENDED for text extraction. |
| list_text_framesA | List all text frames on a page with their indices, content preview, and selection status |
| analyze_embedded_objectsC | Analyze embedded objects (MathML formulas, graphics, etc.) in selected text frame or specified frame |
| insert_markdown_textA | Insert markdown text into a text frame with automatic formatting using existing paragraph and character styles. Supports # headers, bold, italic, etc. |
| fix_typography_in_selectionA | Fix typography in selected text or story. Corrects dates (DD.MM.YYYY with thin spaces), quotes, dashes, and other typographic elements. |
| find_typography_issuesC | Analyze text for common typography issues (wrong spaces in dates, straight quotes, double spaces, etc.) |
| clean_imported_textB | Clean imported text from common typography sins: double paragraph breaks, line breaks instead of paragraphs, trailing spaces, hyphens instead of dashes, manual formatting, bullet lists, hardcoded chapter numbers, etc. |
| analyze_text_problemsA | Analyze imported text for common problems before cleaning. Shows what issues exist. |
| list_grep_searchesB | List all saved GREP searches in the document (like DATUM search for dates) |
| create_text_frameC | Create a text frame with advanced formatting options |
| edit_text_frameB | Edit properties of an existing text frame. WORKFLOW: First use list_text_frames() or get_selected_objects() to find the correct frameIndex. |
| find_replace_textC | Find and replace text in the document |
| place_imageC | Place an image with advanced options |
| create_rectangleC | Create a rectangle shape |
| create_ellipseC | Create an ellipse shape |
| create_paragraph_styleC | Create a new paragraph style |
| modify_paragraph_styleA | Modify properties of an existing paragraph style |
| create_character_styleC | Create a new character style |
| modify_character_styleB | Modify properties of an existing character style |
| create_object_styleC | Create a new object style |
| modify_object_styleB | Modify properties of an existing object style |
| apply_object_styleB | Apply an object style to selected objects |
| apply_paragraph_styleB | Apply a paragraph style to text |
| list_stylesC | List all available styles in the document |
| create_color_swatchB | Create a new color swatch |
| list_color_swatchesA | List all color swatches in the document |
| apply_colorC | Apply color to an object |
| create_tableC | Create a table |
| populate_tableC | Populate table with data |
| create_layerC | Create a new layer |
| set_active_layerC | Set the active layer |
| list_layersA | List all layers in the document |
| export_pdfC | Export document as PDF with advanced options |
| export_imagesC | Export pages as images |
| export_epubC | Export document as EPUB |
| package_documentC | Package document for print production |
| execute_indesign_codeA | ⚠️ Execute custom ExtendScript code in InDesign (REQUIRES INDESIGN_ALLOW_ARBITRARY_CODE=1) |
| preflight_documentC | Run preflight check on the document |
| view_documentB | Get visual representation and detailed info about the current document |
| zoom_to_pageC | Zoom and fit page in view |
| data_mergeD | Perform data merge operation |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 51 tools
Several tools have overlapping purposes, especially the typography/text-cleaning cluster: find_typography_issues vs analyze_text_problems and fix_typography_in_selection vs clean_imported_text are hard to distinguish in intent. get_text_content/list_text_frames and view_document/get_document_info also create ambiguity, so agents may misselect tools.
The vast majority of tools follow a snake_case verb_noun pattern (create_document, export_pdf, list_styles), which is highly consistent. Minor deviations like data_merge, edit_text_frame vs modify_*, and view_document vs get_document_info prevent a perfect score.
51 tools is far beyond the well-scoped 3-15 range and falls into the extreme 50+ category. Even for a broad InDesign automation server, this surface is overwhelming and would benefit from consolidation into fewer, higher-level operations.
The server covers document lifecycle, pages, text, styles, layers, colors, tables, and exports comprehensively, including preflight and packaging. However, many resource types lack delete operations (styles, layers, text frames, objects) and there is no list_pages or direct text setter, leaving notable lifecycle gaps.