Skip to main content
Glama

Aseprite MCP

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

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

中文 · English

PyPI Python License: MIT


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

PyPI 安装包 · Release 扩展下载 · 问题反馈

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

快速开始

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

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

Related MCP server: Aseprite MCP

安装 uv(Windows)

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

方式一:官方安装脚本

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

方式二:WinGet

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

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

uv --version
uvx --version

也可以从 uv 官方 Releases 下载对应 Windows 架构的压缩包,解压后将可执行文件所在目录加入 PATH。更多安装选项见 uv 官方安装说明。

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

uv python install 3.13

安装 Aseprite 扩展

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

  1. 前往 GitHub Releases,下载与服务版本一致的 .aseprite-extension 文件。当前服务版本为 0.5.0。

  2. 在 Aseprite 中打开 Edit → Preferences → Extensions → Add Extension,选择下载的扩展包,安装并启用。

    查看脚本状态:

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

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

注意事项:

  • 1.若MCP连接正常但获取不到工具状态,尝试重启Agent客户端,尽量先让Aseprite先启动。

  • 2.Agent工作时,尽量不要在画布上绘制,以免干扰实时协作。

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

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

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

uvx --python 3.13 aseprite-mcp

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

MCP 客户端配置

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

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

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

方式二:本地构建与运行

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

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 扩展,或使用本地生成的扩展包。

在项目根目录启动服务:

uv run --locked aseprite-mcp

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

{
  "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 中增加以下项,并重启服务:

{
  "ASEPRITE_MCP_CAPABILITY_SETS": "animation"
}

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

工具范围与 Aseprite 路径

通过 ASEPRITE_MCP_TOOL_PROFILE 选择工具范围:

值

工具范围

all (默认)

实时与 CLI 合计 125 个;启用动画后为 126 个

core

9 个实时核心入口;启用动画后为 10 个

cli

116 个磁盘文件工具,不建立实时连接

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

自定义端口

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

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 提交软件版本、启动方式与错误信息。

致谢与许可

基于 diivi/aseprite-mcp 的工具与测试基础改造,保留上游 MIT 许可和版权,新增代码同样采用 MIT 许可。

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

Available Tools

9 tools
apply_operationsC

在指定修订执行原子批次;操作格式见协议 v1。

NameRequiredDescriptionDefault
operationsYes
request_idNo
session_idYes
document_idYes
expected_contextNo
expected_revisionYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so the description carries the full burden. 'Atomic' usefully implies all-or-nothing semantics, but it says nothing about what happens on revision conflict, whether changes are persisted or reversible, whether a session must be opened first, or how request_id/idempotency behaves. The pointer to 'protocol v1' references a document the agent cannot see.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tight sentence with no filler, but the compression is achieved by delegating the substance to an unavailable external spec rather than by being information-dense. Short is not the same as efficient here.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A 6-parameter mutation tool with no annotations, no output schema, and 0% schema coverage needs substantial description. Instead the description punts on the single hardest part — the operations payload format — to a 'protocol v1' the agent has no access to, so the definition is not callable without outside knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 6 parameters, including an opaque objects array and three concurrency/idempotency fields (expected_revision, expected_context, request_id). The description only obliquely gestures at 'specified revision' and defers the rest to an external protocol, leaving the agent unable to construct operations correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a verb and effect ('executes an atomic batch at the specified revision'), which is more than a restatement of the name. But it never says what an 'operation' is or what resource is being modified, so the agent cannot distinguish it from save_sprite or undo/redo beyond guessing. Purpose is inferable but vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus undo, redo, or save_sprite, and no preconditions. The agent gets no routing signal at all.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_spriteC

创建未保存的 RGB 文档。

NameRequiredDescriptionDefault
widthYes
heightYes
request_idNo
session_idYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only discloses that the created document is unsaved (not persisted), and omits everything else: whether a session must exist first, whether the document appears in list_documents, reversibility/undo behavior, and what the call returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short front-loaded sentence, so there is no padding, but the brevity here reflects under-specification rather than economy — the sentence is too thin to be useful for a 4-parameter creation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations, no output schema, no parameter documentation, and 3 required parameters including an opaque session_id, the description leaves an agent unable to call this correctly without guessing. It is far from complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and none of the four parameters (width, height, session_id, request_id) are explained in the description. It does not even clarify that width/height are in pixels or what session_id identifies; the description adds nothing beyond the bare schema titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a verb and resource ('创建...RGB 文档' — create an RGB document), and 'unsaved' hints at how it differs from save_sprite. However, it never uses the word 'sprite' in a way that ties to the tool name, and it says nothing about dimensions, session scoping, or how the result relates to list_documents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus list_documents, save_sprite, or get_document_info. The 'unsaved' qualifier weakly implies a later save is needed, but no exclusion, precondition, or alternative is named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_connection_statusA

读取实时会话、软件版本、本机端点及已启用能力集。

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It signals a non-mutating read ('读取') and emphasizes 'real-time', implying live state and no caching, which is useful. It does not state permission requirements, whether the call is cheap/safe to repeat, or how failures surface.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence enumerating the four returned fields, front-loaded with the most important part (real-time session). Nothing wasted, nothing repeated from the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read tool with no output schema, enumerating the returned fields is exactly the right compensation, since there is no structured return definition. Only the read-only/non-destructive nature and auth expectations are unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so parameter semantics is a baseline 4. The description correctly adds no parameter discussion and instead spends its words on the returned content.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource and enumerates its parts: real-time session, software version, local endpoint, and enabled capabilities. An agent can tell this is a status/diagnostics read, distinct from the document and sprite siblings. It never uses an explicit verb like 'returns' or 'reads' in a named form, but the resource is unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus other tools, no prerequisites, and no mention of when it is unnecessary. The agent must infer that it is a diagnostic check, likely at startup or before other operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_document_infoC

读取显式内存文档,标识仅在当前会话有效。

NameRequiredDescriptionDefault
session_idYes
document_idYes

TDQS

C2.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the full burden. It discloses two useful traits: the document is in memory, and identifiers are session-scoped and therefore invalid across sessions. It says nothing about what happens when the document is missing or the session has expired, nor does it state explicitly that the operation is read-only beyond the verb 读取.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

There is a single short sentence with no padding, so it is concise. However, it is too terse for the information the description needs to convey, and it is not front-loaded around any usage or parameter guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This tool has two required parameters, no schema descriptions, no annotations, and no output schema, so the description should explain much more. It covers basic scope and the session lifetime but omits return content, error conditions, and parameter meaning.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it does so only weakly. It hints that the identifier (标识) is session-bound, which touches document_id and session_id, but it does not clarify the format of either parameter or the difference between the two required parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a read operation on an 'in-memory document' (读取显式内存文档), which partially clarifies the resource. However, the tool name promises 'document info' while the description says only 'read', leaving the actual output purpose (that is, metadata versus content) ambiguous. It also does not distinguish this tool from the sibling tool list_documents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage context is the constraint that the identifier is valid only within the current session (标识仅在当前会话有效), which implies a session-scoped workflow. It does not say when to use this tool instead of list_documents or get_preview, and it does not name any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_previewC

直接返回指定修订/帧的 PNG 图片及元数据;整数最近邻缩放。

NameRequiredDescriptionDefault
frameNo
scaleNo
regionNo
session_idYes
document_idYes
expected_revisionYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses the return format (PNG image plus metadata) and nearest-neighbor scaling, but omits read-only/side-effect safety, permission requirements, revision-mismatch behavior, and session/document constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one compact sentence with no filler and front-loads the return action. The trailing scaling detail is useful but makes the sentence slightly terse rather than fully structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There are no annotations, no output schema, and six parameters with zero schema descriptions. The description gives the core purpose and output format, but it is not complete enough for correct invocation of a multi-parameter read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for all six parameters. The description only partially covers revision, frame, and scaling concepts, while session_id, document_id, and region are left undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it returns a PNG image and metadata for a specified revision/frame. This is distinguishable from siblings such as list_documents or get_document_info, though it does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It only says the tool directly returns a preview image for a revision/frame; there is no explicit when-to-use, when-not-to-use, or alternative selection guidance among sibling tools. The agent must infer the usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_documentsC

列出显式编辑器会话中的内存文档。

NameRequiredDescriptionDefault
session_idYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, yet it only hints that documents are in-memory (non-persisted). It says nothing about what a session is, whether documents persist, or what the result contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no filler and a front-loaded verb. It is efficiently sized, though the terseness contributes to the under-specification noted elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description should explain the return shape (document ids vs. metadata) and session semantics, but it does neither. An agent could not confidently call this tool correctly from the description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single required parameter session_id, and the description never explains what a session id is or how to obtain one. The term '显式编辑器会话' (explicit editor session) is introduced but never defined, so the one parameter remains opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb+resource (list documents) scoped to an editor session, which distinguishes it from get_document_info. However, the qualifiers 'in-memory' and 'explicit session' are unexplained, leaving the exact scope somewhat fuzzy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this instead of get_document_info or other siblings, and no prerequisites or exclusions. The agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

redoC

重做显式文档,要求匹配修订。

NameRequiredDescriptionDefault
request_idNo
session_idYes
document_idYes
expected_revisionYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and mostly fails: it hints at an optimistic-concurrency check (the revision must match) but never says what happens on mismatch, whether the redo is itself reversible, what state is mutated, or what permissions/session state are needed. The one disclosed trait — revision must match — is the only real behavioral value present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single short sentence with no filler, which is structurally fine, but the brevity is under-specification rather than economy — the one clause present is cryptic ('显式文档') rather than front-loaded with actionable meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations, no output schema, and 0% parameter documentation, the description does far too little: it omits error behavior on revision mismatch, the relationship to undo, and the meaning of the required identifiers. An agent could call it, but would be guessing about failure modes and side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 4 parameters, so the description must compensate and does not. '修订' loosely maps to expected_revision, but session_id, document_id, and request_id (including whether request_id provides idempotency) are left entirely unexplained in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'redo' (重做) is specific and pairs implicitly with the sibling 'undo', but the object '显式文档' (explicit document) is an unusual phrasing that leaves it unclear whether the tool redoes an operation, a document state, or an edit session. An agent can guess it re-applies something that was undone, but the resource is not stated crisply enough to distinguish it confidently from apply_operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this versus 'undo' or 'apply_operations', which are the obvious alternatives. The clause '要求匹配修订' implies a precondition on expected_revision, but no explicit when/when-not guidance or exclusion is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_spriteC

显式保存文档;未命名文档必须指定路径。

NameRequiredDescriptionDefault
pathNo
overwriteNo
request_idNo
session_idYes
document_idYes
expected_revisionYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden: it does not disclose overwrite semantics, the optimistic-concurrency role of expected_revision, whether unsaved changes are flushed, or what errors occur on revision mismatch. Only the path requirement for unnamed documents is surfaced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the path condition is placed immediately after the main action. Brevity here borders on under-specification rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A mutation tool with six parameters, no annotations and no output schema needs substantially more disclosure than this. Key behaviors an agent must know to call it safely — overwrite risk, revision-conflict handling, return value — are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 6 parameters, and the description only illuminates one of them (path for unnamed documents). overwrite, expected_revision, request_id, session_id and document_id remain entirely undocumented, so the description fails to compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("显式保存文档" – explicitly save the document), and the qualifier distinguishes it from implicit/auto-saving. It is clear enough to separate from create_sprite, though the object is called a 'document' here while the tool is save_sprite.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives one conditional rule (unnamed documents must specify a path), which is useful, but says nothing about when to prefer this over apply_operations or whether saving is needed after edits. Usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

undoD

撤销显式文档,要求匹配修订。

NameRequiredDescriptionDefault
request_idNo
session_idYes
document_idYes
expected_revisionYes

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description must carry the full behavioral burden. It implies a mutation (something is reverted) and a concurrency guard ('requires matching revision'), but says nothing about what happens on revision mismatch, whether the undo is itself undoable, what gets restored, or what the result looks like — all critical for a destructive-ish operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence, front-loaded with the verb, so there is no waste — but the brevity is a byproduct of under-specification rather than disciplined density.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with zero annotation coverage, no output schema, and 0% schema descriptions, the description leaves most of the operational picture (prerequisites, failure modes, idempotency) unaddressed. It gestures at revision matching but is far from sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% with 4 parameters (request_id, session_id, document_id, expected_revision) all undocumented. The phrase 'requires matching revision' hints at the expected_revision parameter's conflict-check role, but session_id, document_id, and request_id (idempotency?) get no explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description contains an undo verb plus 'document', but '撤销显式文档' is ambiguous phrasing that doesn't clearly state it reverts the last explicit edit on a document, nor does it distinguish the tool from the sibling 'redo' or 'apply_operations'. An agent would need to guess whether this undoes an edit, a session, or a transaction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no indication of when to use this tool versus 'redo' or 'apply_operations', no precondition beyond the vague 'matching revision', and no exclusion or alternative named. The agent is left to infer the whole call policy.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv0.5.0
    • First observedapply_operations
    • First observedcreate_sprite
    • First observedget_connection_status
    • First observedget_document_info
    • First observedget_preview
    • First observedlist_documents
    • First observedredo
    • First observedsave_sprite
    • First observedundo

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    D
    maintenance
    Enables AI assistants to automate Aseprite tasks such as sprite sheet export, frame extraction, and Lua scripting for sprite manipulation.
    21
    35 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to drive Aseprite for pixel-art creation, including sprite setup, grid-based drawing, layer/frame/tag management, reference image import, and export, with rendered previews after every mutation.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Gives AI assistants headless control of the pixel-art editor by wrapping its command line and complete Lua scripting API. It enables inspecting sprite metadata, creating new sprites, exporting frames and packed spritesheets, and editing pixels, layers, frames, tags and palettes.
    MIT