Skip to content

MCP servers › io.github.zachshallbetter › adobe-mcp-illustrator

MCP server · registry snapshot 2026-10-23 · last tested 2026-10-23

io.github.zachshallbetter/adobe-mcp-illustrator

Drive Adobe Illustrator from any MCP client: artwork, type, colour, effects, data and export. — the publisher's description

9 of 9 record checks metRead-only · tools listed 2026-10-23Topic: media-and-design · AI-classifiedversion 0.9.0JavaScriptMITstandard input/output308 tools

Summary

io.github.zachshallbetter/adobe-mcp-illustrator is a local MCP server listed in the official MCP registry at version 0.9.0. On 2026-10-23 ProtocolProbe started its published package in an isolated sandbox in read-only mode and read its inventory: 308 tools, 0 resources and 0 prompts.

Record checks

9 of 9 record checks met

  • met: Registry entry is active and says how to run it
  • met: Source repository link opens
  • met: Repository is not archived
  • met: Code pushed to the repository in the 90 days before our check
  • met: Repository publishes a security policy (SECURITY.md)
  • met: Package names its licence with a standard (SPDX) identifier
  • met: The version the registry lists can be installed and is not withdrawn
  • met: npm package carries build provenance (attestation)
  • met: No known critical or high advisory in the package or its dependencies
  • #8,592 of 15,112 packages by monthly downloads, tied with 22 others
  • #1,622 of 22,952 repositories by GitHub stars, tied with 34 others (repository shared with 5 other registry entries)
  • #924 of 1,074 packages meeting all 9 record checks, by downloads, tied with 1 other

From public records, not a safety rating. Each check with its reason · Is it safe to install?

Key facts

Runs
local package
Transport
standard input/output
Package
npm · listed version current
License
MIT
Dependencies
no known high or critical advisories
Repository
public
Tools
308
Described as changing data
154 of 308 toolsAI-classified
Mainly works on
files and code on the machine it runs onAI-classified
Topic
media-and-designAI-classified
Last tested
2026-10-23

Add to your client

Worth knowing before you connect it

  • 154 tools are described as changing something (create_document, open_document, save_document, …): our AI model's reading of the descriptions, not something we tested. We did not call them.
  • Its package is signed and carries a build record naming its source.

Each line comes from a section below, with its source and date.

How fresh this is

Live-tested
yes, a real session (not a text-only review)
Last tested
2026-10-23
Mode
read-only (no tool calls)
Latest version
0.9.0, published 2026-10-15 (registry, as of the 2026-10-23 snapshot)
First listed version
2026-10-14 (earliest version still in the registry; older removed versions would be earlier)
Version history
9 versions listed, 2026-10-14 to 2026-10-15; 9 in the 90 days before the 2026-10-23 snapshot.
Most recent 9 versions
  • 0.9.0 · 2026-10-15
  • 0.8.0 · 2026-10-15
  • 0.7.0 · 2026-10-15
  • 0.6.0 · 2026-10-15
  • 0.5.0 · 2026-10-15
  • 0.4.0 · 2026-10-15
  • 0.3.0 · 2026-10-15
  • 0.2.0 · 2026-10-15
  • 0.1.0 · 2026-10-14
(versions still listed in the registry only)
Registry data
snapshot 2026-10-23
Package and repository
checked 2026-10-23
Engine
mcp-runtime-engine@0.1.0 · sdk@1.32.0

Changes since the last refresh

New in the registry: not in the list of 2026-10-04, listed on 2026-10-23 with version 0.9.0 (published 2026-10-15).

Source: the official MCP Registry list on 2026-10-04 and on 2026-10-23.

What it is

What does this server offer?

Observed inventory
308tools
0resources
0prompts

What it mainly works on, as our AI model read its tool descriptions: files and code on the machine it runs on.

154 of 308 tools are described as changing something (creating, editing, deleting, sending or running). For 122 the reading was uncertain, so no mark is shown.

  • get_document_infoon 8 other serversreads or searches

    “Describe the active document: name, file, colour mode, artboards with their sizes, layers, item counts and selection”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    Takes no inputs.

  • list_documentson 48 other serversreads or searches

    “List the open documents and which one is active”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    Takes no inputs.

  • create_documenton 23 other serverscreates or changes datadescribed as changing data

    “Create a document.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    7 inputs, 1 required
    • colorModestringrequired“CMYK for print, RGB for screen”
    • widthnumber“Artboard width in points (72 pt = 1 in).”
    • heightnumber“Artboard height in points.”
    • artboardsinteger“Number of artboards.”
    • artboardLayoutstring“How several artboards are arranged.”
    • artboardSpacingnumber“Space between artboards in points.”
    • columnsinteger“Columns (or rows, for column layouts) in a grid”
  • open_documenton 10 other serversreads or searchesdescribed as changing data

    “Open a file as a new document (File > Open): Illustrator (.ai, .ait template), PDF, EPS, SVG/SVGZ, AutoCAD DWG/DXF, images (PSD, TIFF, PNG, JPEG, JPEG 2000, GIF, BMP, WebP, AVIF, HEIC, TGA, PCX, PXR)…”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    3 inputs, 1 required
    • filePathstringrequired“Absolute path”
    • pdfobject“PDF files only (the PDF Import Options dialog)”
    • autocadobject“DWG and DXF files only (the DXF/DWG Options dialog)”
  • save_documenton 8 other serverscreates or changes datadescribed as changing data

    “Save the active document.”

    Publisher declares: read-only no · destructive yes · idempotent yes · open-world no

    17 inputs
    • filePathstring“Absolute .ai or .eps path.”
    • compatibilitystring“Illustrator version to save for: 24 = Illustrator 2020 and later (default), 17 = CC, 16 = CS6”
    • separateArtboardsboolean“Also save each artboard to its own file, named after the artboard.”
    • artboardsstring“With separateArtboards: the artboards to save, 1-based: "1", "1-3,5".”
    • embedLinkedFilesboolean“Embed linked images.”
    • pdfCompatibleboolean“.ai: embed a PDF-compatible copy so other apps can preview it.”
    • compressedboolean“.ai: compress the file.”
    • embedIccProfileboolean“.ai: embed the document's colour profile.”
    • fontSubsetThresholdnumber“.ai: subset embedded fonts when less than this percent of their characters is used.”
    • previewstring“.eps: preview format.”
    • postScriptinteger“.eps: PostScript level.”
    • embedFontsboolean“.eps: include document fonts.”
    • cmykPostScriptboolean“.eps: include CMYK PostScript in RGB files.”
    • compatibleGradientPrintingboolean“.eps: rasterise gradients and meshes for older PostScript printers.”
    • thumbnailsboolean“.eps: include a thumbnail.”
    • overprintstring“.eps: keep or discard overprints.”
    • transparencystring“Saving for Illustrator 8 or 3 only, which have no transparency: preserve_paths (discard transparency) or preserve_appearance (flatten it)”
  • close_documenton 9 other serversdeletesdescribed as changing data

    “Close the active document.”

    Publisher declares: read-only no · destructive yes · idempotent no · open-world no

    1 input
    • saveboolean“Save before closing.”
  • list_artboardsreads or searches

    “List artboards with their position and size in points.”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    Takes no inputs.

  • add_artboardcreates or changes datadescribed as changing data

    “Add an artboard.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    5 inputs, 4 required
    • xnumberrequired
    • ynumberrequired
    • widthnumberrequired
    • heightnumberrequired
    • namestring
  • set_artboardcreates or changes datadescribed as changing data

    “Rename, move or resize an artboard, or switch it between portrait and landscape (Object > Artboards > Switch Orientation).”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    8 inputs, 1 required
    • artboardIndexintegerrequired“Artboard index (0-based).”
    • namestring
    • xnumber
    • ynumber
    • widthnumber
    • heightnumber
    • orientationstring“Swap width and height to make it portrait or landscape, or switch whichever it is.”
    • scaleArtworkboolean“Scale and move the artwork whose centre lies on the artboard along with it.”
  • delete_artboarddeletesdescribed as changing data

    “Delete an artboard.”

    Publisher declares: read-only no · destructive yes · idempotent no · open-world no

    1 input, 1 required
    • artboardIndexintegerrequired“Artboard index (0-based).”
  • set_active_artboardcreates or changes datadescribed as changing data

    “Make an artboard active (the one Illustrator's artboard commands and menu commands act on)”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    1 input, 1 required
    • artboardIndexintegerrequired“Artboard index (0-based).”
  • fit_artboard_to_artworkcreates or changes datadescribed as changing data

    “Resize an artboard to the bounds of the given artwork (Object > Artboards > Fit to Selected Art), or without target, to all the artwork on it (Fit to Artwork Bounds)”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    2 inputs, 1 required
    • artboardIndexintegerrequired“Artboard index (0-based).”
    • targetobject“Fit to these items.”
Show 88 more tools
  • rearrange_artboardscreates or changes datadescribed as changing data

    “Arrange all artboards in a grid, row or column”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    4 inputs
    • layoutstring“Default GridByRow”
    • columnsinteger“Columns (rows for column layouts).”
    • spacingnumber“Points between artboards.”
    • moveArtworkboolean“Move artwork with its artboard.”
  • list_layerson 15 other serversreads or searches

    “List top-level layers and their sublayers, with visibility, lock state, Layer Options and item counts”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    Takes no inputs.

  • create_layeron 7 other serverscreates or changes datadescribed as changing data

    “Create a layer at the top of the stack, or as a sublayer of parentLayer, with the Layer Options settings (Layers panel menu > New Layer, New Layer with Dialog)”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    8 inputs, 1 required
    • namestringrequired
    • parentLayerstring“Create inside this layer”
    • visibleboolean
    • lockedboolean
    • printableboolean
    • colorstring“Highlight colour of the layer's selections and outlines, "#RRGGBB" or "rgb(r,g,b)"”
    • previewboolean“false shows the layer in Outline mode”
    • dimPlacedImagesboolean“Dim placed images on the layer (Dim Images to).”
  • set_layer_propertieson 3 other serverscreates or changes datadescribed as changing data

    “Rename a layer, show or hide it, lock it, set whether it prints, its opacity, Layer Options (colour, preview, dim images), knockout group, or move it in the stack”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    11 inputs, 1 required
    • layerstringrequired“Layer name”
    • newNamestring
    • visibleboolean
    • lockedboolean
    • printableboolean
    • opacitynumber
    • arrangestring
    • colorstring“Highlight colour of the layer's selections and outlines, "#RRGGBB" or "rgb(r,g,b)"”
    • previewboolean“false shows the layer in Outline mode”
    • dimPlacedImagesboolean“Dim placed images on the layer (Dim Images to).”
    • knockoutstring“Knockout Group (Transparency panel): whether the layer's objects knock each other out”
  • set_active_layeron 4 other serverscreates or changes datadescribed as changing data

    “Make a layer active: new artwork goes on it when a tool is not given a layer”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    1 input, 1 required
    • layerstringrequired
  • delete_layeron 3 other serversdeletesdescribed as changing data

    “Delete a layer and everything on it”

    Publisher declares: read-only no · destructive yes · idempotent no · open-world no

    1 input, 1 required
    • layerstringrequired
  • move_items_to_layercreates or changes datadescribed as changing data

    “Move items to the top of another layer, or of the active layer when layer is omitted (Object > Arrange > Send to Current Layer)”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    2 inputs, 1 required
    • targetobjectrequired“Which items to act on.”
    • layerstring“Top-level layer name.”
  • new_from_templatecreates or changes datadescribed as changing data

    “Start an untitled document from an Illustrator template (.ait) file (File > New from Template).”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    1 input, 1 required
    • filePathstringrequired“Absolute path to an .ait file”
  • save_document_copycreates or changes datadescribed as changing data

    “Write a copy of the active document's saved file to another path; the document stays open and keeps referring to its own file (File > Save a Copy).”

    Publisher declares: read-only no · destructive yes · idempotent yes · open-world no

    2 inputs, 1 required
    • filePathstringrequired“Absolute path for the copy, with the same extension as the document's file”
    • overwriteboolean“Replace an existing file at filePath.”
  • revert_documentdescribed as changing data

    “Discard the active document's unsaved changes by reloading its saved file (File > Revert).”

    Publisher declares: read-only no · destructive yes · idempotent yes · open-world no

    Takes no inputs.

  • close_all_documentsdeletesdescribed as changing data

    “Close every open document (File > Close All).”

    Publisher declares: read-only no · destructive yes · idempotent yes · open-world no

    1 input
    • saveboolean“Save changes before closing.”
  • list_document_presetsreads or searches

    “List the new-document presets (Print, Web, Mobile, Film & Video, Art & Illustration and saved custom presets) with their size, units and colour mode, for create_document_from_preset”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    Takes no inputs.

  • create_document_from_presetcreates or changes datadescribed as changing data

    “Create a document from a new-document preset (File > New), overriding its name, size, orientation, units, colour mode, raster effects resolution, preview mode, transparency grid and bleed.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    11 inputs, 1 required
    • presetstringrequired“Preset name, e.g.”
    • titlestring“Name of the new document”
    • widthnumber“Artboard width in points”
    • heightnumber“Artboard height in points”
    • orientationstring“Swap width and height to match”
    • unitsstring“Ruler and field units of the document”
    • colorModestring
    • rasterEffectsstring“Raster effects resolution: screen 72, medium 150, high 300 ppi”
    • previewModestring
    • transparencyGridstring“Transparency grid colours”
    • bleednumber“Bleed on every side, in points”
  • get_document_setupreads or searches

    “Report the active document's Document Setup values the object model exposes: units, colour mode, large canvas, Show Images in Outline Mode, and each artboard's ruler origin”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    Takes no inputs.

  • set_document_setupon 1 other servercreates or changes datadescribed as changing data

    “Change document settings: colour mode (File > Document Color Mode, converting every colour), an artboard's ruler origin, conversion to a large canvas, or switch to the Artboard tool (Document Setup >…”

    Publisher declares: read-only no · destructive yes · idempotent yes · open-world no

    5 inputs
    • colorModestring“Convert the document to CMYK or RGB”
    • rulerOriginobject“Ruler zero point of an artboard, in points from its top-left corner.”
    • artboardIndexinteger“Artboard whose ruler origin is set (0-based).”
    • largeCanvasboolean“true converts the document to a large canvas (10 times the standard maximum size).”
    • editArtboardsboolean“true switches to the Artboard tool so the user can edit artboards”
  • open_document_with_optionsreads or searchesdescribed as changing data

    “Open a file with Illustrator's open options: update legacy text and gradient meshes, convert a pre-CS4 document's crop area, print tiles or artwork bounds to artboards, keep it off the recent files l…”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    9 inputs, 1 required
    • filePathstringrequired“Absolute path”
    • updateLegacyTextboolean“Update type from documents saved before Illustrator CS”
    • updateLegacyGradientMeshboolean“Keep spot colours in gradient meshes from documents saved before CS3”
    • preserveLegacyArtboardboolean“Pre-CS4 documents: keep the legacy artboard”
    • convertCropAreaToArtboardboolean“Pre-CS4 documents: turn the crop area into an artboard (otherwise it is discarded)”
    • convertTilesToArtboardsboolean“Pre-CS4 documents: turn print tiles into artboards”
    • createArtboardFromArtworkBoundsboolean“Pre-CS4 documents: make an artboard the size of the artwork”
    • addToRecentFilesboolean“List the file under File > Open Recent Files”
    • openAsstring“Open as a document (default) or as a library panel”
  • get_file_infoon 4 other serversreads or searches

    “Read the active document's metadata (File > File Info): title, authors, description, keywords, copyright, and the dates and creator tool, from its XMP packet”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    1 input
    • includeXmpboolean“Also return the whole XMP packet.”
  • set_file_infocreates or changes datadescribed as changing data

    “Set the active document's metadata (File > File Info).”

    Publisher declares: read-only no · destructive yes · idempotent yes · open-world no

    6 inputs
    • titlestring
    • authorsarray
    • descriptionstring
    • keywordsarray
    • copyrightstring“Copyright notice”
    • xmpstring“A complete XMP packet (from get_file_info includeXmp).”
  • use_clipboardcreates or changes datadescribed as changing data

    “Cut or copy items, or paste the clipboard (Edit > Cut, Copy, Paste, Paste in Place, Paste on All Artboards, Paste without Formatting).”

    Publisher declares: read-only no · destructive yes · idempotent no · open-world no

    3 inputs, 1 required
    • actionstringrequired
    • targetobject“cut and copy: the items.”
    • artboardIndexinteger“paste_in_place: the artboard to paste onto (0-based).”
  • switch_documentcreates or changes datadescribed as changing data

    “Bring an open document to the front by name or by its list_documents index, or move to the next or previous document or document group (Window menu document navigation)”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    3 inputs
    • namestring“Document name, as list_documents gives it”
    • indexinteger“Position in list_documents, which changes as documents are activated”
    • directionstring
  • organize_layerscreates or changes datadescribed as changing data

    “Run a Layers panel menu command: merge layers (Merge Selected), flatten every layer into one (Flatten Artwork), collect items or layers in a new layer (Collect in New Layer), give each object of a la…”

    Publisher declares: read-only no · destructive yes · idempotent no · open-world no

    6 inputs, 1 required
    • commandstringrequired“merge: the layers into the last one listed.”
    • layersarray“merge, reverse, collect: layer names at the same level of the Layers panel”
    • layerstring“flatten: the layer to flatten into.”
    • targetobject“collect: the items to move into a new sublayer of the first item's layer.”
    • namestring“collect: name of the new layer”
    • hiddenLayersstring“flatten: move the artwork of hidden layers in as hidden objects, or delete those layers.”
  • set_other_layerscreates or changes datadescribed as changing data

    “Hide, lock or outline every top-level layer except the ones holding the chosen layers or items (Object > Hide > Other Layers, Object > Lock > Other Layers, Layers panel menu > Outline Others), or sho…”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    3 inputs, 1 required
    • actionstringrequired
    • layersarray“Layers to leave alone (a sublayer keeps its top-level layer)”
    • targetobject“Or: leave alone the layers holding these items”
  • select_layer_artworkdescribed as changing data

    “Select all the artwork on layers, as clicking a layer's selection column or target circle in the Layers panel does.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    2 inputs, 1 required
    • layersarrayrequired“Layer names”
    • addboolean“Add to the current selection instead of replacing it.”
  • paste_artworkcreates or changes datadescribed as changing data

    “Paste the clipboard directly in front of or behind the selected objects, on their layer (Edit > Paste in Front, Paste in Back).”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    2 inputs, 1 required
    • placementstringrequired
    • targetobject“Copy these items first.”
  • copy_artboardcreates or changes datadescribed as changing data

    “Duplicate an artboard with the artwork on it (Artboards panel menu > Duplicate Artboards), copy it into another open document, or cut it (move it and its artwork, removing the original).”

    Publisher declares: read-only no · destructive yes · idempotent no · open-world no

    7 inputs, 1 required
    • artboardIndexintegerrequired“Artboard index (0-based).”
    • withArtworkboolean“Copy the artwork on the artboard too.”
    • toDocumentstring“Name of another open document to copy into (list_documents).”
    • cutboolean“Remove the original artboard and its artwork afterwards.”
    • namestring“Name of the copy.”
    • xnumber“Left of the copy, from the destination's artboard 0 top-left, in points.”
    • ynumber“Top of the copy, measured the same way.”
  • delete_empty_artboardsdeletesdescribed as changing data

    “Delete every artboard that no artwork touches (Artboards panel menu > Delete Empty Artboards).”

    Publisher declares: read-only no · destructive yes · idempotent yes · open-world no

    1 input
    • dryRunboolean“Only report which artboards would be deleted.”
  • align_artboardscreates or changes datadescribed as changing data

    “Align artboards to one another, or space them evenly, moving the artwork on them along (Artboard tool: align and distribute artboards).”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    5 inputs
    • artboardsarray“Artboard indexes (0-based).”
    • alignstring“Line up the artboards' edges or centres with the outermost one”
    • distributestring“Space the artboards evenly in a row (left to right) or a column (top to bottom)”
    • spacingnumber“With distribute: a fixed gap in points.”
    • moveArtworkboolean“Move the artwork with its artboard.”
  • reorder_artboardscreates or changes datadescribed as changing data

    “Change the artboards' numbering order, which sets their page order when exporting (Artboards panel: move up, move down, or drag).”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    3 inputs
    • orderarray“Every artboard index in its new order, e.g.”
    • artboardIndexinteger“Or: the artboard to move”
    • toIndexinteger“with artboardIndex: its new index”
  • convert_to_artboardscreates or changes datadescribed as changing data

    “Turn the chosen objects (usually rectangles) into artboards of the same bounds (Object > Artboards > Convert to Artboards)”

    Publisher declares: read-only no · destructive yes · idempotent no · open-world no

    1 input, 1 required
    • targetobjectrequired“Which items to act on.”
  • set_artboard_displaycreates or changes datadescribed as changing data

    “Artboard display options (Artboard Options: Show Center Mark, Show Cross Hairs, Show Video Safe Areas, Video Ruler Pixel Aspect Ratio, ruler origin), the artboard border and name display (application…”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    11 inputs
    • artboardsarray“Artboard indexes (0-based).”
    • showCenterboolean“Show a mark at the centre”
    • showCrossHairsboolean“Show lines through the centre of each edge”
    • showSafeAreasboolean“Show video title-safe and action-safe areas”
    • rulerPixelAspectRationumber“Pixel aspect ratio of the video rulers, e.g.”
    • rulerOriginobject“Zero point of the artboard's rulers, in points from its top-left corner”
    • borderColorstring“Artboard border colour, "#RRGGBB" or "rgb(r,g,b)" (all documents)”
    • borderWidthinteger“Artboard border width, 1-4 (all documents)”
    • showNamesboolean“Show artboard names on the canvas (all documents)”
    • toggleArtboardsboolean“Run View > Show / Hide Artboards, which switches artboard outlines on or off”
    • toggleVideoRulersboolean“Run View > Rulers > Show / Hide Video Rulers, which switches them on or off”
  • view_artboard

    “Show an artboard in the document window: make it active and fit it in the window, fit all artboards, or zoom on its centre (View > Fit Artboard in Window, Fit All in Window)”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    3 inputs, 1 required
    • artboardIndexintegerrequired“Artboard index (0-based).”
    • fitstring“Fit this artboard, or every artboard, in the window.”
    • zoomnumber“Instead of fitting: zoom factor centred on the artboard (1 = 100%)”
  • create_rectangleon 10 other serverscreates or changes datadescribed as changing data

    “Draw a rectangle, optionally with rounded corners.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    12 inputs, 4 required
    • artboardIndexinteger“Artboard index (0-based).”
    • xnumberrequired
    • ynumberrequired
    • widthnumberrequired
    • heightnumberrequired
    • cornerRadiusnumber“Corner radius in points.”
    • fillstring“Fill.”
    • strokestring“Stroke colour.”
    • strokeWeightnumber“Stroke weight in points”
    • opacitynumber“Opacity, 0-100”
    • layerstring“Layer to draw on.”
    • namestring“Name for the new item (shown in the Layers panel)”
  • create_ellipseon 9 other serverscreates or changes datadescribed as changing data

    “Draw an ellipse inside the box whose top-left corner is x, y”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    11 inputs, 4 required
    • artboardIndexinteger“Artboard index (0-based).”
    • xnumberrequired
    • ynumberrequired
    • widthnumberrequired
    • heightnumberrequired
    • fillstring“Fill.”
    • strokestring“Stroke colour.”
    • strokeWeightnumber“Stroke weight in points”
    • opacitynumber“Opacity, 0-100”
    • layerstring“Layer to draw on.”
    • namestring“Name for the new item (shown in the Layers panel)”
  • create_polygonon 3 other serverscreates or changes datadescribed as changing data

    “Draw a regular polygon centred on centerX, centerY”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    11 inputs, 3 required
    • artboardIndexinteger“Artboard index (0-based).”
    • centerXnumberrequired
    • centerYnumberrequired
    • radiusnumberrequired
    • sidesinteger
    • fillstring“Fill.”
    • strokestring“Stroke colour.”
    • strokeWeightnumber“Stroke weight in points”
    • opacitynumber“Opacity, 0-100”
    • layerstring“Layer to draw on.”
    • namestring“Name for the new item (shown in the Layers panel)”
  • create_starcreates or changes datadescribed as changing data

    “Draw a star centred on centerX, centerY”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    12 inputs, 3 required
    • artboardIndexinteger“Artboard index (0-based).”
    • centerXnumberrequired
    • centerYnumberrequired
    • radiusnumberrequired“Outer radius”
    • innerRadiusnumber“Default half the outer radius”
    • pointsinteger
    • fillstring“Fill.”
    • strokestring“Stroke colour.”
    • strokeWeightnumber“Stroke weight in points”
    • opacitynumber“Opacity, 0-100”
    • layerstring“Layer to draw on.”
    • namestring“Name for the new item (shown in the Layers panel)”
  • create_lineon 3 other serverscreates or changes datadescribed as changing data

    “Draw a straight line (Line Segment tool) from x1, y1 to x2, y2, or from x1, y1 with a length and angle as in the tool's options dialog.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    13 inputs, 2 required
    • artboardIndexinteger“Artboard index (0-based).”
    • x1numberrequired
    • y1numberrequired
    • x2number
    • y2number
    • lengthnumber“Length in points, instead of x2, y2”
    • anglenumber“With length: degrees counterclockwise from the 3 o'clock direction.”
    • fillstring“Fill.”
    • strokestring“Stroke colour.”
    • strokeWeightnumber“Stroke weight in points”
    • opacitynumber“Opacity, 0-100”
    • layerstring“Layer to draw on.”
    • namestring“Name for the new item (shown in the Layers panel)”
  • create_pathon 2 other serverscreates or changes datadescribed as changing data

    “Draw a path through points.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    9 inputs, 1 required
    • artboardIndexinteger“Artboard index (0-based).”
    • pointsarrayrequired
    • closedboolean
    • fillstring“Fill.”
    • strokestring“Stroke colour.”
    • strokeWeightnumber“Stroke weight in points”
    • opacitynumber“Opacity, 0-100”
    • layerstring“Layer to draw on.”
    • namestring“Name for the new item (shown in the Layers panel)”
  • create_texton 9 other serverscreates or changes datadescribed as changing data

    “Add text.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    15 inputs, 3 required
    • artboardIndexinteger“Artboard index (0-based).”
    • contentsstringrequired“The text.”
    • kindstring
    • xnumberrequired
    • ynumberrequired
    • widthnumber“Area text only”
    • heightnumber“Area text only”
    • fontstring“PostScript font name, e.g.”
    • sizenumber“Font size in points”
    • colorstring“A swatch name, "#RRGGBB", "rgb(r,g,b)" (0-255), "cmyk(c,m,y,k)" (0-100), "gray(g)" (0-100, 100 = black) or "none"”
    • justificationstring
    • leadingnumber“Leading in points (turns off auto leading)”
    • trackingnumber“Tracking in thousandths of an em”
    • layerstring“Layer to draw on.”
    • namestring“Name for the new item (shown in the Layers panel)”
  • set_text_styleon 1 other servercreates or changes datadescribed as changing data

    “Set font, size, colour, justification, leading or tracking on whole text frames”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    7 inputs, 1 required
    • targetobjectrequired“Which items to act on.”
    • fontstring“PostScript font name”
    • sizenumber
    • colorstring“A swatch name, "#RRGGBB", "rgb(r,g,b)" (0-255), "cmyk(c,m,y,k)" (0-100), "gray(g)" (0-100, 100 = black) or "none"”
    • justificationstring
    • leadingnumber
    • trackingnumber
  • set_text_contentscreates or changes datadescribed as changing data

    “Replace the text of text frames.”

    Publisher declares: read-only no · destructive yes · idempotent yes · open-world no

    2 inputs, 2 required
    • targetobjectrequired“Which items to act on.”
    • contentsstringrequired
  • convert_text_to_outlineson 1 other servercreates or changes datadescribed as changing data

    “Convert text frames to outlined artwork (Type > Create Outlines).”

    Publisher declares: read-only no · destructive yes · idempotent no · open-world no

    1 input, 1 required
    • targetobjectrequired“Which items to act on.”
  • list_fontson 8 other serversreads or searches

    “List installed fonts whose name, family or style contains the query”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    2 inputs
    • querystring“Case-insensitive text to match”
    • limitinteger
  • set_character_attributeson 1 other servercreates or changes datadescribed as changing data

    “Set Character panel, OpenType panel and CJK character attributes on text frames, a character range of each, or the selected text: font and style, size, leading, kerning, tracking, scales, baseline sh…”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    55 inputs, 1 required
    • targetobjectrequired“Which items to act on.”
    • rangeobject“Characters to format in each frame (or in the selected text): start is the 0-based character offset; length defaults to the rest of the text.”
    • fontstring“PostScript font name, e.g.”
    • sizenumber“Font size in points”
    • leadingnumber“Leading in points (turns off auto leading)”
    • autoLeadingboolean“Auto leading”
    • trackingnumber“Tracking in thousandths of an em”
    • kerningMethodstring“Automatic kerning: Metrics (metrics), Optical, Metrics - Roman Only, or none (0)”
    • horizontalScalenumber“Horizontal scale, percent (100 = normal)”
    • verticalScalenumber“Vertical scale, percent (100 = normal)”
    • baselineShiftnumber“Baseline shift in points (positive raises)”
    • rotationnumber“Character rotation in degrees”
    • languagestring“Language for spelling and hyphenation”
    • capitalizationstring“All Caps / Small Caps”
    • positionstring“Superscript / Subscript”
    • underlineboolean
    • strikethroughboolean
    • colorstring“Fill colour.”
    • strokeColorstring“Character stroke colour.”
    • strokeWeightnumber“Character stroke weight in points”
    • noBreakboolean“No Break: keep these characters on one line”
    • overprintFillboolean
    • overprintStrokeboolean
    • syntheticItalicsboolean“Synthetic italics (slants Japanese OpenType characters)”
    • ligaturesboolean“Standard Ligatures”

    and 30 more not listed here.

  • adjust_textcreates or changes datadescribed as changing data

    “Step text formatting up or down the way the Type keyboard commands do: font size up or down by points or by Font Size Step Up/Down, kern or track looser or tighter, Clear Tracking, Uniform Type (scal…”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    4 inputs, 2 required
    • targetobjectrequired“Which items to act on.”
    • rangeobject“Characters to format in each frame (or in the selected text): start is the 0-based character offset; length defaults to the rest of the text.”
    • operationstringrequired“size_up: Increase the font size by amount points (default 2); size_down: Decrease the font size by amount points (default 2); size_step_up: Font Size Step Up: …”
    • amountnumber“Points for size_up/size_down (default 2); thousandths of an em for kern and track operations (default 20)”
  • set_paragraph_attributescreates or changes datadescribed as changing data

    “Set Paragraph panel attributes on text frames, some of their paragraphs, or the selected text: alignment, indents, space before and after, hyphenation (the Hyphenation dialog), word and letter spacin…”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    31 inputs, 1 required
    • targetobjectrequired“Which items to act on.”
    • paragraphsobject“Paragraphs to format in each frame: start is the 0-based paragraph index; length defaults to the rest.”
    • justificationstring
    • leftIndentnumber“Left indent in points”
    • rightIndentnumber“Right indent in points”
    • firstLineIndentnumber“First-line left indent in points”
    • spaceBeforenumber“Space before the paragraph in points”
    • spaceAfternumber“Space after the paragraph in points”
    • hyphenateboolean“Automatic hyphenation”
    • wordsLongerThaninteger“Hyphenate words longer than this many letters”
    • afterFirstinteger“At least this many letters before a hyphen”
    • beforeLastinteger“At least this many letters after a hyphen”
    • hyphenLimitinteger“Most consecutive hyphenated lines (0 = no limit)”
    • hyphenationZonenumber“Hyphenation zone in points”
    • hyphenateCapitalizedWordsboolean
    • hyphenationPreferencenumber“Better Spacing (0) to Fewer Hyphens (1)”
    • wordSpacingobject“Justification word spacing, percent”
    • letterSpacingobject“Justification letter spacing, percent”
    • glyphScalingobject“Justification glyph scaling, percent”
    • autoLeadingAmountnumber“Auto leading, percent of the font size”
    • singleWordJustificationstring“How a line holding a single word is justified”
    • romanHangingPunctuationboolean
    • leadingTypestring“Leading measured top to top or bottom to bottom”
    • kinsokustring“Kinsoku Shori set by name, e.g.”
    • kinsokuTypestring

    and 6 more not listed here.

  • set_tab_stopson 1 other servercreates or changes datadescribed as changing data

    “Set the tab stops of text frames, some of their paragraphs, or the selected text (Tabs panel): left, centre, right and decimal tabs, leaders, the decimal character, and Repeat Tab.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    4 inputs, 2 required
    • targetobjectrequired“Which items to act on.”
    • paragraphsobject“Paragraphs to format in each frame: start is the 0-based paragraph index; length defaults to the rest.”
    • stopsarrayrequired“Tab stops.”
    • repeatinteger“Repeat Tab: add this many stops after the last one, each at the distance between the last two stops (or from 0 with one stop)”
  • get_text_attributesreads or searches

    “Read the formatting of text frames or the selected text: character and paragraph attributes (of the first character and paragraph of the range), tab stops, the character and paragraph styles in use, …”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    3 inputs, 1 required
    • targetobjectrequired“Which items to act on.”
    • rangeobject“Characters to format in each frame (or in the selected text): start is the 0-based character offset; length defaults to the rest of the text.”
    • limitinteger“Most ranges to report”
  • list_text_styleson 1 other serverreads or searches

    “List the document's character and paragraph styles (Character Styles and Paragraph Styles panels), optionally with their attributes”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    2 inputs
    • kindstring
    • attributesboolean“Include each style's attributes”
  • create_text_styleon 5 other serverscreates or changes datadescribed as changing data

    “Create a character or paragraph style (New Character Style, New Paragraph Style), optionally from the formatting of existing text (its first character and paragraph), then with the given attributes, …”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    6 inputs, 2 required
    • kindstringrequired
    • namestringrequired
    • fromobject“Text whose formatting the style starts from.”
    • applyboolean“Apply the new style to the from text”
    • characterobject“Character attributes, as set_character_attributes takes them”
    • paragraphobject“Paragraph attributes, as set_paragraph_attributes takes them (paragraph styles only)”
  • edit_text_stylecreates or changes datadescribed as changing data

    “Change a character or paragraph style (Character Style Options, Paragraph Style Options): rename it and set attributes.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    6 inputs, 2 required
    • kindstringrequired
    • namestringrequired
    • newNamestring
    • resetboolean
    • characterobject“Character attributes, as set_character_attributes takes them”
    • paragraphobject“Paragraph attributes, as set_paragraph_attributes takes them (paragraph styles only)”
  • delete_text_stylesdeletesdescribed as changing data

    “Delete character or paragraph styles by name (Delete Character Style, Delete Paragraph Style).”

    Publisher declares: read-only no · destructive yes · idempotent no · open-world no

    2 inputs, 2 required
    • kindstringrequired
    • namesarrayrequired
  • apply_text_styleon 1 other servercreates or changes datadescribed as changing data

    “Apply a character style to text frames, a character range or the selected text, or a paragraph style to their paragraphs.”

    Publisher declares: read-only no · destructive yes · idempotent yes · open-world no

    6 inputs, 2 required
    • kindstringrequired
    • namestring“Style to apply.”
    • targetobjectrequired“Which items to act on.”
    • rangeobject“Character styles: Characters to format in each frame (or in the selected text): start is the 0-based character offset; length defaults to the rest of the text.”
    • paragraphsobject“Paragraph styles: Paragraphs to format in each frame: start is the 0-based paragraph index; length defaults to the rest.”
    • clearOverridesboolean
  • load_text_stylescreates or changes datadescribed as changing data

    “Load character styles, paragraph styles or both from another Illustrator file (Load Character Styles, Load Paragraph Styles, Load All Styles).”

    Publisher declares: read-only no · destructive yes · idempotent yes · open-world no

    2 inputs, 1 required
    • filePathstringrequired“Absolute path of an .ai file”
    • kindstring
  • set_text_frame_optionson 1 other servercreates or changes datadescribed as changing data

    “Set text frame options: convert between point and area type (Type > Convert To Area Type / Point Type), resize the type area without scaling the text, Area Type Options (rows, columns, gutters, inset…”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    14 inputs, 1 required
    • targetobjectrequired“Which items to act on.”
    • convertTostring“Convert point type to area type or back first”
    • widthnumber“Area type: width of the type area in points”
    • heightnumber“Area type: height of the type area in points”
    • rowsinteger
    • rowGutternumber“Points”
    • columnsinteger
    • columnGutternumber“Points”
    • insetnumber“Inset spacing in points”
    • firstBaselinestring
    • firstBaselineMinnumber“First baseline minimum offset in points”
    • textFlowstring“Text flow across rows first or down columns first”
    • opticalMarginAlignmentboolean“Type > Optical Margin Alignment”
    • antiAliasingstring“Anti-aliasing of the type in raster output”
  • thread_text_frameson 2 other serverscreates or changes datadescribed as changing data

    “Thread text between area or path type frames (Type > Threaded Text): link flows text through the frames in the order given; release takes the frames out of their threads, keeping the rest linked (Rel…”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    3 inputs, 2 required
    • targetobjectrequired“Which items to act on.”
    • operationstringrequired
    • separateParagraphsboolean“link: end each frame's text with a paragraph return before the next frame's text joins it”
  • create_arcon 1 other servercreates or changes datadescribed as changing data

    “Draw an arc (Arc tool, with the Arc Segment Tool Options): the arc spans a width x height box (Length X-Axis, Length Y-Axis) from the start corner to the opposite corner.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    15 inputs, 4 required
    • artboardIndexinteger“Artboard index (0-based).”
    • xnumberrequired“Left edge of the box, points from the artboard's left”
    • ynumberrequired“Top edge of the box, points from the artboard's top”
    • widthnumberrequired“Length X-Axis in points”
    • heightnumberrequired“Length Y-Axis in points”
    • startCornerstring“Corner of the box where the arc starts (the dialog's reference point).”
    • closedboolean“Type: true for a closed arc, false for open.”
    • baseAlongstring“Base Along: the axis the arc leaves its start point along.”
    • slopenumber“Slope, -100 (concave) to 100 (convex).”
    • fillstring“Fill.”
    • strokestring“Stroke colour.”
    • strokeWeightnumber“Stroke weight in points”
    • opacitynumber“Opacity, 0-100”
    • layerstring“Layer to draw on.”
    • namestring“Name for the new item (shown in the Layers panel)”
  • create_spiralcreates or changes datadescribed as changing data

    “Draw a spiral (Spiral tool, with its dialog's options): radius from the centre to the outermost point, decay (each quarter-turn segment's radius as a percentage of the one before), segments (quarter …”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    13 inputs, 3 required
    • artboardIndexinteger“Artboard index (0-based).”
    • centerXnumberrequired
    • centerYnumberrequired
    • radiusnumberrequired“Points from the centre to the outermost point”
    • decaynumber“Percent, 5-100.”
    • segmentsinteger“Quarter-turn segments.”
    • stylestring“Direction the spiral winds in from its outer end.”
    • fillstring“Fill.”
    • strokestring“Stroke colour.”
    • strokeWeightnumber“Stroke weight in points”
    • opacitynumber“Opacity, 0-100”
    • layerstring“Layer to draw on.”
    • namestring“Name for the new item (shown in the Layers panel)”
  • create_rectangular_gridcreates or changes datadescribed as changing data

    “Draw a rectangular grid (Rectangular Grid tool, with its options dialog) as a group: horizontal and vertical dividers with skew, and the outside edges as one rectangle (Use Outside Rectangle As Frame…”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    16 inputs, 4 required
    • artboardIndexinteger“Artboard index (0-based).”
    • xnumberrequired“Left edge of the grid, points from the artboard's left”
    • ynumberrequired“Top edge of the grid, points from the artboard's top”
    • widthnumberrequired“Default Size: width in points”
    • heightnumberrequired“Default Size: height in points”
    • horizontalDividersinteger“Number of horizontal lines between the top and bottom edges.”
    • horizontalSkewnumber“Skew, -500 to 500 percent.”
    • verticalDividersinteger“Number of vertical lines between the left and right edges.”
    • verticalSkewnumber“Skew, -500 to 500 percent.”
    • frameboolean“Use Outside Rectangle As Frame: draw the outside edges as one rectangle.”
    • fillstring“Fill.”
    • strokestring“Stroke colour.”
    • strokeWeightnumber“Stroke weight in points”
    • opacitynumber“Opacity, 0-100”
    • layerstring“Layer to draw on.”
    • namestring“Name for the new item (shown in the Layers panel)”
  • create_polar_gridcreates or changes datadescribed as changing data

    “Draw a polar grid (Polar Grid tool, with its options dialog) as a group: concentric ellipses and radial lines, each with skew.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    16 inputs, 4 required
    • artboardIndexinteger“Artboard index (0-based).”
    • xnumberrequired“Left edge of the grid, points from the artboard's left”
    • ynumberrequired“Top edge of the grid, points from the artboard's top”
    • widthnumberrequired“Default Size: width in points”
    • heightnumberrequired“Default Size: height in points”
    • concentricDividersinteger“Number of ellipses inside the outer one.”
    • concentricSkewnumber“Skew, -500 to 500 percent.”
    • radialDividersinteger“Number of lines from the centre to the edge.”
    • radialSkewnumber“Skew, -500 to 500 percent.”
    • compoundPathboolean“Create Compound Path From Ellipses: pair the ellipses from the outside in as compound paths, so alternate rings are filled.”
    • fillstring“Fill.”
    • strokestring“Stroke colour.”
    • strokeWeightnumber“Stroke weight in points”
    • opacitynumber“Opacity, 0-100”
    • layerstring“Layer to draw on.”
    • namestring“Name for the new item (shown in the Layers panel)”
  • convert_live_shapescreates or changes datadescribed as changing data

    “Turn paths that resemble rectangles, rounded rectangles, ellipses, polygons or lines into live shapes (Object > Shape > Convert to Shape), or turn live shapes back into ordinary paths (Object > Shape…”

    Publisher declares: read-only no · destructive yes · idempotent no · open-world no

    2 inputs, 2 required
    • targetobjectrequired“Which items to act on.”
    • operationstringrequired“convert_to_shape or expand_shape”
  • toggle_corner_widgetcreates or changes datadescribed as changing data

    “Show or hide the corner widget, the on-canvas control for rounding live-shape corners (View > Show / Hide Corner Widget).”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    Takes no inputs.

  • set_fillon 1 other servercreates or changes datadescribed as changing data

    “Set the fill of paths, compound paths, groups (every path inside) and text frames.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    3 inputs, 2 required
    • targetobjectrequired“Which items to act on.”
    • colorstringrequired“A swatch name, "#RRGGBB", "rgb(r,g,b)" (0-255), "cmyk(c,m,y,k)" (0-100), "gray(g)" (0-100, 100 = black) or "none"”
    • tintnumber“Tint percent of a spot or global swatch.”
  • set_strokeon 2 other serverscreates or changes datadescribed as changing data

    “Set the stroke of paths, compound paths and groups: colour, weight, caps, joins and dashes.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    9 inputs, 1 required
    • targetobjectrequired“Which items to act on.”
    • colorstring“A swatch name, "#RRGGBB", "rgb(r,g,b)" (0-255), "cmyk(c,m,y,k)" (0-100), "gray(g)" (0-100, 100 = black) or "none"”
    • tintnumber“Tint percent of a spot or global swatch.”
    • weightnumber“Points”
    • capstring
    • joinstring
    • miterLimitnumber
    • dashesarray“Dash and gap lengths in points, e.g.”
    • dashOffsetnumber
  • set_opacityon 7 other serverscreates or changes datadescribed as changing data

    “Set the opacity and blending mode of items”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    3 inputs, 1 required
    • targetobjectrequired“Which items to act on.”
    • opacitynumber
    • blendModestring
  • get_appearanceon 1 other serverreads or searches

    “Read the fill, stroke, opacity and blending mode of items”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    1 input, 1 required
    • targetobjectrequired“Which items to act on.”
  • list_swatcheson 1 other serverreads or searches

    “List the document's swatches with their kind (process, global, spot), colour values and swatch group”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    Takes no inputs.

  • create_swatchon 2 other serverscreates or changes datadescribed as changing data

    “Add a swatch: a process colour, a global process colour (editing it updates every object that uses it), or a spot colour (an ink such as a Pantone colour or a varnish plate).”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    5 inputs, 2 required
    • namestringrequired
    • colorstringrequired“"cmyk(c,m,y,k)", "rgb(r,g,b)", "#RRGGBB" or "gray(g)"; a spot colour can also be "lab(L,a,b)"”
    • spotboolean“Create a spot colour.”
    • globalboolean“Create a global process colour.”
    • groupstring“Swatch group to put it in, created if needed”
  • create_gradienton 1 other servercreates or changes datadescribed as changing data

    “Add a linear or radial gradient swatch from colour stops, and optionally apply it as the fill of items”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    5 inputs, 2 required
    • namestringrequired
    • typestring
    • stopsarrayrequired
    • applyToobject“Which items to act on.”
    • anglenumber“Angle in degrees for linear gradients applied to items”
  • list_graphic_styleson 1 other serverreads or searches

    “List the graphic styles in the document (Graphic Styles panel), in panel order”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    Takes no inputs.

  • apply_graphic_styleon 1 other servercreates or changes datadescribed as changing data

    “Apply a graphic style from the document's Graphic Styles panel to items.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    3 inputs, 2 required
    • targetobjectrequired“Which items to act on.”
    • stylestringrequired“Graphic style name (list_graphic_styles)”
    • mergeboolean“Add the style to the items' current appearance instead of replacing it.”
  • rename_graphic_stylecreates or changes datadescribed as changing data

    “Rename a graphic style (Graphic Styles panel menu > Graphic Style Options)”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    2 inputs, 2 required
    • namestringrequired“Current name”
    • newNamestringrequired
  • delete_graphic_stylesdeletesdescribed as changing data

    “Delete graphic styles from the document (Graphic Styles panel menu > Delete Graphic Style).”

    Publisher declares: read-only no · destructive yes · idempotent no · open-world no

    1 input, 1 required
    • namesarrayrequired“Graphic style names”
  • save_graphic_style_librarycreates or changes datadescribed as changing data

    “Save the document's graphic styles as a graphic style library file (Graphic Styles panel menu > Save Graphic Style Library), an .ai file other documents can open as a library”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    1 input, 1 required
    • filePathstringrequired“Absolute .ai path”
  • open_graphic_stylescontrols a browser or desktopdescribed as changing data

    “Show the Graphic Styles panel (Window > Graphic Styles), or open one of Illustrator's built-in graphic style libraries as a panel (Window > Graphic Style Libraries).”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    1 input
    • librarystring“Built-in library to open.”
  • add_appearance_attributecreates or changes datadescribed as changing data

    “Add another fill or stroke to each item's appearance (Appearance panel menu > Add New Fill / Add New Stroke), so one object can carry several fills or strokes.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    3 inputs, 2 required
    • targetobjectrequired“Which items to act on.”
    • attributestringrequired
    • countinteger“How many to add to each item.”
  • set_transparency_groupcreates or changes datadescribed as changing data

    “Set Knockout Group and Isolate Blending (Transparency panel) on groups, other items or layers.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    4 inputs
    • targetobject“Which items to act on.”
    • layersarray“Layer names, instead of or as well as target”
    • knockoutstring“on, off, or inherit (the neutral state of the checkbox)”
    • isolateBlendingboolean
  • toggle_view_optiondescribed as changing data

    “Show or hide the transparency grid (View > Show / Hide Transparency Grid) or Live Paint gap highlighting (View > Show / Hide Live Paint Gaps).”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    1 input, 1 required
    • optionstringrequired
  • make_live_paintcreates or changes datadescribed as changing data

    “Make a Live Paint group from paths (Object > Live Paint > Make), or add paths to an existing Live Paint group (Object > Live Paint > Merge) when into is given.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    2 inputs, 1 required
    • targetobjectrequired“Which items to act on.”
    • intoobject“An existing Live Paint group to merge the target paths into”
  • release_live_paintdeletesdescribed as changing data

    “Release Live Paint groups back into plain paths with a thin black stroke and no fill (Object > Live Paint > Release)”

    Publisher declares: read-only no · destructive yes · idempotent no · open-world no

    1 input, 1 required
    • targetobjectrequired“Which items to act on.”
  • expand_live_paintdeletesdescribed as changing data

    “Expand Live Paint groups into ordinary filled and stroked paths that keep their painted look (Object > Live Paint > Expand)”

    Publisher declares: read-only no · destructive yes · idempotent no · open-world no

    1 input, 1 required
    • targetobjectrequired“Which items to act on.”
  • get_default_fill_strokereads or searches

    “Read the document's default fill and stroke, the attributes new objects get, and whether the Fill or the Stroke box is in front in the toolbar's Fill and Stroke controls”

    Publisher declares: read-only yes · destructive no · idempotent yes · open-world no

    Takes no inputs.

  • set_default_fill_strokecreates or changes datadescribed as changing data

    “Set the document's default fill and stroke, the attributes new objects get.”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    11 inputs
    • resetboolean“White fill, black 1 pt solid stroke”
    • fillstring“A swatch name, "#RRGGBB", "rgb(r,g,b)" (0-255), "cmyk(c,m,y,k)" (0-100), "gray(g)" (0-100, 100 = black) or "none"”
    • strokestring“A swatch name, "#RRGGBB", "rgb(r,g,b)" (0-255), "cmyk(c,m,y,k)" (0-100), "gray(g)" (0-100, 100 = black) or "none"”
    • strokeWeightnumber“Points”
    • capstring
    • joinstring
    • miterLimitnumber
    • dashesarray“Dash and gap lengths in points.”
    • dashOffsetnumber
    • fillOverprintboolean
    • strokeOverprintboolean
  • swap_fill_strokecreates or changes datadescribed as changing data

    “Swap the fill and stroke colours of paths, compound paths and groups (every path inside), as the toolbar's Swap Fill and Stroke button does.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    1 input, 1 required
    • targetobjectrequired“Which items to act on.”
  • reset_fill_strokecreates or changes datadescribed as changing data

    “Give paths, compound paths and groups (every path inside) a white fill and a black 1 pt solid stroke, as the toolbar's Default Fill and Stroke button does for selected objects”

    Publisher declares: read-only no · destructive no · idempotent yes · open-world no

    1 input, 1 required
    • targetobjectrequired“Which items to act on.”
  • edit_colorsdescribed as changing data

    “Recolour the targets with an Edit > Edit Colors command: convert to CMYK, RGB or grayscale, invert, or blend the fills between the frontmost and backmost (or leftmost and rightmost, topmost and botto…”

    Publisher declares: read-only no · destructive yes · idempotent no · open-world no

    2 inputs, 2 required
    • targetobjectrequired“Which items to act on.”
    • operationstringrequired
  • create_swatch_groupcreates or changes datadescribed as changing data

    “Create a swatch group (a colour group in the Swatches panel), optionally moving existing swatches into it”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    2 inputs, 1 required
    • namestringrequired
    • swatchesarray“Names of existing swatches to move into the group”
  • delete_swatchesdeletesdescribed as changing data

    “Delete swatches by name”

    Publisher declares: read-only no · destructive yes · idempotent no · open-world no

    1 input, 1 required
    • namesarrayrequired
  • add_used_colorscreates or changes datadescribed as changing data

    “Add a swatch for each process colour used in the fills and strokes of the artwork (Swatches panel > Add Used Colors), skipping colours that already have one.”

    Publisher declares: read-only no · destructive no · idempotent no · open-world no

    2 inputs
    • targetobject“Only these items.”
    • groupstring“Put the new swatches in this swatch group, created if needed”

Each quoted sentence is the first sentence of the publisher’s own description. The kind of tool and the “changes data” mark are our AI model’s reading of that description, not something we tested: two differently worded runs had to agree, otherwise no label is shown, and nobody has checked them by hand. A tool without the “changes data” mark is described as only reading, searching or calculating, or the two runs did not agree. No tool was called. Read the publisher’s full description before relying on it. “Publisher declares” lists the hints the server itself sends with the tool (MCP annotations: read-only, destructive, idempotent, open-world); they are the publisher's claims, not checked by us. Inputs are the parameters in the tool's own input schema: name, declared type, whether it is required, and the first sentence of its description. The first 100 of 308 tools are listed. Read 2026-10-23.

How well are its tools described?

Features #4 and #5

How clearly this server's own tool descriptions say what a tool does, and how consistent its tool list is. The first part is an AI model's yes/no reading of each description; the second part is counted. We do not turn it into a grade.

Descriptions

AI reading of each description

Says what the tool does
100% of 188 tools
Says what it returns
19% of 183 tools
States limits, defaults or errors
4% of 178 tools
Says when to use it
1% of 187 tools
Items covered per tool
1.3 of 4 on average

Counted from the listing

Parameters with a description
84% of 1,363
Tools with a description
100% of 308
Typical description length
228 characters

The tool set

Counted from the listing

Tools
308
Size of the list
about 94,389 tokens for an agent to load (characters ÷ 4)
Naming
305 of 308 names use snake_case

AI reading: easy to mix up

No pair found.

The AI items cover 188 of 308 tools: for a tool where two differently worded runs disagreed, that item is left out. They were not checked by hand, and no tool was called. “Easy to mix up” means two tools whose names or descriptions overlap without saying how they differ; the AI found none, comparing tools within groups of 40. We do not rate whether the tool set is complete or whether side effects are spelled out, because our AI reading of those was not reliable enough.

How do I add it to my client?

Config from the registry entry

From the npm package adobe-mcp-illustrator

Our sandbox started this package on 2026-10-23 (a read-only session: no tool was called).

Add to CursorAn install link in the format Cursor documents, holding the Cursor config below. The command runs the publisher’s code on your machine.

Claude Desktop · claude_desktop_config.json (Settings → Developer → Edit Config)
{
  "mcpServers": {
    "adobe-mcp-illustrator": {
      "command": "npx",
      "args": [
        "-y",
        "adobe-mcp-illustrator@0.9.0"
      ]
    }
  }
}
Cursor · .cursor/mcp.json in a project, or ~/.cursor/mcp.json
{
  "mcpServers": {
    "adobe-mcp-illustrator": {
      "command": "npx",
      "args": [
        "-y",
        "adobe-mcp-illustrator@0.9.0"
      ]
    }
  }
}
VS Code · .vscode/mcp.json
{
  "servers": {
    "adobe-mcp-illustrator": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "adobe-mcp-illustrator@0.9.0"
      ]
    }
  }
}
VS Code (command line) · Bash or zsh terminal (macOS, Linux)
code --add-mcp '{"name":"adobe-mcp-illustrator","type":"stdio","command":"npx","args":["-y","adobe-mcp-illustrator@0.9.0"]}'
Claude Code
claude mcp add --transport stdio adobe-mcp-illustrator -- npx -y adobe-mcp-illustrator@0.9.0
Try it in the MCP Inspector · runs on your machine, opens in your browser · Node 22.19+
npx @modelcontextprotocol/inspector@2.11.0 -- npx -y adobe-mcp-illustrator@0.9.0
  • Optional settings the entry also lists (left out above): ILLUSTRATOR_APP_NAME, ILLUSTRATOR_ALLOWED_DIRS, ILLUSTRATOR_SCRIPT_TIMEOUT_MS.
  • This runs the publisher's code on your machine (npx). Read its README first.
  • The MCP Inspector lists the server's tools, resources and prompts; a tool you call there runs for real.

Built from the server's registry entry with each client's documented format (checked 2026-10-14; the Cursor link and the VS Code command 2026-10-19; the MCP Inspector command 2026-10-21). Values in < > are yours to fill in; this page never contains a key. Where the server needs a setting the entry does not declare, it can still fail to start.

Can it be installed, and is it up to date?

Version pin · advisories

Listed version

Registry lists
0.9.0
Latest stable
0.9.0
Status
current
Withdrawn
no

Source: registry.npmjs.org · 2026-10-23. About the version the registry lists; a manual install may resolve to a different one.

Dependency advisories

critical0high0moderate0low0

Counted in the full dependency tree as resolved on 2026-10-23 (npm audit). Bars share one scale. The package itself has no known vulnerability (OSV.dev).

Integrity, provenance, license

Integrity
sha512-9Azc9PtTI1VjzIk8f…
Signature
signed and attested
License
MIT

Source: the package registry · 2026-10-23.

Usage

Downloads
242 in the last month

Source: api.npmjs.org · 2026-10-23.

Does the registry listing match what we found?

Feature #6

The registry verifies a package once, when it is published, and does not re-check it. A difference below is about the listing, not a judgement of the publisher.

Registry saysWe foundResultSource · date
Published package can be startedStarted and answeredmatchesour test · 2026-10-23
Version 0.9.0 on npmExists and can be installedmatchesnpm · 2026-10-23
Repository github.com/zachshallbetter/adobe-mcpOpens publiclymatchesapi.github.com · 2026-10-23

Who made it?

Feature #7 · lineage

Facts about the publisher. We do not turn them into a trust score.

Namespace
io.github.zachshallbetter · 7 servers
GitHub owner
a personal account (zachshallbetter)
Build record
signed and attested
Repository
github.com/zachshallbetter/adobe-mcp
Stars
26
Repository age
over a year
Last push
0–30 days ago
Archived
no
Security policy
SECURITY.md

Source: the registry entry and api.github.com · 2026-10-23; security policy read from GitHub · 2026-10-23.

Publish this server? Run these checks against it yourself before release, from your own machine: a server the command starts, or your own server at its URL after a one-time proof that you control it: npx protocolprobe-selftest.

Choosing

Record checks

Public records · not a safety rating

9 of 9 record checks met

  • #8,592 of 15,112 packages by monthly downloads, tied with 22 others
  • #1,622 of 22,952 repositories by GitHub stars, tied with 34 others (repository shared with 5 other registry entries)
  • #924 of 1,074 packages meeting all 9 record checks, by downloads, tied with 1 other
  • MetRegistry entry is active and says how to run itActive, with a package or a remote address.
  • MetSource repository link opensThe linked GitHub repository is public.
  • MetRepository is not archivedNot archived.
  • MetCode pushed to the repository in the 90 days before our checkLast push 0-30 days before our check.
  • MetRepository publishes a security policy (SECURITY.md)SECURITY.md found.
  • MetPackage names its licence with a standard (SPDX) identifierMIT
  • MetThe version the registry lists can be installed and is not withdrawnThe listed version exists and is current.
  • Metnpm package carries build provenance (attestation)Signed, with a build attestation naming the source and workflow.
  • MetNo known critical or high advisory in the package or its dependenciesNone known in the package or its dependency tree.

Read from public records only: the registry entry, npm/PyPI, GitHub and advisory databases, checked 2026-10-23. No tool was called. Only “met” and “not met” are counted, so the total differs between servers; a check that does not apply or that we could not run is listed, never counted against it. It is not a safety rating. How each check works · Leaderboards

Common questions about io.github.zachshallbetter/adobe-mcp-illustrator

Answered from the data above

Is io.github.zachshallbetter/adobe-mcp-illustrator safe to install?

We do not rate servers as safe or unsafe. 9 of its 9 applicable record checks are met (facts from public records, each listed on this page). What the records show: Its npm package carries a build-provenance attestation that names its source repository and build workflow. Its source repository opens publicly. Its repository had a push in the last 90 days. The listed version is the latest stable release. The package itself has no known vulnerability (OSV.dev). Its full dependency tree has no known advisory. 154 of its tools describe changing data (our AI model's reading of the descriptions). These are facts with their sources on this page, not a safety guarantee, and we did not run its tools.

Has io.github.zachshallbetter/adobe-mcp-illustrator been security tested?

Partly. 2 of the 12 checks that apply to it were exercised. We started the package in an isolated sandbox and read what it declares, but this test round was read-only, so its tools were not called. No security verdict is published before verification.

What can io.github.zachshallbetter/adobe-mcp-illustrator do?

It lists 308 tools. In our AI model's reading of their descriptions (two runs had to agree, nobody checked it by hand), they include tools that read or search, create or change data, delete, run code or commands and control a browser or desktop. We did not call any tool, so this describes the text, not the behaviour.

Can io.github.zachshallbetter/adobe-mcp-illustrator change or delete data?

154 of its tools say in their description that they create, edit, delete, send or run something (our AI model's reading). We did not call any tool, so we cannot say what actually happens.

Does io.github.zachshallbetter/adobe-mcp-illustrator publish a security policy?

Yes: its repository has a public security policy (github.com/zachshallbetter/adobe-mcp/blob/HEAD/SECURITY.md). That is the publisher's statement, not permission for us to test the server, and we call none of its tools.

Is the listed version current?

Yes. The registry lists 0.9.0, the latest stable release on npm.

Where is the source code of io.github.zachshallbetter/adobe-mcp-illustrator?

In github.com/zachshallbetter/adobe-mcp, which opens publicly.

Found this page useful?

Anonymous · no sign-in

A quick, anonymous reaction — no account, no email. One per kind from your browser. The tally updates when the page is next refreshed, and it is only a rough count, never a safety rating or a measured number of people.

Similar servers

Same topic · AI-read

Active servers whose topic is also “media-and-design” and that have at least one tool of the same kind; most kinds in common first, then most GitHub stars. The topic and the tool kinds are an AI model's reading of the publishers' descriptions, not checked by hand. Similar is not a recommendation.

Compare with another server

Side by side: registry entry, our read-only session, the tools and the 18 classification fields. Same values as each page; no score.

Security testing

What did we test, and what did we leave out?

18 checks · features #1, #2

Not probed (read-only run)

We started the package in an isolated sandbox and read what it declares, but this test round was read-only, so its tools were not called. No security score is given; a check we did not run is never counted as passed.

The 18 checks at a glanceour test · 2026-10-23
  1. Inventory: exercised
  2. Hidden instructions: exercised
  3. Real execution: not run · our policy
  4. Secret leak: not run · nothing to check it against
  5. Internal addresses: not run · our policy
  6. Unconfirmed changes: not run · our policy
  7. Bad input: not run · our policy
  8. Model requests: not run · nothing to check it against
  9. Sensitive questions: not run · nothing to check it against
  10. Folder boundary: not run · our policy
  11. Log leaks: not run · nothing to check it against
  12. Hidden content: not run · nothing to check it against
  13. Fake assistant turns: not applicable
  14. Token passthrough: not applicable
  15. Token audience: not applicable
  16. Sign-in redirect: not applicable
  17. Consent handling: not applicable
  18. Sign-in metadata: not applicable

2 exercised10 not run (reason given)6 not applicable

Each check ends in exactly one state: exercised, not run (with the reason), or not applicable (with the reason). 2 of the 12 checks that apply to it were exercised. We do not publish security-check outcomes for named servers.

Exercised · 2
  • 1Inventory
    tool-list
    Reads the declared tools, resources and prompts.exercised
  • 2Hidden instructions
    description-poisoning
    Looks for hidden instructions in tool descriptions.exercised
Not run, with the reason · 10
  • 3Real execution
    real-execution
    Calls a tool and checks what really happens.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy
  • 4Secret leak
    canary-leak
    Plants a fake secret and checks whether it leaks.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against
  • 5Internal addresses
    ssrf
    Checks whether a tool can be steered to internal addresses.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy
  • 6Unconfirmed changes
    write-without-confirmation
    Checks whether tools that change data act without asking.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy
  • 7Bad input
    error-handling
    Sends bad input and watches how the server answers.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy
  • 8Model requests
    sampling
    Checks whether the server asks the client's model to act for it.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against
  • 9Sensitive questions
    elicitation-sensitive-data
    Checks whether the server asks users for sensitive data.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against
  • 10Folder boundary
    root-boundary
    Checks whether the server reaches outside the folders it was given.This check calls the package's tools. This test round was read-only, so no tool was called; tools can act on outside services with the publisher's or a user's account.not run · our policy
  • 11Log leaks
    logging-side-channel
    Checks whether log messages carry data they should not.This check needs at least one successful tool call to have something to check, and no tool was called.not run · nothing to check it against
  • 12Hidden content
    audience-hiding
    Checks resources that hide content from the user.This check needs content the server returns, and nothing was read or called.not run · nothing to check it against
Does not apply to this server · 6
  • 13Fake assistant turns
    fake-assistant-turn
    Checks prompts that pose as the assistant's own words.The server exposes no prompts.not applicable
  • 14Token passthrough
    token-passthrough
    Checks whether the server forwards a user's token to other services.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable
  • 15Token audience
    token-audience-validation
    Checks whether tokens meant for another service are accepted.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable
  • 16Sign-in redirect
    open-redirect
    Checks the sign-in redirect for abuse.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable
  • 17Consent handling
    confused-deputy
    Checks consent handling when one service acts for another.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable
  • 18Sign-in metadata
    oauth-url-scheme
    Checks the published sign-in metadata for unsafe URLs.The server runs locally over standard input/output, so there is no sign-in flow to check.not applicable

Source: our own test in an isolated sandbox, 2026-10-23, mcp-runtime-engine@0.1.0. Which checks count and why follows our published scoring model.

What happened during the test?

Feature #8

The steps in order, as the test record holds them.

  1. 0 msStarted the published package in an isolated sandbox (read-only mode)
  2. 5,296 msConnected after 0 redirects.
  3. Read the inventory: 308 tools, 0 resources, 0 prompts.
  4. 6,030 msFinished: 2 checks exercised.

Reference

How is it classified?

18 fields

One value per field, each with its source. Fields written by AI models are marked. A field with no value says why.

TopicAI-classified
AI-classified · 2026-10-23
Pricing modelAI-classified
not checked
no website in the registry entry
Programming language
api.github.com · 2026-10-23
Hosting type
registry · 2026-10-23
MCP capability
tools
our test · 2026-10-23
Transport
standard input/output
registry · 2026-10-23
Required credentials
none declared
registry · no declaration is not a guarantee
Package registry
registry · 2026-10-23
Freshness
0–30 days
registry updatedAt · 2026-10-23
Lifecycle status
registry · 2026-10-23
License class
package registry · 2026-10-23
Integrity hash
declared (sri)
package registry · 2026-10-23
Signature / provenance
package registry · 2026-10-23
Dependency advisories
none known
npm audit · 2026-10-23
Popularity
242 downloads a month
package registry · 2026-10-23
Publisher signals
owner: a personal account · repository age: over a year · stars: 10–99 · build record: signed and attested
api.github.com · 2026-10-23
Maintenance
api.github.com · 2026-10-23
Environment
your machine
where it runs, from the hosting type

“Not stated” means the source did not state it; “does not apply” means it does not apply to this kind of server; “our limit” means our own lookup failed. A linked value opens the directory filtered to the same value.

Cite or correct this page

Sources and corrections

Suggested citation

ProtocolProbe. “io.github.zachshallbetter/adobe-mcp-illustrator: MCP server record.” Data checked 2026-10-23. https://protocolprobe.com/mcp/servers/io.github.zachshallbetter/adobe-mcp-illustrator

Figures are valid for the date shown. Our facts on this page are CC BY 4.0: reuse them with a link and the check date. Quoted text (the publisher’s descriptions, website quotes, tool names) is not ours to license.

As JSON: this record in the API · API documentation.

Badge for your README

ProtocolProbe: 9 of 9 record checks met

[![ProtocolProbe](https://protocolprobe.com/api/v1/badge/io.github.zachshallbetter/adobe-mcp-illustrator)](https://protocolprobe.com/mcp/servers/io.github.zachshallbetter/adobe-mcp-illustrator)

It shows this server's record-check count: facts from public records, no tool called. It is not a security rating or a pass. It links here and updates after each data reload.

Something wrong, or is this yours?

If a fact here is wrong, tell us and we will re-check it. If you operate this server, you can run our checks on it yourself with the free self-test command; we call no server’s tools ourselves for anything shown here.

Write to hello@protocolprobe.com · corrections log · methodology