Metadata-Version: 2.5
Name: cavi-adobe-mcp
Version: 0.1.0
Summary: MCP servers for Adobe Photoshop, Illustrator, After Effects, Animate, Character Animator and Dimension
Project-URL: Homepage, https://github.com/cavi-ai/adobe-mcp#readme
Project-URL: Repository, https://github.com/cavi-ai/adobe-mcp
Project-URL: Issues, https://github.com/cavi-ai/adobe-mcp/issues
Project-URL: Changelog, https://github.com/cavi-ai/adobe-mcp/blob/main/CHANGELOG.md
Author: CAVI AI
License-Expression: MIT
License-File: LICENSE
Keywords: after-effects,animate,character-animator,dimension,game-art,illustrator,mcp,mcp-server,model-context-protocol,photoshop
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Multimedia :: Graphics
Requires-Python: >=3.11
Requires-Dist: anyio<5,>=4.5
Requires-Dist: cavi-mcp-core<0.2,>=0.1
Requires-Dist: mcp<3,>=2.3
Requires-Dist: pillow<14,>=13.0
Requires-Dist: pydantic<3,>=2.11
Description-Content-Type: text/markdown

# Cavi Adobe MCP

Local MCP servers for Adobe Photoshop, Illustrator, After Effects, Animate, Character
Animator and Dimension. Each server edits owned copies of documents inside one
workspace, records every native operation before it runs, and reports an uncertain
outcome as unknown instead of retrying it.

| Command | Server name | Applications |
|---|---|---|
| `cavi-adobe-authoring-mcp` | `cavi-adobe-authoring` | Photoshop, Illustrator, After Effects (`aerender`), FFmpeg review movies |
| `cavi-animate-mcp` | `cavi-animate-authoring` | Animate |
| `cavi-character-animator-mcp` | `cavi-character-animator-mcp` | Character Animator |
| `cavi-dimension-mcp` | `cavi-adobe-dimension` | Dimension |

Startup and tool discovery never launch an application. A tool reaches an application
only when it is called, and only an application that is already installed and licensed.

## Requirements

- macOS, Python 3.11+ and [uv](https://docs.astral.sh/uv/).
- The Adobe applications you use, installed and signed in. No license or account is
  supplied by these servers.
- Automation access for the MCP host to control the application (Photoshop,
  Illustrator, Animate). The servers never request permissions; they report a denial.
- Animate and Character Animator also use a small native helper compiled on first use,
  which needs the Swift command-line compiler (`xcode-select --install`) and existing
  Accessibility access. Character Animator capture also needs Screen Recording access.
- `ffmpeg` on `PATH` for review movies.

## Install

```sh
uv tool install cavi-adobe-mcp
```

Register the servers you need in your MCP client and set the workspace:

```json
{
  "mcpServers": {
    "adobe-authoring": {
      "command": "cavi-adobe-authoring-mcp",
      "env": {"CAVI_ADOBE_WORKSPACE": "/Users/me/Art"}
    }
  }
}
```

## Configuration

| Variable | Meaning |
|---|---|
| `CAVI_ADOBE_WORKSPACE` | Absolute directory every tool path is relative to. Required. |
| `CAVI_ADOBE_DATA` | Private server state: native helper builds and Character Animator journals. Defaults to `~/.local/share/cavi-adobe-mcp`. |
| `CAVI_CHARACTER_ANIMATOR_APP` | The Character Animator application, when more than one is installed. |

Ownership records live inside the workspace (`.adobe-authoring/`, `.animate-authoring/`);
keep them private.

## Tools

- Authoring: `adobe_status`, `adobe_inspect`, `adobe_open_copy`, `adobe_create_canvas`,
  `adobe_edit_layers`, `adobe_add_group`, `adobe_place_image`, `adobe_add_rectangle`,
  `adobe_add_path`, `adobe_add_text`, `adobe_apply_mask`, `adobe_fonts`, `adobe_export`,
  `adobe_close_copy`, `adobe_operation_control`, `after_effects_render`,
  `media_review_movie`.
- Animate: `animate_status`, `animate_inspect`, `animate_open_copy`,
  `animate_create_from_png`, `animate_set_stage_size_from_source`, `animate_edit_timeline`,
  `animate_export_frames`, `animate_close_copy`, `animate_operation_control`.
- Character Animator: `character_status`, `session_control`, `project_select`,
  `project_save_copy`, `inspect`, `capture`, `scene_action`, `scene_export`,
  `import_media`, `export_inspect`, `export_ingest`, `operation_control`.
- Dimension: `dimension_status`, `dimension_launch`, `dimension_inspect`,
  `dimension_render_start`, `dimension_render_inspect`.

Every tool error returns one structured result (`code`, `outcome`, `next_action`) from
[`cavi-mcp-core`](https://github.com/cavi-ai/mcp-core). An `unknown` outcome means the
application may have changed: inspect it, or resolve the recorded operation with the
server's `operation_control` tool, before trying again.

## Development

```sh
uv sync --locked --dev
uv run --locked python -m unittest discover -s tests
uv run --locked ruff check .
```

Tests that drive the real applications run only when their `CAVI_*_NATIVE` variable is
set; the rest use recorded responses and never launch an application.

## License

MIT. Adobe, Photoshop, Illustrator, After Effects, Animate, Character Animator and
Dimension are trademarks of Adobe Inc.; this project is not affiliated with Adobe.
