mcp-indesign-agent
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| INDESIGN_BRIDGE | No | Bridge type to use (e.g., 'applescript'). Default: 'applescript'. | applescript |
| INDESIGN_APP_NAME | No | The name of the InDesign application (e.g., 'Adobe InDesign 2026'). Defaults to the highest version found in /Applications. | |
| INDESIGN_TEMP_DIR | No | Temporary directory for the MCP server. Default: tmpdir/mcp-indesign-agent. | tmpdir/mcp-indesign-agent |
| INDESIGN_SCRIPT_TIMEOUT_SEC | No | Timeout in seconds for InDesign script execution. Default: '300'. | 300 |
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 | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ping_indesignA | Check if Adobe InDesign is reachable (app open, version, active document). Call first in a session before scan_document. |
| scan_documentA | Scan the active InDesign document into the session Document Model cache and write stable mcp: labels. Call ONCE per session before planning edits; then use execute_batch (not repeated scans). |
| refresh_documentA | Invalidate and reload the Document Model from InDesign. Use only after manual edits in InDesign or when the cache may be stale — not before every mutation. |
| get_document_modelA | Return a summary of the cached Document Model without rescanning InDesign (unless forceRefresh or cache empty). |
| get_selectionB | Read the current InDesign selection as stable UUIDs and sync them into the session cache. |
| analyze_pageA | Classify page items into semantic roles (Header, Subtitle, Body, Caption, Image, Background, Logo, Decorative, Unknown) and store them on the Document Model. Call after scan_document so batch targets like {role:"Header"} work. Typical flow: scan → analyze_page → execute_batch → summarize_changes. |
| snapshotA | Capture or inspect Document Model snapshots. Modes: before | after | list | diff. Capture uses the current session cache (run scan_document first). |
| summarize_changesA | Diff snapshot before vs after into agent-readable summary. Call after execute_batch (or layout_assistant fix). Defaults to the last before/after pair from scan_document + batch. |
| preview_batchA | Dry-run a batch against the cached Document Model (no InDesign writes). Call after scan_document. Prefer preview_batch before a large execute_batch. |
| execute_batchA | Preferred mutation path: resolve targets → checkpoint gate → one dispatcher round-trip inside a single ENTIRE_SCRIPT undo transaction → modelPatch on cache. ALWAYS prefer this over execute_operation / layout_operation when combining ops. Mutating batches need an on-disk checkpoint for the current generation; the server takes one automatically and refuses the batch if saving it fails. Typical flow: scan_document → (analyze_page) → execute_batch → summarize_changes. |
| execute_operationA | Thin single-op wrapper around execute_batch (checkpoint/move/resize/delete/duplicate/setText/replaceText/setFont/setFill/applyStyle). op=checkpoint saves an .indd copy to _checkpoints/ next to the document and needs no target — run it before a risky sequence of edits. Prefer execute_batch when issuing two or more ops. |
| layout_operationA | Layout helpers: align | distribute | center | stack | applyMargins. Thin wrapper — prefer execute_batch when combining with other ops. Requires scan_document; role targets need analyze_page. |
| layout_assistantA | Diagnose or fix page layout (overlapping/tight text, items outside margins). Modes: diagnose | preview | fix. Prefer after scan_document (+ analyze_page for title roles). Units are points. fix applies via execute_batch. |
| list_stylesA | List paragraph / character / object styles from the Document Model cache (or refresh from InDesign). Prefer after scan_document; use apply_style / execute_batch applyStyle to apply. |
| apply_styleA | Apply a paragraph, character, or object style to target item(s). Prefer execute_batch when combining with other ops. |
| create_styleB | Create a paragraph/character/object style (from selection item, basedOn, and/or font size spec). |
| update_styleB | Update an existing style definition (spec, basedOn, rename, or copy from an item). |
| list_assetsA | List placed links/assets (path, status, page) from cache or refresh from InDesign. |
| check_missing_linksB | Report missing / inaccessible / out-of-date links in the active document. |
| relink_assetB | Relink a placed asset to a new file path on disk. |
| replace_assetB | Replace a placed asset with another file (same as relink_asset). |
| embed_assetB | Embed a linked asset into the document (unlink from disk). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/anananaTERRA/mcp-indesign-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server