Skip to main content
Glama

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation5/5

    Each tool has a distinct purpose: app control (launch_aseprite), project creation (create_project), animation (add_animation), drawing (draw_asset), preview (get_preview), and low-level scripting (run_script). No two tools overlap in their primary function, and run_script is clearly positioned as a general escape hatch.

    Naming Consistency5/5

    All tools follow a consistent snake_case verb_noun pattern (run_script, launch_aseprite, create_project, add_animation, draw_asset, get_preview). This makes the API highly predictable and easy to navigate.

    Tool Count5/5

    Six tools is well-scoped for an Aseprite MCP server. Each tool covers a core operation without redundancy, staying within the ideal 3-15 range for a focused integration.

    Completeness2/5

    The tool surface lacks standard lifecycle operations such as opening an existing project, saving/exporting, and managing layers or palettes. While run_script can perhaps fill these gaps via custom Lua code, the explicit toolset is incomplete for typical Aseprite workflows.

  • Average 3.3/5 across 6 of 6 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 3 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under GPL 3.0.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

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

    With no annotations, the description carries the full burden of behavioral disclosure. It states the operation but omits side effects (e.g., modifying the .aseprite file), the meaning of the frames parameter, and any requirements or permissions. This is insufficient for safe invocation.

    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?

    The description is a single, efficient sentence that front-loads the core purpose without any wasted words or unnecessary complexity.

    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?

    Given no annotations, no output schema, and moderate complexity (3 parameters), the description fails to compensate. It does not explain parameter semantics, return behavior, or operational context, making it minimally adequate but incomplete for autonomous use.

    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?

    The schema describes tag and path, but the description adds little beyond repeating 'tag' and 'frames.' It does not explain the frames parameter's meaning, default behavior, or relationship to the sprite, leaving a gap for the undocumented parameter.

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

    Purpose5/5

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

    The description clearly states the action (adds) and the specific resource (named animation tag and frames to a sprite). It distinguishes itself from sibling tools like draw_asset and get_preview by focusing on animation metadata rather than drawing or previewing.

    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 is provided on when to use this tool versus alternatives, nor any exclusions or prerequisites. The description only defines the core functionality, leaving the agent to infer usage from the tool name and parameters.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Draws,' which implies a mutating action, but there is no mention of side effects, required project state, error behavior, or output. This leaves significant uncertainty for an agent.

    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?

    The description is a single sentence, front-loaded with the core action, and contains no extraneous words. It is concise and to the point.

    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 tool with four required parameters, no output schema, and no annotations, the description is too thin. It does not explain how 'location' is used, what 'path' refers to, or any expected behavior after drawing. An agent would struggle to invoke this correctly without additional context.

    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 only 50% (path and asset have descriptions). The description adds minimal meaning for x and y by mentioning 'location,' but does not clarify coordinate system, units, or how the path relates to the asset. It does not sufficiently compensate for the low schema coverage.

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

    Purpose5/5

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

    The description clearly states the action ('Draws') and the resource ('semantic asset') with concrete examples ('grass', 'tree'). It also mentions 'at a location,' which maps to the x/y parameters. This is specific and distinguishes it from sibling tools like get_preview or add_animation.

    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 explicit guidance on when to use this tool versus alternatives. The description does not mention prerequisites, execution context, or when it would be preferred over sibling tools like run_script or create_project. The usage context is left entirely to inference.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden of behavioral disclosure, but it only states 'Opens Aseprite GUI.' It lacks context on side effects, blocking behavior, return values, or requirements (e.g., graphical environment).

    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?

    The description is a single four-word sentence with no filler. It is appropriately sized for a tool with no parameters and a simple action.

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

    Completeness3/5

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

    Given the low complexity and lack of schema richness, the description is minimally adequate but lacks contextual details like use cases, expected effects, or how it relates to sibling tools.

    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 has zero parameters and the schema coverage is 100%, so no additional parameter explanation is needed. The 0-param baseline of 4 applies.

    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 uses a specific verb ('Opens') and resource ('Aseprite GUI'), clearly indicating the tool's function. It does not explicitly differentiate from sibling tools like run_script, but the target is concrete.

    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 is given about when to use this tool versus alternatives such as run_script or get_preview. There is no mention of prerequisites, exclusions, or preferred contexts.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only mentions 'standard layers' without explaining what that entails or any side effects (e.g., overwriting existing files, whether Aseprite needs to be running, or what the return value is). This is insufficient for a creation tool.

    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?

    The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the core purpose and an additional detail ('standard layers') in minimal space.

    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 tool with 3 parameters, no annotations, and no output schema, the description is too minimal. It does not explain the meaning of standard layers, potential side effects, or expected return value, leaving significant gaps for an agent to operate safely and correctly.

    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?

    The schema description coverage is only 33%, with only 'name' having an example. The description does not clarify the meaning or usage of 'width' and 'height' beyond their defaults. Since the description does not compensate for the missing parameter documentation, the agent must guess at the role of these fields.

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

    Purpose5/5

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

    The description clearly states the primary function: 'Creates a new Aseprite project with standard layers.' The verb 'creates' is specific and the resource ('Aseprite project') is unambiguous. The mention of 'standard layers' adds scope and distinguishes it from sibling tools like launch_aseprite or add_animation.

    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?

    The description implies usage for creating new projects, but provides no explicit guidance on when to use this tool versus alternatives. There is no mention of when-not-to-use, prerequisites, or exclusions, leaving the agent to infer context from the tool name and sibling list.

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

  • Behavior3/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 implies a read-only operation via 'Gets' but does not disclose any additional behavioral traits such as file existence requirements, side effects, or potential errors. This minimal disclosure is adequate for a simple preview tool but leaves some ambiguity.

    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?

    The description is a single, front-loaded sentence that efficiently communicates the tool's action and resource without any waste. It is appropriately sized for the tool's simplicity.

    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 tool with one parameter and no output schema, the description sufficiently identifies the input (Aseprite file) and output (PNG preview). While it lacks notes on error conditions or assumptions, the simple context makes it largely complete for an agent to invoke correctly.

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

    Parameters3/5

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

    The input schema provides 100% coverage for the single 'path' parameter with a clear description ('Path to the .aseprite file'). The description only restates this as 'specified Aseprite file', adding no extra semantic value beyond the schema, so the baseline of 3 is appropriate.

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

    Purpose5/5

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

    The description clearly states 'Gets a PNG preview of the specified Aseprite file', using a specific verb ('Gets') and resource ('PNG preview of Aseprite file'). This distinguishes it from sibling tools that focus on scripting, launching, creating projects, adding animations, or drawing assets.

    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 description provides no guidance on when to use this tool versus alternatives, and does not mention any exclusions or prerequisites. It is a purely functional statement without contextual usage direction.

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

  • 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 of behavioral disclosure. It only mentions running a script and drawing/modifying, but fails to disclose potential side effects, prerequisites (such as Aseprite already running), or that scripts can execute arbitrary code. This is a significant gap for a script execution tool.

    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?

    The description is two sentences, front-loaded with the verb and resource, and contains no filler. Every word contributes to understanding the tool's function and use case.

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

    Completeness3/5

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

    The tool is simple with one well-documented parameter, but the absence of annotations and output schema means the description should provide more context about side effects and requirements. It gives a clear purpose but omits important details like the need for Aseprite to be running or the arbitrary nature of Lua scripts, leaving it slightly incomplete.

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

    Parameters3/5

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

    Schema description coverage is 100% for the 'script' parameter, so the baseline is 3. The tool description adds no additional meaning about the parameter itself—it only restates the purpose. Since the schema already explains the parameter, no extra credit is given.

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

    Purpose5/5

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

    The description clearly states the tool runs a custom Lua script in Aseprite and specifies the purpose of procedural drawing/modification. This distinguishes it from sibling tools like launch_aseprite, create_project, and draw_asset, which have more specific or different functions.

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

    Usage Guidelines4/5

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

    The description explicitly says 'Use this to procedurally draw/modify sprites, animations, or projects,' giving clear context for when to use the tool. However, it does not mention when not to use it or explicitly reference alternatives, so it lacks exclusionary guidance.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

aseprite_mcp MCP server

Copy to your README.md:

Score Badge

aseprite_mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bauneAustin/aseprite_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server