DrawFather
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DRAWFATHER_DIR | No | The storage folder for drawings. Without this setting it defaults to ./drawings relative to the server's working directory. Use an absolute folder path in your client configuration so your files are easy to find. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_capabilitiesB | Discover supported templates, primitives/roles, styles, operations or concrete workflow examples without fetching full schemas. Start with overview. |
| list_templatesB | Get general composition examples, the typed technical catalog and sketch styles. Request get_capabilities topic technical with recipe for a complete technical design. |
| get_formatA | Explicitly retrieve full native schemas and a source example. For concise discovery prefer get_capabilities. |
| list_drawingsB | List saved drawing names with pagination. |
| get_drawingA | Default: a compact document and graph summary. Use view elements with ids to read selected elements and semantic associations; view graph pages semantic records and incident connections. view source explicitly returns complete JSON. Cursors are source/query-bound. |
| compose_drawingB | Create process/cycle/architecture from steps or a graph. Metadata is compact by default; opt into includeSource and preview. Provide expectedRevision only for explicit replacement. Example: get_capabilities topic examples. |
| compose_technicalA | Create typed flowchart, sequence, C4, ER, state, class, dataflow, dependency, activity or deployment drawings. Discover get_capabilities topic technical and read drawfather://schema/technical for exact fields. Nodes and connections need typed notation. Existing files require expectedRevision for explicit replacement. |
| compose_creativeA | Create mindmap, gantt, timeline, journey, kanban, annotated sketch, storyboard or wireframe. Read drawfather://schema/creative and drawfather://creative. reuseFrom optionally inherits a saved creative template, components and brand/font settings; design overrides selected top-level fields. Existing destination requires expectedRevision. |
| edit_creativeA | Atomic typed creative edits with stable item IDs: update item fields, add/remove an item, or move_card to a column/index. Schedule dates and dependencies are validated. Mind-map additions retain existing branch positions; pins are respected. Use ordinary patch_drawing for local label/style changes. |
| set_presentationB | Embed local fonts and image/SVG assets into a saved drawing, or update brand, fallback, description and text mode. All paths are read locally; no URL fetching. Assets attach to existing rectangle IDs. Font embedding requires its license/permission description. Native source retains bytes for clean-machine exports. |
| import_drawingA | Import Mermaid flowchart/sequence/ER, Excalidraw JSON or single-page draw.io XML. Discover drawfather://interchange first. Strict conversion blocks unsupported content; preserve explicitly accepts reported losses and keeps exact original input. Native snapshots merge supported edits or report conflicts. dryRun validates without writing. Existing files require expectedRevision. |
| export_interchangeA | Write editable Mermaid, Excalidraw or draw.io handoff; return path and fidelity/loss report. embedNative:true explicitly embeds the full native model including hidden content. Default strict rejects losses. Source text returned only with inline:true. Original source stays unchanged. |
| create_drawingB | Save native source without overwriting. For exact native fields read drawfather://schema/v2 or get_format; the engine validates that full schema before writing. Metadata is compact; includeSource and preview are opt-in. |
| update_drawingA | Low-level complete-element upserts, removes, or document changes. Fetch get_format for full element fields; the engine validates them before writing. Prefer patch_drawing for small label/style changes. Source and preview are opt-in. |
| edit_drawingA | Atomically edit nodes, connections, groups, pins, constraints, overlap permissions, patches or reflow. Example operations: pin api; insert_between df-edge-1 with redis; disconnect obsolete. Discover exact operation names/examples with get_capabilities. Returns compact metadata by default. |
| patch_drawingA | Patch labels, node detail or partial styles by ID without resending geometry. Example patches:[{id:"api",label:"Core API",style:{fill:"#d3e1f5"}}]. Read the selected element first and pass expectedRevision. seed/sketch:null inherit document values; style owned labels using their labelId. |
| migrate_drawingA | Upgrade v1 to v2 with an exact-byte backup and unchanged appearance. Already-v2 migration is a revision-checked no-op. Source and preview are opt-in. |
| drawing_historyA | List bounded local history or undo/redo/restore as a new revision. Mutations require expectedRevision; restore needs commitId. Returns compact metadata unless source/preview requested. |
| preview_drawingA | Read-only PNG preview: set width/height, an absolute crop or selected ids, padding, background and scaleUp. ID selection crops the region including nearby context; it does not edit or export source. |
| export_drawingC | Write SVG/PNG/JPG/WebP/vector PDF and return revision-specific paths. inline:false by default. Opt into inline:true for SVG text or a PNG preview; previewOptions controls the inline raster view without changing the exported file. |
| check_drawingC | Inspect visual quality and page diagnostics. Reports global counts and completeness even when findings are filtered by ids or severity. Cursors bind source, checks and filters. |
| repair_drawingA | Preview bounded repair, then apply the returned planId with identical options and expectedRevision. Default report is compact; detail:full requests all findings/attempts. includeSource and preview are independent opt-ins. Remaining errors block writes. |
| project_diagramsB | Maintain repository diagrams using a project manifest. Check/validate freshness, render stable/revisioned files and optional managed docs, list affected drawings from changed paths/Git base, produce semantic/visual diff artifacts, or acknowledge inspected source relationships at exact hashes. Rendering never acknowledges code accuracy. Paths stay inside the manifest directory. metadata export settings explicitly disclose references/source; default none. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| drawfather-format | |
| drawfather-semantic-format | |
| drawfather-capabilities | |
| drawfather-technical-schema | |
| drawfather-interchange | |
| drawfather-edit-schema | |
| drawfather-guide | |
| drawfather-creative-schema | |
| drawfather-creative-guide |
TDQS
Scored across 23 tools
The four edit-style tools (edit_drawing, update_drawing, patch_drawing, edit_creative) overlap significantly; descriptions do attempt to differentiate them (patch for small label/style, update for full element upserts, edit for atomic operations), which helps but still requires careful reading. The three compose_* tools are separable by diagram domain, and check/repair/preview/export are distinct. Overall boundaries exist but are blurry in the mutation cluster.
Most tools follow a predictable snake_case verb_noun pattern (compose_*, create_drawing, edit_*, get_*, list_*, import_drawing, export_*, preview_drawing, check_drawing, repair_drawing, migrate_drawing). A few deviate: 'project_diagrams' (noun_verb) and 'drawing_history' (noun_noun), which break the pattern slightly. Still readable and largely consistent.
23 tools is on the heavy side for the stated scope; several (compose_drawing, compose_technical, compose_creative and the four editors) suggest consolidation is possible. It is defensible given the breadth of diagram types, interchange formats, and repair/history workflows, but it sits in the heavy band rather than a tight, well-scoped set.
Coverage is broad: create, read, edit, patch, import, export, preview, check, repair, migrate, history, and project management are all present, which is strong lifecycle coverage for a diagramming engine. However there is no explicit delete/rename tool for drawings, a minor gap an agent would have to work around via history or overwrite.