Skip to main content
Glama

export_bpmn

Read-only

Export BPMN diagrams to XML, SVG, PNG, animated GIF/APNG/MP4/WebP, or interactive HTML, with optional lint validation and file output.

Instructions

Export a BPMN diagram as XML, SVG, PNG, an animated GIF/APNG/MP4/WebP, or a standalone interactive HTML embed, and write it to a file. By default, runs bpmnlint and blocks export if there are error-level lint issues. Set skipLint to true to bypass validation. Optionally scope to a subprocess or participant via elementId (xml/svg/both only). Use format 'both' to get XML and SVG in a single call. PNG/animated/HTML formats always write to filePath (required for those formats) rather than inlining. Animated formats render token-simulation driven by an optional TOML scenario (see the executable-Camunda-7 guide resource); omit scenario to use the diagram's own default. gif/apng/mp4/webp/html require optional dependencies (gifenc or ffmpeg for encoding, smol-toml for scenario parsing) — errors name the missing one. The exported text content is also returned in the response, unless it is large — beyond a size threshold, xml/svg/both return a bpmn://diagram/{id}/xml or /svg resource_link plus a short summary instead of the full text; pass inline: true to force full text regardless of size. Binary/HTML formats return a confirmation only.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fpsNogif/apng/mp4/webp only: rendered animation frame rate.
scaleNopng/animated formats: pixel density multiplier. Default: 2 for png, 1 for animations.
formatYesThe export format: 'xml' for BPMN XML, 'svg' for SVG image, 'both' for XML and SVG in one call, 'png' for a static image, 'gif'/'apng'/'mp4'/'webp' for an animated token-simulation, 'html' for a standalone interactive embed.
inlineNoxml/svg/both only: force full text inline even for a large diagram that would otherwise be summarized as a bpmn://diagram/{id}/xml or /svg resource_link. Default: false.
encoderNogif format only: 'auto' (default) prefers ffmpeg when on PATH for better quality, else the bundled gifenc.
filePathYesFile path to write the exported content to. For 'both' format, writes the XML portion. Required for png/gif/apng/mp4/webp/html. Directories are created automatically.
scenarioNogif/apng/mp4/webp only: TOML scenario steering token-simulation (which gateway branches/events fire, and when). Omit to render the diagram's own default scenario.
skipLintNoSkip lint validation before export. Default: false (lint errors block export).
diagramIdYesThe diagram ID
elementIdNoOptional ID of a SubProcess or Participant to export as a standalone diagram (xml/svg/both only). When provided, lint gating is skipped.
backgroundNopng/animated/html formats: background color (CSS color string, e.g. "white"). Default: transparent.
lintMinSeverityNoMinimum lint severity that blocks export. 'error' (default) blocks only on errors. 'warning' blocks on warnings too. Useful for strict CI pipelines.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only declare readOnlyHint/openWorldHint; the description carries substantial extra burden: lint gating and its bypass, the sentence-level note that PNG/animated/HTML always write to filePath, optional-dependency failures that name the missing package, and the size-threshold behavior where large xml/svg returns a bpmn:// resource_link plus summary while binary formats return only a confirmation. That is unusually rich behavioral disclosure.

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

Conciseness4/5

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

A single dense paragraph, front-loaded with the core action and format list before secondary concerns. Every sentence carries information, though the wall-of-text format with many embedded parentheticals makes it less scannable than it could be for 12 parameters.

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

Completeness5/5

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

For a 12-parameter tool with no output schema, the description explicitly covers return behavior (inline text, resource_link for oversized output, confirmation-only for binary), dependency failure modes, and lint interaction. Nothing an agent needs to invoke it correctly is missing.

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 coverage is 100% and the schema descriptions already document fps, scale, inline, encoder, filePath, scenario, skipLint, etc. in detail, so the baseline is 3. The description reinforces and slightly extends this (e.g., 'both' writes the XML portion, elementId skips lint gating), but adds little the schema does not already state.

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 a precise verb+resource ("Export a BPMN diagram") and enumerates every supported output format, immediately distinguishing it from the create/add/delete/list siblings. An agent can tell exactly what this tool produces without opening 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 Guidelines4/5

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

It gives clear in-tool decision guidance: default behavior runs bpmnlint and blocks on errors, skipLint=true bypasses, elementId is scoped to xml/svg/both, format 'both' bundles XML+SVG, and inline=true forces full text. It does not name any sibling alternative, but no competing export tool exists, so the when-to-use context is effectively complete.

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