io.github.zachshallbetter/adobe-mcp-illustrator·Media

Illustrator MCP Server

Drive Adobe Illustrator from any MCP client: artboards, layers, shapes, text, colour and export.

Stars
24
Version
0.3.0
License
MIT
Review
Passed
Language
JavaScript
Last commit
59m ago
Forks
9
Open issues
0
Registry update
Oct 15, 2026
adobe-indesignai-agentsanthropicapplescriptclaudecreative-automationdesign-automationextendscriptindesignlayout-automationmcpmcp-server

Connect

npm
Terminal
$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_NAME

    macOS only: address a specific copy, e.g. "Adobe Illustrator 2025". Default: Illustrator by bundle id

  • ILLUSTRATOR_ALLOWED_DIRS

    Extra directories allowed for file operations (':' on macOS, ';' on Windows)

  • ILLUSTRATOR_SCRIPT_TIMEOUT_MS

    How long to wait for Illustrator before reporting that a dialog may be open. Default 120000

Security review

Review passed

Reviewed 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 from list_items and 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, so create_document asks for it.
  • Fonts are PostScript names; list_fonts finds them.
  • Files must be inside your home folder or a directory in ILLUSTRATOR_ALLOWED_DIRS.

Tools

AreaTools
Documentsget_document_info, list_documents, create_document, open_document, save_document, close_document
Artboardslist_artboards, add_artboard, set_artboard, delete_artboard, set_active_artboard, fit_artboard_to_artwork, rearrange_artboards
Layerslist_layers, create_layer, set_layer_properties, set_active_layer, delete_layer, move_items_to_layer
Shapes and pathscreate_rectangle, create_ellipse, create_polygon, create_star, create_line, create_path
Textcreate_text, set_text_style, set_text_contents, convert_text_to_outlines, list_fonts
Appearance and colourset_fill, set_stroke, set_opacity, get_appearance, list_swatches, create_swatch, create_gradient
Selecting and arranginglist_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
Combiningmake_clipping_mask, make_compound_path, pathfinder
Effectsapply_effect (drop shadow, offset path, round corners, roughen, transform, Gaussian blur)
Preferences and toolsget_preferences, set_preferences, select_tool
Placing and exportplace_image, export_png, export_svg, export_for_screens, export_pdf
Utilityillustrator_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_command accepts only the 859 known names (unless you pass allowUnknown) 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_effect and pathfinder pass to applyEffect, nor the preference keys behind set_preferences; the server uses only parameters and keys that published scripts rely on, recorded with their sources in the capability atlas. pathfinder can fall back to Illustrator's menu commands with method: "menu".
  • No raw input in scripts. Every value a caller passes is validated and written into the script as a literal.

Configuration

VariablePurpose
ILLUSTRATOR_APP_NAMEmacOS: address a specific copy, e.g. Adobe Illustrator 2025. By default the server addresses Illustrator by its bundle id.
ILLUSTRATOR_ALLOWED_DIRSExtra directories for opening, placing and exporting files (:-separated on macOS, ; on Windows).
ILLUSTRATOR_SCRIPT_TIMEOUT_MSHow 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

MIT. See LICENSE and NOTICE for the menu command data.

From the server's repository — third-party content, read it before running anything it suggests.

More in Media

Listing from the official MCP Registry · repository facts from GitHub, 43m ago.