indesign-cli MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| add_item_to_groupB | Add a page item to an existing group |
| add_pageC | Add a new page to the document |
| adjust_page_layoutC | Adjust page layout with new dimensions and margins |
| apply_character_styleB | Apply a character style to text |
| apply_colorC | Apply color to an object |
| apply_master_spreadB | Apply a master spread to pages |
| apply_object_styleB | Apply an object style to a page item |
| apply_paragraph_styleC | Apply a paragraph style to text |
| clear_sessionA | Clear all session data including page dimensions and document information |
| close_documentA | Close a document only when the target is unambiguous. Modified documents require allowDiscard. |
| create_character_styleC | Create a character style |
| create_color_swatchC | Create a color swatch |
| create_documentC | Create a new document |
| create_document_hyperlinkC | Create a hyperlink in the document |
| create_document_sectionC | Create a new section in the document |
| create_ellipseB | Create an ellipse on the active page |
| create_groupC | Create a group from currently selected items |
| create_group_from_itemsA | Create a group from specific page items by their indices |
| create_layerC | Create a new layer |
| create_master_guidesC | Create guides on a master spread |
| create_master_rectangleB | Create a rectangle on a master spread |
| create_master_spreadC | Create a new master spread |
| create_master_text_frameB | Create a text frame on a master spread |
| create_object_styleC | Create an object style for consistent formatting |
| create_page_guidesC | Create guides on a page |
| create_paragraph_styleC | Create a paragraph style |
| create_polygonC | Create a polygon on the active page |
| create_rectangleB | Create a rectangle on the active page |
| create_spread_guidesC | Create guides on a spread |
| create_tableB | Create a table on the active page |
| create_text_frameB | Create a text frame on the active page |
| delete_all_page_layout_snapshotsB | Delete all layout snapshots for a page |
| delete_master_spreadC | Delete a master spread |
| delete_pageB | Delete a page from the document |
| delete_page_itemC | Delete a page item |
| delete_page_layout_snapshotB | Delete the layout snapshot for a page |
| delete_spreadC | Delete a spread |
| detach_master_itemsC | Detach master page items from a page |
| duplicate_master_spreadC | Duplicate a master spread |
| duplicate_pageC | Duplicate a page |
| duplicate_page_itemC | Duplicate a page item |
| duplicate_spreadC | Duplicate a spread |
| edit_text_frameC | Edit an existing text frame |
| execute_indesign_codeB | Execute custom InDesign ExtendScript code |
| export_epubB | Export document to EPUB |
| export_imagesC | Export pages as images |
| export_pdfC | Export document to PDF |
| find_replace_textB | Find and replace text in the document |
| find_text_in_documentC | Find text across the entire document |
| get_document_colorsC | Get all colors and swatches in the document |
| get_document_elementsB | Get all elements in the document |
| get_document_grid_settingsA | Get comprehensive grid settings for the document |
| get_document_hyperlinksB | Get all hyperlinks in the document |
| get_document_infoB | Get information about the active document |
| get_document_layersC | Get all layers in the document |
| get_document_layout_preferencesC | Get layout preferences and settings for the document |
| get_document_preferencesC | Get document preferences and settings |
| get_document_sectionsA | Get all sections in the document |
| get_document_storiesB | Get all stories in the document |
| get_document_stylesC | Get all styles in the document |
| get_group_infoC | Get detailed information about a group |
| get_image_infoC | Get detailed information about an image |
| get_master_spread_infoC | Get detailed information about a master spread |
| get_page_content_summaryB | Get a summary of content on a page |
| get_page_infoB | Get detailed information about a specific page |
| get_page_item_infoC | Get detailed information about a specific page item |
| get_page_item_script_labelsB | Read script labels from page items using selection or explicit identifiers |
| get_session_infoA | Get current session information including page dimensions and active document |
| get_spread_content_summaryC | Get a summary of content on a spread |
| get_spread_infoB | Get detailed information about a specific spread |
| helpA | Get help information about available tools and their usage |
| list_color_swatchesB | List all color swatches |
| list_groupsC | List all groups on a specific page |
| list_layersB | List all layers in the document |
| list_master_spreadsA | List all master spreads in the document |
| list_object_stylesA | List all object styles in the document |
| list_page_itemsB | List all page items on a specific page |
| list_spreadsA | List all spreads in the document |
| list_stylesC | List all paragraph and character styles |
| move_pageC | Move a page to a different position |
| move_page_itemB | Move a page item to a new position |
| move_spreadC | Move a spread to a different position |
| navigate_to_pageC | Navigate to a specific page |
| open_documentC | Open an existing document |
| organize_document_layersC | Organize and clean up document layers |
| package_documentC | Package document for printing |
| place_file_on_pageC | Place a file on a page |
| place_file_on_spreadC | Place a file on a spread |
| place_imageC | Place an image on the active page with scaling and fitting options |
| place_xml_on_pageC | Place XML content on a page |
| populate_tableC | Populate a table with data |
| reframe_pageC | Reframe (resize) a page |
| remove_item_from_groupB | Remove a page item from a group |
| remove_master_overrideC | Remove override from a master page item |
| resize_pageC | Resize a page |
| resize_page_itemD | Resize a page item |
| save_documentC | Save the active document |
| select_pageD | Select a page |
| select_page_itemB | Select a specific page item |
| select_spreadC | Select a spread |
| set_active_layerC | Set the active layer |
| set_document_grid_settingsB | Set comprehensive grid settings for the document |
| set_document_layout_preferencesC | Set layout preferences for the document |
| set_document_preferencesC | Set document preferences |
| set_group_propertiesC | Set properties of a group |
| set_page_backgroundA | Set page background by creating a full-page rectangle with specified color |
| set_page_item_propertiesC | Set properties of a page item |
| set_page_item_script_labelC | Overwrite the script label for targeted page items |
| set_page_propertiesC | Set properties for a page |
| set_spread_propertiesC | Set properties for a spread |
| snapshot_page_layoutB | Create a snapshot of the current page layout |
| ungroupC | Ungroup a group, releasing all its items |
| view_documentC | View document information and current state |
| zoom_to_pageC | Zoom to fit page in view |
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 114 tools
Several tool pairs have overlapping boundaries: get_document_layers/list_layers, get_document_styles/list_styles, get_document_colors/list_color_swatches, and reframe_page/resize_page appear to target the same resource/action. The get_document_info/get_session_info/view_document trio also creates ambiguity, making it hard for an agent to reliably select the intended tool.
Most tools follow a consistent snake_case verb_noun pattern such as create_, get_, set_, delete_, and export_. Minor deviations exist though: equivalent listing operations are split between get_document_* and list_* names, and find_replace_text doesn't match the pattern of find_text_in_document.
With 114 tools, this server presents an extreme mismatch for a typical MCP surface, far exceeding the 50+ tool threshold. Even for a complex application like InDesign, the sheer number creates significant selection overhead and makes the toolset difficult for agents to navigate effectively.
The server covers a broad range of document, page, spread, item, and style operations, but lifecycle coverage is uneven. Colors, hyperlinks, sections, and styles can typically be created and queried but not updated or deleted, leaving clear dead ends in several workflows.