Skip to main content
Glama
chlee1001

ExcaliDash MCP

by chlee1001

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool has a distinct purpose: selection state vs. catalog listing vs. selection mutation vs. creation vs. summary reading vs. element inspection vs. operations application. There is no overlapping or ambiguous tool that could cause an agent to misselect. The descriptions clearly delineate responsibilities.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern using snake_case, with verbs like get, list, select, create, inspect, and apply. The pattern is predictable and uniform across the set, making it easy for an agent to infer behavior from the name.

    Tool Count5/5

    With exactly 7 tools, the set is well-scoped for a drawing management MCP. Each tool serves a clear, non-redundant function, and the count is neither too sparse nor overwhelming for the stated purpose.

    Completeness4/5

    The toolset covers listing, creating, selecting, reading summaries, inspecting elements, and applying operations, which are core workflows. A notable gap is the absence of a delete_drawing tool, and there is no explicit tool for updating drawing metadata, but these are minor and can be worked around.

  • Average 3.7/5 across 7 of 7 tools scored.

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

    • No community issues in the last 6 months
    • 2 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 MIT License.

  • 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?

    No annotations are provided, so the description carries full responsibility. It discloses the optional selection side effect but omits details about permissions, return values, failure modes, or the meaning of 'default target.' This is insufficient for a mutation 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 begins with the action and covers the core purpose efficiently.

    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 two-parameter create operation, the description is adequate but not fully complete. It does not clarify what 'default target' means, what the tool returns, or any side effects, and with no annotations, additional context would be valuable.

    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 the description does not explain the 'name' parameter or adequately detail the 'select' parameter. It says 'optionally select' but fails to convey that this controls the boolean 'select' field or how 'name' is used.

    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 creates a new empty Excalidraw drawing and optionally selects it as the default target. It uses a specific verb and resource, distinguishing it from sibling tools like select_drawing or list_drawings.

    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 when a new drawing is needed, but it does not explicitly mention when to use this tool versus alternatives or any exclusions. It lacks clear guidance on the decision between creating and selecting an existing drawing.

    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 for behavioral disclosure. It implies a read-only operation via 'Inspect' but does not confirm side effects, permissions, or return behavior. 'Bound children' is not defined, and output format is omitted.

    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 a single concise sentence that front-loads the primary action and includes key selection logic without unnecessary words. It earns its place despite being short.

    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 the tool has no annotations and no output schema, the description is too minimal. It does not describe return values, the nature of 'bound children', or any operational context, leaving significant gaps for an agent to handle 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 description compensates for the 0% schema coverage by explaining drawingId's selection logic ('Uses drawingId when provided, otherwise the selected drawing'). elementId is only implicitly described as the element to inspect, so not all parameter semantics are fully clarified.

    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 ('Inspect') and the resource ('one element and its bound children'), which distinguishes it from sibling tools like get_drawing_summary or select_drawing. It is specific about the scope of the inspection.

    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 provides useful context by explaining how drawingId is used ('Uses drawingId when provided, otherwise the selected drawing'), giving clear guidance on parameter selection. However, it does not explicitly compare with alternatives or state when-not-to-use, leaving the choice somewhat implied.

    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 the burden of disclosing behavioral traits. It mentions the account API key scope, which is useful, but does not describe pagination behavior, return format, or whether it reads from a cache. For a simple list operation, this is average but not rich in context.

    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 concise: two sentences with no wasted words. The first sentence states the action, the second provides usage context. It is well-structured and front-loaded.

    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 straightforward, and the description provides the essential purpose and temporal usage. However, with no output schema and no annotations, the description does not mention what the tool returns, such as drawing IDs or metadata, nor does it discuss default pagination or search semantics. This leaves some gaps for a complete understanding.

    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%, and the description does not elaborate on the parameters (limit, offset, search). While the schema provides names and defaults, the description fails to clarify the meaning of 'search' (e.g., search by name, content, etc.) or how pagination works, leaving significant interpretation to the agent.

    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 verb 'List' and the resource 'ExcaliDash drawings available to the account API key', which precisely defines the tool's scope. It distinguishes itself from sibling tools like select_drawing by indicating this is a listing operation, not a selection or creation.

    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 phrase 'Use this before selecting a drawing' provides explicit temporal guidance relative to the sibling tools. It tells the agent when to invoke this tool, though it does not explicitly mention alternatives or when not to use it, leaving some room for ambiguity.

    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 full behavioral burden. It discloses that the tool sets a process-scoped default target, which is the core behavior. However, it does not mention input validation, behavior on invalid IDs, overwriting previous selections, or return values. This leaves meaningful gaps for a state-changing 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 sentence of 15 words, front-loading the verb and resource. It contains no filler or redundant information, making it highly concise and well structured.

    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 one-parameter tool, the description covers the core purpose, but lacks details about return values (no output schema) and prerequisite steps like listing drawings to get a valid ID. It is adequate for a straightforward selection operation but not fully complete for an agent to invoke with confidence.

    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%, and the description adds no information about drawingId beyond its name. It does not explain where to obtain the ID, whether it must reference an existing drawing, or any format expectations. The parameter name is self-explanatory, but the description fails to compensate for the lack of schema details.

    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 selects an Excalidraw drawing as the default target for subsequent tools. This is a specific verb+resource+effect combination that also distinguishes it from siblings like get_selected_drawing (retrieve) and list_drawings (list).

    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 provides clear context: use this tool to set a default target before invoking other tools. It does not explicitly mention alternatives or exclusions, but the phrase 'subsequent tools' implies the intended workflow. Since no alternatives are named, it stops short of a 5.

    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 carries the transparency burden. It discloses atomicity, the 50-operation limit, and the drawing-target fallback behavior. However, it does not mention that operations may be destructive (e.g., delete, revert_to_snapshot), failure semantics, or what happens on partial failure, so coverage is only partial.

    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 only two sentences, front-loads the core purpose ('Atomically apply...'), and contains no redundant detail. Every clause earns its place.

    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?

    This is a complex tool with many operation types, no output schema, and no annotations. The description covers essential preconditions (read summary first) and target resolution, but it omits details about individual operation semantics, error behavior, and return values. It is minimally adequate given the rich schema, but not comprehensive.

    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 0%, so the description must compensate. It adds meaning for drawingId (used when provided, otherwise selected drawing) and reinforces the 50-operation cap, but it does not explain the ops array structure or clientBatchId. The schema's const values and required fields are self-descriptive, but clientBatchId remains unexplained.

    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 opens with 'Atomically apply up to 50 semantic operations,' clearly identifying a batch mutation tool for drawing elements. The verb 'apply' and the resource 'semantic operations' distinguish it from sibling read/inspection tools such as get_drawing_summary and inspect_drawing_element.

    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 explains target resolution: 'Uses drawingId when provided, otherwise the selected drawing.' It also instructs 'Read the summary first,' implying a dependency on get_drawing_summary, though it does not state exclusions or when alternative mutation tools would be preferred.

    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 available, the description carries the full burden. It discloses the read-only nature ('Read') and the fallback behavior ('Uses drawingId when provided, otherwise the selected drawing'). However, it does not mention potential errors when no drawing is selected or what the returned summary contains.

    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 with no redundancy. It front-loads the core action ('Read a compact structural summary') and adds only the necessary fallback detail. Every word earns its place.

    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 one-parameter read tool, the description covers the main behavior but leaves gaps: no output schema exists, so the return value of the 'structural summary' is not defined. Error handling when neither drawingId nor a selected drawing is available is also unspecified.

    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 must compensate. It explains the single parameter drawingId's purpose and optionality, including the fallback to the selected drawing. This adds meaningful semantics beyond the bare schema, though it doesn't elaborate on ID format or source.

    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 purpose: 'Read a compact structural summary of a drawing.' This uses a specific verb ('Read') and resource ('compact structural summary'), distinguishing it from sibling tools like get_selected_drawing or inspect_drawing_element.

    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 this tool (to get a summary) but does not explicitly contrast it with alternatives. It provides context on parameter usage via the fallback rule, but no explicit when-to-use/when-not-to-use guidance is given.

    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 must carry the behavioral burden. It does add useful context by specifying that selection is process-specific and that the action is a non-mutating 'Return'. However, it does not disclose behavior for an empty selection or the exact shape of what is returned.

    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, front-loaded sentence contains all necessary information with no filler or redundancy. It avoids restating the tool name and is appropriately sized for a trivial getter.

    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?

    While the tool is simple (zero params), the lack of an output schema and annotations means the description should specify what 'drawing' returns (e.g., object, ID) and what happens if no drawing is selected. It covers the core purpose but leaves edge-case and return-shape details undetermined.

    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 provides complete coverage (100% vacuously). Per the rubric, zero-parameter tools receive a base score of 4; the description adds meaning by indicating that the tool relies on existing process selection state rather than arguments.

    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 uses a specific verb ('Return') and a specific resource ('the drawing currently selected by this MCP process'), and it clearly differentiates from sibling tools like list_drawings (returns all drawings) and select_drawing (changes the selection).

    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 phrase 'currently selected' implies this should be used after a selection has been made via select_drawing, but the description does not explicitly state when to use it versus alternatives or what happens if there is no current selection. Usage is implied rather than stated.

    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

excalidash-mcp MCP server

Copy to your README.md:

Score Badge

excalidash-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/chlee1001/excalidash-mcp'

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