Skip to main content
Glama

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation4/5

    Most tools target distinct drawing operations (draw_line, draw_box, draw_arrow, add_text) or canvas lifecycle (new, export, batch). However, canvas_export and canvas_preview are explicitly described as identical, which creates a potential selection ambiguity.

    Naming Consistency4/5

    All tool names use lowercase snake_case and are readable. Drawing operations follow verb_noun (draw_line, draw_box, add_text), while canvas operations follow noun_verb (canvas_export, canvas_new). The two subgroups are internally consistent, but the mixed ordering is a minor deviation.

    Tool Count5/5

    Eight tools is well within the ideal 3-15 range and covers the core needs of creating and exporting ASCII diagrams without excess. Each tool serves a clear purpose in the drawing workflow.

    Completeness5/5

    The tool set covers the full lifecycle: creating a canvas, adding text, drawing lines/boxes/arrows, previewing, batch execution, and exporting. No obvious dead ends or missing core operations for the domain.

  • Average 3.8/5 across 8 of 8 tools scored.

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

    • No community issues in the last 6 months
    • No commit activity data available
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • 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

  • Behavior3/5

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

    With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the newline support feature, which adds context, but it doesn't explicitly state that the operation modifies the canvas or any side effects. The verb 'add' implicitly signals mutation, but error conditions or interaction with existing content are not addressed.

    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, concise sentence that front-loads the action and includes a key feature (newline support). There is no redundant or filler content, making it 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.

    Completeness3/5

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

    For a simple add-text tool with three parameters and no output schema, the description is adequate but incomplete. It lacks coordinate system details (e.g., pixel units, origin), potential interactions with existing canvas elements, and any return value or error information. Given the sibling drawing tools, some shared context might be assumed but is not explicitly stated.

    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 only 33%, with only 'text' having a description. The description confirms x and y as coordinates but adds no detail on units, origin, or valid ranges. It does explain the newline escape in text, which is helpful. Overall, the description partially compensates for the missing x/y schema descriptions but leaves gaps.

    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 clearly states the tool's action: adding text at specified coordinates, with newline support. It effectively distinguishes from sibling drawing tools (draw_line, draw_box, etc.) by focusing on text placement rather than shape drawing. However, it doesn't explicitly mention the canvas context, which is implied by the sibling names.

    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. The description only explains what it does, not the context in which it should be selected or any exclusions. There is no mention of when drawing tools would be preferable or any prerequisites for using this tool.

    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 present, so the description must convey behavioral traits. It only says 'create/reset' without disclosing whether resetting destroys existing content, whether the operation is idempotent, or any side effects on current canvas state. The potential destructiveness of 'reset' is implied but not explicitly stated.

    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, concise phrase ('创建/重置一个空白画布') that states the core function without any unnecessary words. It is front-loaded and every word contributes meaning.

    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 tool's simplicity (no parameters, no output schema), the description is minimally sufficient but lacks explicit context about whether it clears existing content and how it relates to the sibling drawing tools. It could benefit from a note that it initializes a fresh canvas for subsequent operations.

    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, so the input schema fully covers all parameter needs. The description adds no parameter-level semantics, but with no parameters, the baseline score of 4 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 the tool's function: to create or reset a blank canvas. This is a specific verb+resource pair that distinguishes it from siblings like draw_line or add_text, which operate on an existing canvas rather than initializing one.

    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 about when to use this tool versus alternatives. It does not say to use canvas_new before drawing, nor does it mention when a reset is appropriate. The lack of any usage context makes it unclear how the tool fits into a workflow.

    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 provided, the description must disclose behavioral traits. It mentions that the output is ASCII text, but it does not state whether this operation is read-only, if it modifies the canvas, or if it returns a string versus writing to a file. This lack of safety/side-effect context leaves the agent uncertain about the operation's impact.

    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 concise sentence that is front-loaded and directly states the tool's purpose. Every word earns its place, and there is no unnecessary filler or repetition.

    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?

    Given the tool's simplicity (0 parameters, no output schema), the description is largely complete: it identifies the action, target, and result format. However, it could be slightly more explicit about the return value (whether the ASCII text is returned directly) and that the canvas is left unchanged, which would improve completeness for an agent.

    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 input schema has zero parameters, so there is nothing to explain. Per the baseline for 0-parameter tools, the description adequately covers parameter semantics by omission; the tool requires no arguments, and the description does not need to add further meaning.

    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 ('导出' / export), the resource ('当前画布' / current canvas), and the output format ('ASCII 文本' / ASCII text). This is specific and effectively distinguishes it from sibling tools like canvas_preview (likely visual preview) and draw_line (drawing 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?

    No guidance is provided on when to use this tool versus alternatives such as canvas_preview or canvas_batch. The description only states what it does, without any contextual hints or exclusions, so an agent receives no help in selecting among siblings.

    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 discloses the geometric behavior (draws an arrowed line, arrow points to endpoint) but does not mention side effects (e.g., modifying a canvas), coordinate system, or arrow styling. This adds some value but leaves significant behavioral context unaddressed.

    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 concise sentence in Chinese, front-loading the key action and distinguishing feature. No unnecessary words or repetition; it earns its place.

    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?

    The tool has no annotations, no output schema, and only a minimal description. It does not mention return values, prerequisites (like an active canvas), coordinate system, or potential side effects. Given the tool's mutating nature and lack of structured support, the description is insufficient for an agent to fully understand the operation's context.

    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 schema has zero parameter descriptions, so the description must compensate. It does by implying that the second point (x2,y2) is the endpoint since the arrow points to the endpoint. However, it does not explicitly name or explain each parameter's role beyond this hint, which is minimal compensation for 0% 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 that the tool draws an arrowed line between two points with the arrow pointing to the endpoint. This specifies the action, the resource (arrowed line), and distinguishes it from sibling tools like draw_line (without arrow) and draw_box.

    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 when to use the tool (when an arrowed line between two points is needed) but does not explicitly mention alternatives or exclusions. No guidance on when not to use this tool versus draw_line or other siblings is provided.

    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?

    With no annotations, the description must carry the burden. The word 'preview' strongly implies a read-only operation, and the phrase 'same as canvas_export' adds behavioral context if that tool is known. However, it doesn't explicitly state that it makes no changes, nor describe the output or any side effects, leaving 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, compact sentence that immediately states the core purpose and usage context. It is front-loaded and contains no filler, making it highly efficient.

    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 no parameters, no output schema, and a simple preview function, the description is largely complete. It explains the purpose and when to use it (intermediate checks). The only minor gap is that it doesn't describe the output format, but given the simplicity, this is not critical.

    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, so the baseline is 4. The description correctly omits any parameter details since none exist. No additional semantic explanation is needed.

    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 clearly states the tool's function: '预览当前画布状态' (preview the current canvas state), using a specific verb 'preview' and a clear resource. However, it references being 'same as canvas_export,' which introduces slight ambiguity about tool distinction, though it still conveys the core purpose.

    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 it is used for intermediate checks ('用于中间检查'), which gives clear context on when to use this tool. It doesn't explicitly list exclusions or alternatives, but it does reference canvas_export as the same tool, implying usage context. This is clear but not exhaustive.

    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?

    There are no annotations, so the description must convey side effects. It adds useful details like coordinate meaning, character units, and label placement, but does not disclose whether the box is filled/outline, whether existing content is overwritten, or what the return value is.

    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 concise sentences, front-loaded with the primary purpose and immediately followed by parameter semantics. No wasted words.

    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?

    For a 5-param drawing tool with no output schema and no annotations, the description covers the main purpose and parameters, but it omits behavioral details such as error handling, whether a canvas must already exist, and the return value. It is adequate but not fully complete.

    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 schema already documents all 5 parameters (100% coverage), so the baseline is 3. The description adds value by clarifying that w/h are measured in character units and that the label is centered on the top border, which the schema descriptions lack.

    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 states the core function: '在画布上绘制一个矩形框' (draw a rectangular box on the canvas), using a specific verb and resource. This clearly distinguishes it from siblings like draw_line and draw_arrow.

    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 the tool is for drawing rectangles but offers no explicit guidance on when to use it over draw_line/draw_arrow, and does not mention any exclusions or prerequisites.

    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?

    With no annotations provided, the description carries full burden. It discloses that all instructions are executed and the canvas is auto-exported, returning the final ASCII result. However, it does not mention whether a canvas_new instruction is required first, error handling, or state reset behaviors.

    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 core purpose, and explains the ops parameter efficiently without redundant details.

    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 batch tool with nested schema and no output schema, the description provides a clear overview of input structure and output (final ASCII). It could benefit from noting the necessity of canvas_new or error behavior, but overall it is sufficiently complete for an agent to understand the tool's role.

    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 schema covers all parameter details (ops array with specific op types and required fields), so the description's high-level explanation of 'ops is an instruction array...' adds minimal value beyond the schema. 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 'batch execute drawing instructions and return final ASCII result', identifying the tool as a batch operation for drawing. This distinguishes it from sibling tools that handle individual drawing operations like draw_box, draw_line, etc.

    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 tool's name and description imply it is for executing multiple drawing instructions in sequence. Sibling tools (draw_box, draw_line, etc.) serve as single-operation alternatives, but the description does not explicitly state when to choose one over the other, only indicating batch execution.

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

  • Behavior4/5

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

    With no annotations, the description carries the full burden and discloses the key behavioral trait that the line is L-shaped (horizontal first, then vertical). This goes beyond the parameter names and provides meaningful context. It doesn't mention potential side effects like canvas overwriting, but the core drawing behavior is well described.

    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, short, front-loaded sentence in Chinese (14 characters) with no filler words. It efficiently conveys the verb, resource, and key behavioral detail.

    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 simple drawing tool with four integer parameters and no output schema, the description is nearly complete. It specifies the drawing behavior and the pair of points. Missing details like coordinate origin or start/end order are not critical to correct invocation, and the description is adequate for a low-complexity tool.

    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?

    Schema description coverage is 0%, so the description compensates by explaining that coordinates represent two points between which the line is drawn. The parameter names x1,y1,x2,y2 are self-explanatory, and the description adds the L-shaped path meaning. It lacks explicit details on coordinate units or order, but is sufficient for basic invocation.

    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 it draws a polyline between two points with a specific orthogonal path (horizontal then vertical). This is a specific verb+resource combination that distinguishes it from siblings like draw_box and draw_arrow.

    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?

    It implies usage for creating orthogonal polylines on the canvas but does not explicitly state when to prefer this over alternatives. The path specification gives some selection context, but there are no clear exclusions or references to sibling tools.

    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

asciiflow-mcp MCP server

Copy to your README.md:

Score Badge

asciiflow-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/bobooooo/asciiflow-mcp'

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