Skip to main content
Glama
dabian321

drawio-parser-mcp

by dabian321

Server Quality Checklist

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

  • Disambiguation4/5

    Most tools target distinct operations (validate, parse, summarize, list, find), but analyze_drawio overlaps with both validate_drawio and parse_drawio, creating two potential points of confusion. The descriptions make the distinctions clear, so the ambiguity is limited.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern using snake_case (validate_drawio, parse_drawio, analyze_drawio, get_diagram_summary, list_cells, find_cell). The verbs are distinct and appropriate for each operation.

    Tool Count5/5

    Six tools is a well-scoped set for a Draw.io parser. Each tool serves a clear purpose, and the combination covers validation, parsing, summarization, listing, and lookup without unnecessary bloat.

    Completeness5/5

    The tool surface covers the full read-only lifecycle for a diagram parser: validation, structural parsing, combined analysis, summary statistics, cell listing, and targeted lookup. There are no obvious missing operations for the stated purpose.

  • Average 3.6/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
    • 0 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 2.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

  • 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 clearly discloses that the tool validates and parses, and that it returns both validation issues and parsed structure. However, it does not explain error handling for malformed XML, whether any side effects occur, or how issues are represented.

    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 short clauses: it states what the tool does and what it returns. Both pieces of information earn their place, the core operation is front-loaded, and there is no fluff or redundancy.

    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 single-parameter analysis tool, the description covers the operation and return value sufficiently to make a call. However, with no output schema and no annotations, it leaves the return format vague and does not explain how this tool relates to the sibling validate and parse tools, so an agent may not know when this is the right choice.

    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 single xml_content parameter, so the schema already documents it. The description adds no substantial meaning beyond restating that the content is Draw.io XML, which matches the schema. The baseline of 3 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 names a specific resource (Draw.io XML) and states the exact operations: validate syntax and parse structure. It also says the tool returns both validation issues and parsed structure, which distinguishes it from the separate validate_drawio and parse_drawio siblings, though it does not name them explicitly.

    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 about when to use analyze_drawio versus validate_drawio, parse_drawio, or the other sibling tools. The description implies it combines validation and parsing, but it never states that an agent should choose this tool when it needs both results together.

    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 full behavioral burden. It conveys that the operation is read-only and non-destructive via the verb 'Parse,' and it discloses the return payload ('cells, edges, layers, and statistics'). However, it does not address error behavior for malformed XML, size limits, or what happens when required elements are absent.

    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?

    Two sentences with no filler. The verb and resource are front-loaded, and the second sentence lists the concrete output items, giving an agent actionable information in the fewest possible words.

    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 one-parameter tool with no output schema, the description is nearly complete: it names the input and enumerates the return categories. It lacks error-handling details and sibling differentiation, but those gaps are minor relative to the tool's low complexity, and the lack of an output schema is partially compensated by the explicit return enumeration.

    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%, so the single parameter xml_content is already documented in the schema. The description's use of 'Draw.io XML' reinforces the parameter's meaning but adds no new semantic detail such as expected encoding, document size limits, or accepted XML variants. The baseline 3 applies since the schema handles the heavy lifting.

    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 ('Parse'), a resource ('Draw.io XML'), and the extracted output ('cells, edges, layers, and statistics'). This distinguishes it from validate_drawio, list_cells, and find_cell, but it does not explicitly differentiate itself from analyze_drawio or get_diagram_summary, which could plausibly produce the same 'statistics' and structural output.

    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 on when to use this tool versus its siblings. The description never mentions analyze_drawio, validate_drawio, or get_diagram_summary, so an agent has no basis for deciding whether parsing, validating, analyzing, or summarizing is the right call for a given task.

    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 behavioral disclosure burden. 'Find' implies a read-only lookup, but the description does not state what happens when the cell is not found, whether the search is recursive across the whole diagram, or what output the agent should expect.

    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 an 11-word sentence with no wasted words. It front-loads the action and resource while staying immediately parsable.

    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 lookup, the description is usable, but there is no output schema, no annotations, and no usage routing to alternatives. Return format and error behavior are left unspecified, which makes the description adequate yet 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?

    The input schema already describes both parameters with 100% coverage, including plain descriptions for xml_content and cell_id. The description adds little beyond identifying cell_id as the lookup key, which is already evident from the schema.

    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?

    States a precise operation — find a specific cell by ID — on a clear resource, a Draw.io diagram. The 'specific... by ID' qualifier distinguishes it from list_cells, which would return cells more generally.

    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 intended use is implied: call this when you have a cell_id and need that specific cell from XML content. However, it does not explicitly say when to use this tool instead of siblings like list_cells or when not to use it.

    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 burden of behavioral disclosure. It communicates that the tool is read-only in nature ('List', 'Returns') and what output to expect, which is useful. However, it does not disclose behavior around malformed XML, how system cells are treated beyond the schema default, or any limitations on result size or structure.

    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 filler. The core action and output contract are front-loaded, and every sentence adds value.

    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?

    Despite lacking an output schema and annotations, the description states the input (implicitly the diagram XML), the scope of cells returned, and the output fields. It is nearly complete for a simple listing tool; the main gap is usage routing among siblings and error behavior, which are minor for this operation.

    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%, so the schema already documents both parameters adequately. The description does not add additional meaning about xml_content or include_system_cells beyond what the schema provides, so the baseline score 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 identifies the operation as listing all cells in a Draw.io diagram, specifies that this includes shapes and connections, and states the returned fields (IDs, types, labels, connections). This makes the tool's purpose distinct from siblings like validate_drawio, parse_drawio, and find_cell.

    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 gives no explicit guidance on when to use this tool versus alternatives such as find_cell or get_diagram_summary. It implies a broad listing use case but does not state when a more targeted or analytical sibling would be preferable.

    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 provided, the description carries the full burden of behavioral disclosure. It explicitly states what is returned (statistics and overview) and what is not returned (full structure details), giving the agent a clear expectation of the tool's scope. It does not mention error behavior or input validation, but the operation is a simple read-style summary with no side effects.

    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 one tightly written sentence that front-loads the primary purpose and immediately clarifies the key limitation. Every word earns its place; there is no repetition or filler.

    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 tool with one parameter and no output schema, the description adequately explains what the agent can expect: a concise summary with statistics and overview, but not full structure. It could be slightly richer by hinting at what kinds of statistics are included, but given the tool's low complexity, the description is sufficient for correct invocation.

    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% and the only parameter, xml_content, is adequately documented as 'The Draw.io XML content to summarize'. The description adds no additional detail about expected encoding, size limits, or format nuances, so it provides no value beyond the schema—but the schema already covers the parameter sufficiently.

    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 a specific verb ('Get'), a resource ('Draw.io diagram'), and a concrete deliverable ('concise summary', 'statistics and overview'). It also distinguishes itself from structure-focused tools by explicitly saying it returns content 'without full structure details', which differentiates it from parse_drawio and list_cells.

    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 'without full structure details' implies you should use this tool when you only need an overview, and that you would use parse_drawio or list_cells if you need the full structure. However, it never explicitly states when to choose this tool over the siblings, nor does it name any alternative or exclusion condition.

    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?

    No annotations are present, so the description carries the full behavioral disclosure burden. It clearly states that validation covers syntax and structure and that the result includes errors, warnings, and suggestions, giving the agent a solid contract. It does not explicitly state that there are no side effects, but validation is inherently non-mutating.

    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 with no waste. It front-loads the verb and resource, then states the return value components. Every word contributes to the agent's understanding.

    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 single-parameter validation tool with no output schema, the description covers the essential input/output contract: what is validated and what result categories to expect. It lacks explicit response format details and sibling-tool comparison, but these are minor for the tool's simplicity.

    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%, so the parameter already carries full meaning ('The Draw.io XML content to validate'). The tool description adds no extra parameter-level detail such as size limits, encoding expectations, or formatting requirements, so baseline 3 applies.

    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 ('Validate') and a clear resource ('Draw.io XML syntax and structure'), and it states what the result contains (errors, warnings, suggestions). This clearly differentiates it from siblings like parse_drawio and analyze_drawio without needing to open the schema.

    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 purpose strongly implies when to use it — when Draw.io XML needs syntax/structure validation — but there is no explicit guidance about when not to use it or which sibling tool to prefer for parsing or analysis. The context is clear, but no alternative routing is provided.

    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

pyDrawioParserMCP MCP server

Copy to your README.md:

Score Badge

pyDrawioParserMCP 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/dabian321/pyDrawioParserMCP'

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