- Language
- JavaScript
- Last commit
- 59m ago
- Forks
- 9
- Open issues
- 0
- Registry update
- Oct 15, 2026
Connect
npm$claude mcp add adobe-mcp-illustrator \ -e ILLUSTRATOR_APP_NAME=<illustrator-app-name> \ -e ILLUSTRATOR_ALLOWED_DIRS=<illustrator-allowed-dirs> \ -e ILLUSTRATOR_SCRIPT_TIMEOUT_MS=<illustrator-script-timeout-ms> \ -- npx -y [email protected]
Environment variables
ILLUSTRATOR_APP_NAMEmacOS only: address a specific copy, e.g. "Adobe Illustrator 2025". Default: Illustrator by bundle id
ILLUSTRATOR_ALLOWED_DIRSExtra directories allowed for file operations (':' on macOS, ';' on Windows)
ILLUSTRATOR_SCRIPT_TIMEOUT_MSHow long to wait for Illustrator before reporting that a dialog may be open. Default 120000
Security review
Review passedReviewed 41m ago.
- metadata
- scanned
- packages
- 1 checked
No findings.
Tools
This server runs on your machine, so its tool list is not fetched before install — the README below describes what it offers.
Illustrator MCP Server
An MCP server that drives Adobe Illustrator: documents, artboards, layers, shapes and paths, text, colour, pathfinder operations and export. It runs on the machine where Illustrator is installed and talks to it through ExtendScript, the scripting interface Illustrator ships with.
Requires Illustrator 2023 or later on macOS or Windows, and Node.js 18 or later.
Install
Claude Code:
claude mcp add illustrator -- npx -y adobe-mcp-illustrator
Any client that reads an mcpServers block (Claude Desktop, Cursor, Warp, …):
{
"mcpServers": {
"illustrator": {
"command": "npx",
"args": ["-y", "adobe-mcp-illustrator"]
}
}
}
On macOS the first call asks for permission to control Illustrator (System Settings > Privacy & Security > Automation).
Conventions
- Positions and sizes are points (72 pt = 1 in), measured from the top-left
corner of an artboard (
artboardIndex, default 0), with y increasing downward. Illustrator's own document coordinates run upward; the server converts both ways and accounts for large-canvas documents. - Items are chosen with
target:{ ids: [...] },{ names: [...] }or{ selection: true }. Ids are Illustrator's own item ids (PageItem.uuid); they come fromlist_itemsand from every tool that creates artwork. - Colours are a swatch name,
"#RRGGBB","rgb(r,g,b)","cmyk(c,m,y,k)","gray(g)"or"none". A document's colour mode is fixed when it is created, socreate_documentasks for it. - Fonts are PostScript names;
list_fontsfinds them. - Files must be inside your home folder or a directory in
ILLUSTRATOR_ALLOWED_DIRS.
Tools
| Area | Tools |
|---|---|
| Documents | get_document_info, list_documents, create_document, open_document, save_document, close_document |
| Artboards | list_artboards, add_artboard, set_artboard, delete_artboard, set_active_artboard, fit_artboard_to_artwork, rearrange_artboards |
| Layers | list_layers, create_layer, set_layer_properties, set_active_layer, delete_layer, move_items_to_layer |
| Shapes and paths | create_rectangle, create_ellipse, create_polygon, create_star, create_line, create_path |
| Text | create_text, set_text_style, set_text_contents, convert_text_to_outlines, list_fonts |
| Appearance and colour | set_fill, set_stroke, set_opacity, get_appearance, list_swatches, create_swatch, create_gradient |
| Selecting and arranging | list_items, get_selection, select_items, deselect_all, delete_items, duplicate_items, move_items, scale_items, rotate_items, reflect_items, align_items, arrange_items, group_items, ungroup_items |
| Combining | make_clipping_mask, make_compound_path, pathfinder |
| Effects | apply_effect (drop shadow, offset path, round corners, roughen, transform, Gaussian blur) |
| Preferences and tools | get_preferences, set_preferences, select_tool |
| Placing and export | place_image, export_png, export_svg, export_for_screens, export_pdf |
| Utility | illustrator_status, execute_menu_command, find_menu_commands, execute_illustrator_code, help |
help({ tool }) describes any tool's parameters.
How it stays out of your way
- No dialogs. Every script switches Illustrator's alerts off while it runs and restores your setting afterwards, even when the script fails, so a warning cannot leave a call waiting.
- Your settings come back. The coordinate system a script uses is set for that script and restored afterwards.
- Timeouts say why. If Illustrator does not answer within
ILLUSTRATOR_SCRIPT_TIMEOUT_MS(default 120 s), the error says a dialog is probably open in Illustrator. - Menu commands are checked. Illustrator ignores a menu command name it does
not know and reports nothing for one it does.
execute_menu_commandaccepts only the 859 known names (unless you passallowUnknown) and returns the selection and document state after the command, so you can see what it did. - Live Effects and preferences come from published practice. Adobe does not
document the LiveEffect XML that
apply_effectandpathfinderpass toapplyEffect, nor the preference keys behindset_preferences; the server uses only parameters and keys that published scripts rely on, recorded with their sources in the capability atlas.pathfindercan fall back to Illustrator's menu commands withmethod: "menu". - No raw input in scripts. Every value a caller passes is validated and written into the script as a literal.
Configuration
| Variable | Purpose |
|---|---|
ILLUSTRATOR_APP_NAME | macOS: address a specific copy, e.g. Adobe Illustrator 2025. By default the server addresses Illustrator by its bundle id. |
ILLUSTRATOR_ALLOWED_DIRS | Extra directories for opening, placing and exporting files (:-separated on macOS, ; on Windows). |
ILLUSTRATOR_SCRIPT_TIMEOUT_MS | How long to wait for Illustrator. Default 120000. |
Development
npm test # definitions, argument parsing, protocol, and the static script audit
npm run audit # the audit alone, with findings listed
npm run check # syntax check
The static audit runs every tool with sample arguments against a stubbed Illustrator and checks that each generated script parses as ES5 and uses only names in Illustrator's scripting object model (2022 to 2025). It does not run anything in Illustrator: a tool that passes it has not necessarily been run against the application.
Shared infrastructure (script escaping, the executor, the server shell, the audit) comes from adobe-mcp-core, the foundation shared with adobe-mcp-indesign.
Licence
From the server's repository — third-party content, read it before running anything it suggests.
More in Media
Adobe MCP Suite
io.github.zachshallbetter
Drive Adobe InDesign and Illustrator from one MCP server, with tools that work across both.
fontpool
io.github.travisvaleri
Search fonts by category, tag and variable axis across three providers, then self-host them.
Frugal Blender MCP
io.github.mohakmalviya
Let AI agents build Blender scenes with four compact tools: discover, execute, inspect, capture.
Modisign
io.github.slvDev
Make animated overlays and edit short videos with Modisign. Everything renders on your computer.
NoaCG Broadcast Graphics and Playout
io.github.NoaCG
Make broadcast graphics for NoaCG Studio and play them out live on CasparCG, OBS, vMix or OGraf.
thicken
io.github.bikemeardsley
Photos in: a 3D model at the object's real size and its metadata as JSON, for any kind of object.
Listing from the official MCP Registry · repository facts from GitHub, 43m ago.