Skip to main content
Glama
README.md
<div align="center">

# Aseprite MCP

**让 AI 成为你的像素画创作搭档**

通过 Model Context Protocol,在 Aseprite 中绘制、修改和预览像素画。

**中文** · [English](README.en.md)

[![PyPI](https://img.shields.io/pypi/v/aseprite-mcp.svg)](https://pypi.org/project/aseprite-mcp/)
[![Python](https://img.shields.io/badge/python-3.13%2B-blue?logo=python)](https://pypi.org/project/aseprite-mcp/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

</div>

---

Aseprite MCP 将支持 MCP 的客户端如`Codex`,`CluadeCode`,`DeepseekHarness`等Agent与 Aseprite 连接起来,支持读取和编辑未保存画布、图片预览、撤销重做及可选基础动画,让你在同一文档中继续创作。同时保留 CLI 磁盘文件处理能力。

<div align="center">
  <img src="./assets/preview1.gif" style="width: 50%; max-width: 100%; border-radius: 4px;" />
</div>
<div align="center">
  <img src="./assets/preview2.png" style="width: 50%; max-width: 100%; border-radius: 4px;" />
</div>

[PyPI 安装包](https://pypi.org/project/aseprite-mcp/) · [Release 扩展下载](https://github.com/greenlogs/aseprite-mcp-live/releases) · [问题反馈](https://github.com/greenlogs/aseprite-mcp-live/issues)

**Windows Aseprite 1.3+** 验证;Aseprite 需自行安装,不随项目分发。

## 快速开始

确保你已经安装了[aseprite-扩展](#安装-aseprite-扩展)
然后可以使用你常用的ai agent工具输入以下内容:

```text
请帮我安装这个项目https://github.com/greenlogs/aseprite-mcp-live的Aseprite MCP扩展,我的Aseprite已经安装好在[输入你的aseprite.exe 安装路径],且已经安装了扩展并启用。
```

## 安装 uv(Windows)

在 PowerShell 中运行以下任意一种方式。

**方式一:官方安装脚本**

```powershell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
```

**方式二:WinGet**

```powershell
winget install --id=astral-sh.uv -e
```

安装后重新打开终端,确认 `uv` 和附带的 `uvx` 可用:

```powershell
uv --version
uvx --version
```

也可以从 [uv 官方 Releases](https://github.com/astral-sh/uv/releases) 下载对应 Windows 架构的压缩包,解压后将可执行文件所在目录加入 `PATH`。更多安装选项见 [uv 官方安装说明](https://docs.astral.sh/uv/getting-started/installation/)。

本项目需要 **Python 3.13+**。可以让 uv 管理所需解释器:

```powershell
uv python install 3.13
```

## 安装 Aseprite 扩展

两种服务启动方式都需要配套扩展:

1. 前往 [GitHub Releases](https://github.com/greenlogs/aseprite-mcp-live/releases),下载与服务版本一致的 `.aseprite-extension` 文件。当前服务版本为 **0.5.0**。
2. 在 Aseprite 中打开 **Edit → Preferences → Extensions → Add Extension**,选择下载的扩展包,安装并启用。

    <img src="./assets/step1.png" style="width: 50%; max-width: 100%; border-radius: 4px;" />
    <img src="./assets/step2.png" style="width: 50%; max-width: 100%; border-radius: 4px;" />

   查看脚本状态:

    <img src="./assets/step3.png" style="width: 50%; max-width: 100%; border-radius: 4px;" />
    <img src="./assets/step4.png" style="width: 50%; max-width: 100%; border-radius: 4px;" />
    <img src="./assets/step6.png" style="width: 50%; max-width: 100%; border-radius: 4px;" />

   `status` 出现 Connected 状态表示扩展已成功连接服务

    <img src="./assets/step5.png" style="width: 50%; max-width: 100%; border-radius: 4px;" />

3. 重启 Aseprite,首次连接时按权限提示允许扩展使用本机 WebSocket。

`注意事项`:

- 1.若MCP连接正常但获取不到工具状态,尝试重启Agent客户端,尽量先让Aseprite先启动。
- 2.Agent工作时,尽量不要在画布上绘制,以免干扰实时协作。

扩展默认自动连接 `127.0.0.1:8765`。在 **File → Scripts → MCP: Connect / Settings** 中可查看状态、调整端口或断开连接,无需选择连接文件。

## 方式一:通过 uvx 运行(推荐)

直接从 PyPI 获取并运行,无需克隆仓库:

```powershell
uvx --python 3.13 aseprite-mcp
```

以上命令启动 **stdio MCP server**,等待 MCP 客户端输入;终端保持等待属于正常行为。实际使用时,通常由 MCP 客户端按下列配置自动启动服务,无需另外开终端启动第二份。

### MCP 客户端配置

以下适用于采用 `mcpServers` JSON 格式的客户端;其他客户端使用对应的 stdio 配置格式。

```json
{
  "mcpServers": {
    "aseprite": {
      "command": "uvx",
      "args": ["--python", "3.13", "aseprite-mcp"],
      "env": {
        "ASEPRITE_MCP_TOOL_PROFILE": "all",
        "ASEPRITE_MCP_CAPABILITY_SETS": "animation"
      }
    }
  }
}
```

保存配置并重启客户端,然后打开 Aseprite。扩展与服务启动顺序不限,服务就绪后会自动连接。

## 方式二:本地构建与运行

需要 Git;也可以从仓库页面下载源码压缩包,解压后进入项目根目录。

```powershell
git clone https://github.com/greenlogs/aseprite-mcp-live.git
cd aseprite-mcp-live
uv sync --locked --python 3.13
uv run --locked python scripts/build_release.py --out-dir dist
```

`dist/` 中会生成 Python wheel、源码包、`.aseprite-extension`、锁定生产依赖清单和摘要文件。你可以安装对应版本的 Release 扩展,或使用本地生成的扩展包。

在项目根目录启动服务:

```powershell
uv run --locked aseprite-mcp
```

由 MCP 客户端启动本地源码版本时,将配置替换为:

```json
{
  "mcpServers": {
    "aseprite": {
      "command": "uv",
      "args": ["--directory", "{source-path}", "run", "--locked", "aseprite-mcp"],
      "env": {
        "ASEPRITE_MCP_TOOL_PROFILE": "all",
        "ASEPRITE_MCP_CAPABILITY_SETS": "animation"
      }
    }
  }
}
```

将 `source-path` 替换为源码目录的绝对路径如`C:/path/to/aseprite-mcp-live`。选择一种服务配置即可,同一端口只运行一份服务。

## 功能

| 功能                 | 说明                                                          |
| -------------------- | ------------------------------------------------------------- |
| **实时协作**         | 读取和编辑已经打开的文档,包括未保存画布                      |
| **像素与图层**       | 新建 RGB 画布、添加普通图层、调整不透明度、批量绘制像素和矩形 |
| **图片反馈**         | 将预览作为 PNG 图片直接返回给支持图片内容的 MCP 客户端        |
| **撤销与重做**       | 一个成功编辑批次对应一次撤销,沿用 Aseprite 原生历史          |
| **基础动画(可选)** | 追加或删除帧、设置帧时长、创建和管理动画标签                  |
| **CLI 文件工具**     | 单独启用磁盘文件处理,使用保留的上游工具进行批处理            |
| **自动连接**         | 等待服务就绪,并在服务重启后自动重新连接                      |

Python MCP 服务通过 stdio 与客户端通信;Lua 扩展通过本机 WebSocket 连接服务,编辑 Aseprite 中的内存文档。实时编辑绑定明确的文档与修订,切换活动窗口不会改变操作目标。

## 可选配置

### 基础动画

在客户端配置的 `env` 中增加以下项,并重启服务:

```json
{
  "ASEPRITE_MCP_CAPABILITY_SETS": "animation"
}
```

这会额外提供 `apply_animation`。支持追加末帧副本、删除帧、设置帧时长,以及创建、更新和删除标签。帧号从 1 开始,时长使用整数毫秒;每批动画操作支持一次撤销和重做,不自动保存。

### 工具范围与 Aseprite 路径

通过 `ASEPRITE_MCP_TOOL_PROFILE` 选择工具范围:

| 值             | 工具范围                                    |
| -------------- | ------------------------------------------- |
| `all` (默认) | 实时与 CLI 合计 125 个;启用动画后为 126 个 |
| `core`         | 9 个实时核心入口;启用动画后为 10 个        |
| `cli`          | 116 个磁盘文件工具,不建立实时连接          |

```json
{
  "ASEPRITE_PATH": "{你的aseprite应用的绝对路径}",
  "ASEPRITE_MCP_TOOL_PROFILE": "all"
}
```

### 自定义端口

通过启动参数修改服务端口,例如:

```powershell
uvx --python 3.13 aseprite-mcp==0.5.0 --port 8766
```

客户端配置中将 `--port`、`8766` 追加到 `args`,并在扩展设置中把 Port 改为 `8766`。本地源码运行同样支持 `uv run --locked aseprite-mcp --port 8766`。

## 使用范围

- 实时绘制以普通可编辑 RGB 图层为范围;非 RGB、锁定层、背景层、参考层和 Tilemap 等不支持的编辑会明确拒绝。调色板、特效、补间和 Tilemap 尚未迁移为实时能力。
- 编辑不会自动保存;保存为 `.aseprite` 或 `.ase` 时需明确指定路径,覆盖已有文件需显式设置覆盖参数。
- 撤销与重做针对文档最新历史,也可能涉及手动编辑。较大操作可能触发像素、复制或执行时间预算,需要缩小批次。
- 实时后端操作内存文档,CLI 后端操作磁盘文件。断线不会自动切换到 CLI;避免同时通过两种方式写入同一个磁盘文件。
- 服务仅监听本机回环地址。重连后需重新读取文档列表,不能复用旧会话和文档 ID。

## 故障排查

| 问题                 | 处理方式                                                                    |
| -------------------- | --------------------------------------------------------------------------- |
| 找不到 `uv` 或 `uvx` | 安装后重开终端与客户端,或在客户端配置中使用可执行文件的绝对路径            |
| 扩展未连接           | 确认服务已由 MCP 客户端启动、扩展已启用、WebSocket 权限已允许,双方端口一致 |
| 端口被占用           | 关闭重复服务,或同时修改服务与扩展端口                                      |
| 版本不匹配           | 安装同版本的服务和扩展;可使用 `aseprite-mcp==0.5.0` 固定版本               |
| 找不到文档或修订冲突 | 重新读取文档列表与信息,使用当前会话和修订                                  |
| 预览图片未显示       | 确认客户端支持 MCP 图片内容,并缩小预览区域或缩放倍数                       |

如仍有问题,请通过 [GitHub Issues](https://github.com/greenlogs/aseprite-mcp-live/issues) 提交软件版本、启动方式与错误信息。

## 致谢与许可

基于 [diivi/aseprite-mcp](https://github.com/diivi/aseprite-mcp) 的工具与测试基础改造,保留上游 MIT 许可和版权,新增代码同样采用 [MIT 许可](LICENSE)。

本项目为第三方集成,与 Aseprite 官方无隶属关系。Aseprite 需自行准备,不随项目分发。

TDQS

B3.1/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a clearly distinct editor action: connection status, document listing/info, sprite creation, batched operations, preview, undo/redo, and saving. apply_operations is broad but is explicitly scoped to atomic batches at a revision, so it does not blur with create_sprite, save_sprite, undo, or redo.

Naming Consistency5/5

All names use snake_case and a predictable verb_noun pattern such as get_connection_status, list_documents, create_sprite, and save_sprite. undo and redo are standardized single-verb actions that remain fully readable and consistent with the lifecycle model.

Tool Count5/5

Nine tools are well scoped for controlling an Aseprite editor session without feeling bloated. Each tool covers a necessary lifecycle area: status, discovery, creation, mutation, preview, history, and persistence.

Completeness4/5

The surface covers the core create/read/update/preview/save/undo/redo lifecycle and likely exposes most editing via apply_operations. Minor gaps remain, such as explicit document close/delete or export-oriented operations beyond save_sprite, but agents can work around them.

Maintenance

ActivityMaintained
ResponsivenessNo issues