Skip to content

corbett3000/adobe-mcp-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Adobe MCP for macOS

Control Adobe Creative Cloud from AI agents via the Model Context Protocol

Quick StartFeaturesDashboardToolsThemesImportersConfiguration


Adobe MCP Dashboard

An MCP server that lets Claude (or any MCP-compatible AI) drive InDesign, Photoshop, and Illustrator on macOS through ExtendScript via the native AppleScript bridge. Import content from Notion, Google Docs, Word, or PDF — then generate professionally typeset ebooks, documents, and creative assets in one shot.

Quick Start

Prerequisites

Requirement Version
macOS 12+ (Monterey or later)
Python 3.11+
Adobe Creative Cloud InDesign, Photoshop, and/or Illustrator installed

Installation

# Clone the repo
git clone https://github.com/YOUR_USERNAME/adobe-mcp.git
cd adobe-mcp

# Install with all optional dependencies
pip install -e ".[all,dev]"

Or install only what you need:

pip install -e "."                # Core (InDesign, Photoshop, Illustrator)
pip install -e ".[notion]"        # + Notion imports
pip install -e ".[google]"        # + Google Docs imports
pip install -e ".[dev]"           # + pytest for running tests

Grant macOS Permissions

On first use, macOS will prompt for Automation permissions:

System Settings → Privacy & Security → Automation

Grant your terminal app (Terminal, iTerm, VS Code, Claude Desktop, etc.) permission to control each Adobe app.

Connect to Claude

Claude Code CLI — add to your project's .mcp.json:

{
  "mcpServers": {
    "adobe-mcp-macos": {
      "command": "python",
      "args": ["-m", "adobe_mcp_macos"],
      "env": {}
    }
  }
}

Claude Desktop — merge into ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "adobe-mcp-macos": {
      "command": "python",
      "args": ["-m", "adobe_mcp_macos"],
      "env": {}
    }
  }
}

Then restart Claude. The Adobe tools will appear automatically.


Features

One-Shot Book Creation

Give Claude a simple instruction like "Import my Notion page and create a professionally typeset ebook" and it will:

  1. Fetch content from Notion (or Google Docs, Word, PDF)
  2. Apply a design theme (typography, colors, page layout)
  3. Create an InDesign document with chapter openers, TOC, and flowing text
  4. Export both a print-ready PDF (CMYK, crop marks, bleeds) and a digital PDF (RGB, optimized)

Web Dashboard

A standalone browser UI for creating ebooks without Claude:

adobe-mcp-dashboard
# → http://localhost:5050

The dashboard provides:

  • Content import — paste a Notion URL or upload a DOCX/PDF
  • Theme selection — pick from built-in themes or create custom ones
  • Live progress — SSE streaming shows each step as the book is built
  • Saved imports — re-use previously imported content

Multi-App Control

40+ MCP tools across three Adobe applications:

App Capabilities
InDesign Documents, paragraph styles, master pages, text flow, images, TOC, page numbers, PDF export
Photoshop Documents, text layers, filters, image resize, PNG/JPEG export
Illustrator Documents, rectangles, text frames, PNG/SVG export

Tools Reference

Shared Tools

Tool Description
adobe_list_running_apps List which Adobe apps are currently open
adobe_open_file Open a file in a specified Adobe app
adobe_get_active_document Get name/path of active documents across all apps

InDesign Tools

Book Creation (high-level)

Tool Description
id_create_book Single-shot full book creation from a BookManifest JSON

Document Management

Tool Description
id_create_document Create a new themed InDesign document
id_open_document Open an existing .indd file
id_save_document Save the active document
id_close_document Close the active document

Layout & Styling

Tool Description
id_setup_master_pages Create A-Body and B-Chapter master pages from theme
id_setup_paragraph_styles Create all paragraph styles from theme
id_apply_theme Apply a theme to the active document

Content

Tool Description
id_add_chapter Add a chapter (opener page + body text)
id_flow_text Flow text with automatic page creation
id_add_text_frame Add a text frame at exact mm coordinates
id_add_pull_quote Add a styled pull quote
id_add_sidebar Add a sidebar text box

Navigation

Tool Description
id_add_table_of_contents Generate a TOC page with dot leaders
id_add_page_numbers Set page numbering (arabic or roman)

Images

Tool Description
id_place_image Place an image with fitting options
id_add_full_bleed_image Place a full-bleed image to document edges
id_add_caption Add a caption below an image

Themes

Tool Description
id_list_themes List all available themes
id_create_theme Generate a new theme from a text description
id_get_theme Get full JSON config for a theme

Export

Tool Description
id_export_pdf_print Export print-ready PDF (CMYK, bleeds, crop marks)
id_export_pdf_digital Export screen-optimized digital PDF (RGB)

Advanced

Tool Description
id_execute_jsx Execute raw ExtendScript in InDesign

Photoshop Tools

Tool Description
ps_create_document Create a new document (RGB, CMYK, or Grayscale)
ps_add_text Add a text layer
ps_export_png Export as PNG
ps_export_jpg Export as JPEG with quality setting
ps_resize_image Resize the image
ps_apply_filter_blur Apply Gaussian blur
ps_flatten Flatten all layers
ps_list_layers List all layers
ps_execute_jsx Execute raw ExtendScript

Illustrator Tools

Tool Description
ai_create_document Create a new document
ai_add_rectangle Draw a rectangle
ai_add_text Add a text frame
ai_export_png Export as PNG
ai_export_svg Export as SVG
ai_list_layers List all layers
ai_select_all Select all objects
ai_execute_jsx Execute raw ExtendScript

Theme System

Themes control every aspect of document design — typography, colors, page dimensions, margins, master pages, and export settings.

Built-in Themes

Theme Description Page Size Body Font Heading Font
Zen Clean, minimal book layout 6" × 9" Palatino 12pt Optima
Business Professional document Letter Garamond 13pt Helvetica Neue
Modern Balanced contemporary design 6" × 9" Palatino 12pt Helvetica Neue

Creating Custom Themes

Via Claude:

"Create a theme called 'Memoir' with Georgia body text,
large chapter numbers, and warm earth-tone colors"

Via the dashboard: Select "Custom" from the theme dropdown and describe your style.

Manually: Create a JSON file in ~/.adobe-mcp/themes/:

{
  "name": "My Theme",
  "page": {
    "width_mm": 152.4,
    "height_mm": 228.6,
    "margins": { "top": 25.4, "bottom": 25.4, "inside": 19.05, "outside": 15.875 },
    "columns": 1
  },
  "typography": {
    "body": { "family": "Palatino", "font_style": "Regular", "size": 12, "leading": 18 },
    "h1": { "family": "Optima", "font_style": "Bold", "size": 28, "leading": 34 },
    "h2": { "family": "Optima", "font_style": "Regular", "size": 18, "leading": 24 }
  },
  "colors": {
    "body_text": "#1a1a1a",
    "heading": "#000000",
    "accent": "#4a7c59"
  }
}

Themes are validated with Pydantic — missing fields fall back to sensible defaults.

InDesign Templates

Themes can reference .indt InDesign template files for advanced layouts that go beyond what JSON can express. Place templates in src/adobe_mcp_macos/themes/templates/.


Content Importers

Import content from multiple sources into a structured format ready for book creation.

Source How Requirements
Notion Page URL or ID NOTION_API_TOKEN env var
Google Docs Document ID GOOGLE_SERVICE_ACCOUNT_JSON env var
Microsoft Word .docx file path None
PDF .pdf file path None

Rich Text Support

The Notion importer preserves formatting from the source document:

  • Bold, italic, and other inline styles
  • Color annotations
  • These styles carry through to the InDesign output as character-level overrides

Universal Import

The id_import_to_book tool is the simplest path — provide any one source and get back a ready-to-use BookManifest:

"Import my Notion page https://notion.so/My-Book-abc123
and create an ebook using the Zen theme"

Configuration

Environment Variables

Variable Required Purpose
NOTION_API_TOKEN For Notion imports Internal integration token from notion.so/my-integrations
GOOGLE_SERVICE_ACCOUNT_JSON For Google Docs imports Path to service account key JSON file

Set these in a .env file in the project root, or pass them in your MCP server config:

{
  "mcpServers": {
    "adobe-mcp-macos": {
      "command": "python",
      "args": ["-m", "adobe_mcp_macos"],
      "env": {
        "NOTION_API_TOKEN": "ntn_your_token_here"
      }
    }
  }
}

Notion Setup

  1. Go to notion.so/my-integrations
  2. Create a new internal integration
  3. Copy the token (starts with ntn_)
  4. In Notion, open the page you want to import → Connections → add your integration

Google Docs Setup

  1. Create a service account in Google Cloud Console
  2. Enable the Google Docs API
  3. Download the JSON key file
  4. Share your Google Doc with the service account email address
  5. Set GOOGLE_SERVICE_ACCOUNT_JSON to the path of the key file

Running Tests

# All unit tests (no Adobe apps needed)
pytest tests/ --ignore=tests/integration -v

# Integration tests (requires running Adobe apps)
pytest tests/integration/ -v

# Quick check
pytest tests/ -q

Architecture

adobe-mcp-macos/
├── src/adobe_mcp_macos/
│   ├── server.py              # MCP server entry point (FastMCP)
│   ├── executor.py            # AppleScript bridge → ExtendScript execution
│   ├── tools/
│   │   ├── indesign.py        # InDesign MCP tools (high-level)
│   │   ├── indesign_jsx.py    # JSX code generators (low-level)
│   │   ├── photoshop.py       # Photoshop MCP tools
│   │   ├── illustrator.py     # Illustrator MCP tools
│   │   ├── shared.py          # Cross-app utilities
│   │   └── importers.py       # Content import tools
│   ├── importers/
│   │   ├── notion.py          # Notion API client
│   │   ├── google_docs.py     # Google Docs API client
│   │   ├── docx_parser.py     # Word document parser
│   │   ├── pdf_parser.py      # PDF parser (font-size heuristics)
│   │   └── rich_text.py       # Rich text markup handling
│   ├── themes/
│   │   ├── manager.py         # Theme loading, saving, listing
│   │   ├── validator.py       # Pydantic models for theme validation
│   │   ├── builtin/           # Built-in theme JSON files
│   │   └── templates/         # InDesign .indt template files
│   ├── models/                # Pydantic input models for all tools
│   └── dashboard/
│       ├── app.py             # Starlette web server
│       └── index.html         # Single-page dashboard UI
├── tests/                     # 250+ unit tests
├── docs/plans/                # Design documents
└── pyproject.toml

How It Works

Claude / Dashboard
        │
        ▼
   MCP Server (FastMCP)
        │
        ▼
   Tool Functions (Python)
        │
        ▼
   JSX Code Generators
        │
        ▼
   executor.py → osascript → AppleScript
        │
        ▼
   Adobe App (ExtendScript engine)
  1. Claude calls an MCP tool (e.g., id_create_book)
  2. Python generates ExtendScript (JSX) code
  3. The executor writes JSX to a temp file and invokes it via osascript
  4. Adobe's ExtendScript engine runs the code inside the application
  5. Results return to Python via stdout

Known Limitations

  • ExtendScript runs synchronously — very long operations may time out (60s default)
  • The execute_jsx tools run arbitrary code in Adobe apps; use with caution
  • Custom theme generation uses an existing theme as a base; edit the JSON for full control
  • Premiere Pro and After Effects are not yet supported
  • Requires macOS (Windows/Linux not supported due to AppleScript dependency)

License

MIT

About

MCP server that lets Claude control Adobe Creative Cloud (InDesign, Photoshop, Illustrator) on macOS

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors