VisioMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VISIOMCP_VISIO_PATH | No | Path to the Visio executable. If not set, auto-detected. |
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 | {} |
| prompts | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_visio_statusA | Check whether Microsoft Visio is running and return version and open document info. |
| open_visioA | Start Microsoft Visio. Auto-detects the installation. Does nothing if already running. |
| create_documentA | Create a new blank Visio drawing document. |
| open_documentC | Open an existing Visio file (.vsdx or .vsd). |
| save_documentA | Save the active Visio document. Optionally save to a new path. |
| close_documentB | Close the active Visio document. |
| get_document_infoA | Get name, path, page count and save status of the active document. |
| get_pagesA | List all pages in the active Visio document with name, size, and shape count. |
| create_pageA | Add a new page to the active Visio document. |
| add_shapeB | Add a shape to a Visio page. Coordinates are in inches from the top-left corner. |
| set_shape_textB | Set or replace the text label of a shape. |
| move_shapeB | Move a shape to a new position (top-left coordinates in inches). |
| resize_shapeC | Resize a shape to new dimensions. |
| delete_shapeA | Permanently delete a shape from the page. |
| connect_shapesB | Draw a connector (arrow) between two shapes. |
| get_shapesA | List all shapes on a page with their IDs, positions, sizes, and text content. |
| get_selectionA | Get the shapes currently selected in the active Visio window. |
| get_connectionsA | List all connectors on a page, showing which shapes they connect. |
| export_documentB | Export the Visio document or a page to PNG, PDF, SVG, EMF, or VSDX. |
| list_diagram_typesA | List every diagram type this server can build (currently UML Activity and Basic Flowchart), with a one-line description and the element-kind vocabulary each type allows. Use this to choose a type when the requirement does not name one. |
| get_type_vocabularyA | Return the full element vocabulary for one diagram type: each kind's Visio master, default size (px @96dpi), and default styling. Use this to build nodes with valid "kind" values for the chosen type. |
| resolve_stencilA | Resolve which installed Visio stencil supplies a diagram type's masters (discovery-first: running docs -> candidate files -> master index). Returns status "resolved" (with the stencil path) or "needs_download" when the stencil is not installed. |
| validate_specA | Validate a diagram spec (an IR object with diagram_type/nodes/edges). Runs vocabulary/structure checks and, if nodes are positioned, geometry checks (on-page, no overlaps). Returns { ok, problems }. |
| analyze_requirementA | PHASE 1 of diagram generation. You (the calling model) read the requirement, decide the diagram type, and extract the elements, then call this to validate the graph against that type's vocabulary (rejecting mixed element types) and get back a normalized analysis to pass into plan_diagram. |
| plan_diagramA | PHASE 2 of diagram generation. Takes the analysis (or any IR spec) and computes a concrete, positioned layout: ranks/rows, orthogonal edge routing through empty corridors, guard-label placement. Explicit x/y on any node or explicit edge waypoints are preserved (manual override). |
| design_diagramA | PHASE 3 of diagram generation. Renders the positioned spec in Visio and saves .vsdx plus .png. Resolves the diagram type's stencil first; if it is not installed this returns status "needs_download" and renders nothing unless allow_primitive_fallback=true. Visio stays open and visible. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| diagram_from_requirement | Guided workflow: analyze -> plan -> design a Visio diagram from a plain-language requirement. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 26 tools
Most tools map to distinct resource+action pairs like document, page, shape, connector, and diagram type, and the phase-labeled generation tools are clearly separated. The only mild overlap is between analyze_requirement and validate_spec, both validation-based, but their descriptions distinguish graph validation from full spec/geometry validation.
All 26 tools consistently use a snake_case verb_noun pattern such as get_document_info, create_page, add_shape, and design_diagram. Verb choices vary naturally by operation, but there are no mixed casing styles or inconsistent naming conventions.
26 tools is on the heavy side and slightly exceeds the typical well-scoped range, but the count is organized around app/document lifecycle, shape editing, export, and diagram generation. It feels one or two tools over rather than bloated.
The surface covers document lifecycle, page and shape manipulation, connectors, export, and a full diagram generation pipeline. Obvious gaps include page deletion/renaming, a stencil download tool for the needs_download path, and shape property editing beyond text and geometry.