MCP Connector MicroStation Documentation

How to install, configure, and use MCP Connector MicroStation to connect AI clients like Claude Desktop, Claude Code, Cursor, and VS Code to Bentley MicroStation via Model Context Protocol.

MCP Connector MicroStation connects AI assistants to a live Bentley MicroStation session on your machine. Once connected, your AI can read and author the design file: scan elements, create and modify geometry, manage levels, cells, references and annotation, and build 3D SmartSolids. Two parts ship together and talk over a local connection: an MCP server your AI client launches, and a plug-in that loads inside MicroStation. Nothing needs to be configured between them.

Requirements

  • Bentley MicroStation 2023 to 2026 (Windows, 64-bit)
  • The connector runs as a managed AddIn inside MicroStation, so MicroStation itself must be installed on the same machine.
  • Windows 10 or 11

AI Applications

  • Claude Desktop
  • Claude Code
  • Cursor
  • VS Code
  • Any other MCP client (via manual configuration below)

Installation

Before you begin

Close MicroStation before starting the installation.

1
Download the Installer
Download the latest version of MCP Connector MicroStation from the product page.
2
Run the Installer
Double-click the downloaded installer and follow the wizard. It installs the MicroStation plug-in bundle and registers the MCP server in Claude Desktop and Cursor automatically if they are installed.
3
Restart Your AI Application
Restart Claude Desktop or Cursor so the new MCP server is picked up. Other MCP clients need the manual configuration below.
4
Open MicroStation
Start MicroStation and open a design file. The plug-in auto-loads on startup. To confirm it is running, type MCPCONNECTOR STATUS at the command line; if it is not running, type MCPCONNECTOR START.

Connect Your AI Client

The MCP server is a single executable installed with the plug-in bundle:

Path
C:\ProgramData\AUTOM8LABS\MCPConnectorMicroStation\Bridge\MCPConnectorMicroStation.Bridge.exe

Claude Desktop and Cursor

The installer registers the server automatically in Claude Desktop (claude_desktop_config.json) and Cursor (.cursor\mcp.json). Just restart the client after installing. If you ever need to add it by hand, use the JSON below.

Manual configuration (any MCP client)

Add this to your client's MCP server configuration:

JSON
{
  "mcpServers": {
    "AUTOM8LABS_MicroStation": {
      "command": "C:\\ProgramData\\AUTOM8LABS\\MCPConnectorMicroStation\\Bridge\\MCPConnectorMicroStation.Bridge.exe"
    }
  }
}

Claude Code

Register the same executable from a terminal:

Command Prompt
claude mcp add AUTOM8LABS_MicroStation -- "C:\ProgramData\AUTOM8LABS\MCPConnectorMicroStation\Bridge\MCPConnectorMicroStation.Bridge.exe"

VS Code

Add the server to your MCP configuration (for example .vscode/mcp.json in a workspace):

JSON
{
  "servers": {
    "AUTOM8LABS_MicroStation": {
      "type": "stdio",
      "command": "C:\\ProgramData\\AUTOM8LABS\\MCPConnectorMicroStation\\Bridge\\MCPConnectorMicroStation.Bridge.exe"
    }
  }
}
Restart Required

After changing MCP configuration, restart the AI client completely for the changes to take effect.

Optional: raw key-in and script execution

send_keyin, run_vba_macro and run_python_script require Pro and are disabled by default. To enable them, create the Windows user environment variable MCP_CONNECTOR_ENABLE_COMMAND_EXEC with value 1, then close and restart MicroStation so its process receives the setting. Setting this only in an AI client's MCP server configuration does not enable the native plug-in.

In Windows, open Edit environment variables for your account, choose New under User variables, enter the name and value above, and confirm. Remove the variable and restart MicroStation to disable execution again. These tools can run arbitrary commands or code in the host; enable them only when that access is intended.

Local AI Setup

Connect a local AI model to MicroStation through an MCP-compatible app. These steps are for Windows, on the same computer as MicroStation.

1. Prepare MicroStation

  1. Install MCP Connector for MicroStation and open a sample DGN file.
  2. Run the key-in MCPCONNECTOR STATUS to check the connector is running. If needed, start it with MCPCONNECTOR START. Keep MicroStation open.
  3. In your AI app, download or select a local model that supports tool calling.

2. Configure your app

Use this entry for the installed MCP Connector for MicroStation.

JSON
{
  "mcpServers": {
    "AUTOM8LABS_MicroStation": {
      "command": "C:\\ProgramData\\AUTOM8LABS\\MCPConnectorMicroStation\\Bridge\\MCPConnectorMicroStation.Bridge.exe"
    }
  }
}

For separate fields, use AUTOM8LABS_MicroStation as the name, stdio as the transport, and the command path with single backslashes and no quotes. Leave Arguments blank for this example.

Edit an existing connector entry rather than adding a duplicate. Keep its arguments, environment and tool settings. In an existing JSON file, add only AUTOM8LABS_MicroStation inside mcpServers, preserving other entries.

Choose your app below. Connection tested means registration, tool discovery and reconnection were checked using the Revit connector. These MicroStation steps use the same app settings; they have not been tested end to end with every app and model.

  1. Open Settings > Agent Skills once to create the configuration file.
  2. Click the app version number > Open storage. Open plugins/anythingllm_mcp_servers.json and add the entry.
  3. Return to Agent Skills and click Refresh. Check the connector is running.
  4. Start your test prompt with @agent.

AnythingLLM setup guide

  1. Open MCP connections and look for AUTOM8LABS_MicroStation, including paused entries.
  2. Use that connection if present. Otherwise, add one using the name and command above.
  3. Enable the connection and choose your local model.

Bionic guide

  1. Open Settings > MCP > MCP Servers > Add > Import from JSON.
  2. Paste the JSON, enable the server and check its tools appear.
  3. Open Work > your Agent's menu > Edit > MCP and enable the connector for that Agent.
  4. Select your local model and start a conversation with that Agent.

Cherry Studio setup guide

  1. Open Settings > MCP Servers > Add MCP Server.
  2. Select STDIO and enter the name and command above.
  3. Save, then enable the server. A green indicator confirms it is active.

Jan setup guide

  1. In the right sidebar, open Program > Install > Edit mcp.json.
  2. Add the connector inside mcpServers and save.
  3. Check the connector is available and enabled for your chat.

LM Studio setup guide

  1. Sign in to your local installation. Open MCP settings > Import JSON.
  2. Paste the JSON. The import applies immediately.
  3. Enable the connector and MCP tool use for your chat.

These steps apply to 2026.9.11. Other versions may differ. See Unsloth's current guide.

3. Test the connection

With your sample DGN file open, ask:

In AnythingLLM, prefix this with @agent. Confirm a connector tool runs and the answer matches your open design file and model.

Tool loading and model limits

If available, enable tool selection or on-demand loading and start with a few read-only tools. Large tool lists can exceed a local model's context. A larger context setting alone does not guarantee reliable tool use.

Free vs Pro

Two editions ship in one install:

  • Free (43 native tools, plus two Bridge recovery tools) is read-only inspection: a connectivity check, plus tools that scan elements, read properties, ranges and tags, list levels, models, cells, references, saved views, dimension styles and paper sizes, and navigate the view with zoom, fit and rotate. Nothing in the free edition creates, modifies, or maintains the design file. No key is needed; it just works.
  • Pro (119 additional native tools and a session launcher) unlocks everything else: geometry and cell placement, 3D SmartSolid modelling with booleans and feature editing, transforms and symbology, annotation and dimensioning, level management with DGNLIB standards checking, reference authoring, camera and fence control, batch DGN to DWG conversion, print to PDF, and file housekeeping.

Pro is a per-seat subscription: £10 per seat per month or £100 per seat per year. See the product page for purchasing.

In the tool reference below, every tool is marked Free or Pro. On a free install, Pro tools are not listed to the AI client at all, and the MicroStation plug-in checks entitlement before executing paid operations, independently of the tool list shown by the AI client.

Tool availability follows the live licence

The Bridge reads the running plug-in's edition and refreshes tool availability when it changes. If your AI client keeps a cached list, reconnect it after activating or deactivating Pro. When MicroStation cannot be reached, the local manifest is the fallback.

Licence Activation and Management

Licensing lives entirely in the MicroStation plug-in. There is no key to set in the AI client.

1
Open the licence dialog
In MicroStation, click Manage Licence on the AUTOM8LABS ribbon, or run the MCPCONNECTOR LICENCE command.
2
Enter your key and activate
Paste the licence key from your purchase email and click Activate. The plug-in validates the key with the AUTOM8LABS licence server and activates this machine's seat.
3
Reconnect your AI client
Restart your AI client so it picks up the full Pro tool list.
  • One seat per machine. A seat covers every AI client on that machine: Claude Desktop, Claude Code, Cursor, VS Code, and any other MCP client.
  • Moving machines. Click Deactivate in the licence dialog to free the seat, then activate on the new PC.
  • Working offline. A validated key keeps working offline between licence checks, so short offline stretches never block your work.

Quickstart

1
Open MicroStation and a design file
The plug-in auto-loads on startup. MCPCONNECTOR STATUS confirms it is running.
2
Check the connection
In your AI client, ask it to run the ping tool. You should get back "Connected to MicroStation."
3
Ask your AI about the design file
Try this prompt (click to copy):

The AI reads the level table and element counts and reports back. On Pro, follow up with:

Power BI Dashboard

Review AI-assisted work in MicroStation using the Tool Use Audit browser dashboard or Power BI report. The dashboard download is free. Recording MicroStation calls requires MCP Connector for MicroStation Pro 1.1.2 or later.

Download: Tool Use Audit dashboard and Power BI report (.zip)

1. Enable audit logging

Logging is off by default. Open Registry Editor as administrator. Export the following key if it already exists, then create or edit these values:

HKEY_LOCAL_MACHINE\SOFTWARE\AUTOM8LABS\MCPConnectorMicroStation

ValueTypeSetting
AuditLogDWORD (32-bit)1 enables recording.
AuditLogFolderString (REG_SZ)Your local or network log folder, for example C:\AuditLogs.
AuditReasonDWORD (32-bit)Optional: 1 asks the AI for a short explanation of each call. Leave unset to omit it.

Create the log folder and give MicroStation users write access. For several computers, use a shared network folder. Restart MicroStation, reconnect the AI app and ask it to run get_session_info to confirm the active policy. The MCPCONNECTOR STATUS key-in also reports when calls are being recorded.

2. Open the dashboard

Extract the ZIP to a short path such as C:\AuditDashboard. Keep all its files and folders together.

  1. Open the extracted AUTOM8LABS-Connector-Audit-v1.1.0 folder, then open audit-dashboard.html in Chrome or Edge.
  2. Select Open audit folder and choose your AuditLogFolder.
  3. Allow folder read access. The dashboard reads the CSV files locally and refreshes automatically.
  1. In the extracted AUTOM8LABS-Connector-Audit-v1.1.0 folder, open AUTOM8LABS Connector Audit.pbip in Power BI Desktop for Windows, September 2026 or later.
  2. Select Transform data > Edit parameters and set AuditLogFolder to your log folder.
  3. Select OK > Apply changes > Refresh.

Use the Product filter to select MicroStation. Select Refresh when you want the latest records. See Microsoft's Power BI project guide for opening .pbip reports.

3. Check the records

With a sample DGN open, ask the AI to run get_file_info. Wait around 30 seconds, then look for that call in the dashboard. Select Refresh in Power BI.

Each record includes the time, Windows user, computer, MicroStation release, design file, AI app, tool, read/write classification and outcome. The arguments and optional AI explanation are limited to 300 characters each. Chat messages and full tool results are not recorded. A write classification means a tool can change a file; it does not prove that a change occurred.

Local CSV files are kept in %LOCALAPPDATA%\AUTOM8LABS\MCPConnectorMicroStation\Audit for 90 days. They are copied into month folders under AuditLogFolder about every 30 seconds and when the connector stops. Retention in that destination folder is managed by your organisation. Logging failures do not stop tool execution.

Bridge-only tools, including start_microstation_session and the two recovery tools, are not recorded. Audit logging requires an active Pro licence.

Administrator Tool Permissions

Restrict the native tools the MicroStation connector can offer and execute. These settings require MCP Connector for MicroStation Pro 1.1.2 or later and administrator rights. They apply to every user on the computer and do not restrict manual MicroStation commands.

Open Registry Editor as administrator and export this key before changing it:

HKEY_LOCAL_MACHINE\SOFTWARE\AUTOM8LABS\MCPConnectorMicroStation

ValueTypeEffect
BlockedToolsString (REG_SZ) or Multi-String (REG_MULTI_SZ)Tools to hide and refuse. A blocked name takes precedence over an allowed name.
AllowedToolsString (REG_SZ) or Multi-String (REG_MULTI_SZ)Offer only the named native tools. Connection and session information remain available unless explicitly blocked. An empty list removes this restriction.

Use exact tool names from the reference below. Separate names in a String value with semicolons, commas or new lines. For example:

  • Block selected tools: set BlockedTools to delete_element; purge_unused; send_keyin; run_vba_macro; run_python_script.
  • Allow only a small inspection set: set AllowedTools to get_file_info; get_model_info; list_levels; count_elements.

Review and merge existing lists before replacing a value. Restart MicroStation and reconnect the AI app. Ask get_session_info to report the policy, then check the available tool list in a new conversation. Native calls to blocked tools are refused even if an AI app has cached an older list.

These restrictions only remove access. They never unlock a tool the licence refuses. Without Pro, named tool policies and audit logging are inactive; the native Free/Pro licence gate still applies. MicroStation does not have the ForceReadOnly session setting offered by some other connectors.

Blocking one tool name does not prevent another allowed tool from making a similar change. Review command, script and file-writing tools when creating an approved list. send_keyin, run_vba_macro and run_python_script also require the Windows user environment variable MCP_CONNECTOR_ENABLE_COMMAND_EXEC=1 in the MicroStation process; they are disabled by default.

The Bridge session launcher and recovery tools are outside these native tool lists. Starting an additional MicroStation session requires a connected Pro plug-in; a cached manifest cannot grant that permission.

Deploy or restore settings

IT can deploy these machine registry values with Group Policy Preferences, Intune or an administrator script. MicroStation reads this machine key; it does not provide a per-user policy template in this release. Test the settings on one computer before wider deployment.

To restore the previous setup, restore each value you changed from your recorded backup. Delete a value you added if it was originally absent. Importing a registry backup alone does not remove newly added values. Restart MicroStation and reconnect the AI app after restoring settings.

Tool Reference

Browse the full reference below. Categories and tool names are listed alphabetically. Each tool has an example prompt you can click to copy, paste into your AI client and adapt to your model.

The 165 client tools include 162 native tools, a Pro session launcher and two Free Bridge recovery tools. The Edition column shows whether each tool is Free or requires Pro. The plug-in checks the licence before executing Pro tools.

Replace example file paths, names and dimensions with your own. Coordinates and distances use the design file's master units unless stated otherwise. For prompts about a selected element, select it in MicroStation first.

3D SmartSolids

ToolExample promptEdition
Convert an element into a solid body so the solid operations can accept it
convert_to_smart_solidPro
Create a box solid in MicroStation
create_smart_solid_boxPro
Create a cone solid in MicroStation, built along the Z axis
create_smart_solid_conePro
Create a cylinder solid in MicroStation
create_smart_solid_cylinderPro
Create a sphere solid in MicroStation
create_smart_solid_spherePro
Create a torus solid in MicroStation
create_smart_solid_torusPro
Create a wedge solid in MicroStation: a circular sector of the given radius and angle, extruded to the given height
create_smart_solid_wedgePro
Extrude a closed planar element - a shape, circle, ellipse or closed complex chain - into a solid, perpendicular to the profile's own plane
extrude_profilePro
Loft a solid through two or more profiles in the order given, so the shape transitions from one cross-section to the next
loft_profilesPro
Inspect a solid: volume, body kind, bounding range, and the pick points needed to target its faces and edges
query_solidPro
Revolve a planar profile about an axis to make a solid of revolution
revolve_profilePro
Sweep a closed planar profile along a path element to make a solid
sweep_profile_along_pathPro

Annotation and Dimensions

ToolExample promptEdition
Line existing notes up into a tidy column by moving each note's text to a common X, leaving every leader still pointing at its target
align_notesPro
Dimension the overall extents of an existing element
dimension_elementPro
List the named dimension styles in the active file, with their note alignment settings
list_dimension_stylesFree
Place a dimension across a run of points
place_dimensionPro
Place a note with a leader
place_notePro
Set the active dimension style by name, so later dimensions and notes inherit it
set_active_dimension_stylePro

Cells

ToolExample promptEdition
Attach a cell library file so its cells can be placed by name
attach_cell_libraryPro
Create a standard drawing symbol as an annotation cell in the ACTIVE file (open the cell library first): grid_bubble (circle + letter), north_point (circle + arrow + N), revision_triangle (triangle + number), level_marker (target + level text), callout (circle split by a bar: drawing number over sheet number), section_arrow (direction arrow + reference). Sizes in millimetres at 1:1; the cell scales with annotation scale on placement. Edit the text after placement, or replace it with tags (attach_tags) for scheduled values.
create_annotation_cellPro
Create a named cell in the ACTIVE file (open the cell library first). Geometry comes from a spec of lines, line strings, shapes, circles, arcs and text in master units where (0,0) is the cell origin, and/or from existing element ids in the active model (copied, with 'origin' becoming the cell origin). Set annotation true for sheet symbols so they scale with annotation scale. Saves the file.
create_cell_definitionPro
Create a new cell library (.cel) from a 2D seed and open it as the active file so create_cell_definition and create_annotation_cell can write cells into it. Uses the workspace's 2D design seed when no seed_path is given. Put the folder on MS_CELL / MS_CELLLIST (write_config_file) so the workspace finds it.
create_cell_libraryPro
Delete a cell (its model) from the ACTIVE cell library file. Refuses to delete the active model. Saves the file.
delete_cell_definitionPro
List the cells available in the attached cell library, with name and description, so a cell can then be placed by name with place_cell
list_cellsFree
Place a named cell from the attached cell library at explicit coordinates - the way a titleblock is stamped onto a sheet
place_cellPro

Connectivity

ToolExample promptEdition
After inspecting the affected host state and confirming the uncertain operation has stopped, explicitly acknowledge its result to permit new work. Never automatically replay the operation. Requires the token returned by get_bridge_recovery after a successful inspection.
acknowledge_bridge_recoveryFree
Read the bridge recovery block and inspection requirements. Does not inspect the host or clear the block.
get_bridge_recoveryFree
Read MicroStation's Message Center: the errors, warnings, info and debug messages the session has shown, newest first, with details where present. Works with no design file open. Times are known only for messages written after the connector loaded; earlier entries have no time. Read-only.
get_messagesFree
Get information about the current MCP session: connector version and edition, MicroStation version, the active design file, how many tools this session offers, and the administrator policy in force (how many tools are switched off, whether an allow list is set, whether the audit log is on). Works with no design file open. Read-only.
get_session_infoFree
Check connectivity to the MicroStation MCP Connector
pingFree

Element Symbology

ToolExample promptEdition
Set the color of an element by color index (0-255)
set_element_colorPro
Move an element to a different level
set_element_levelPro
Set the line style of an element by style ID
set_element_stylePro
Set the transparency of an element (0.0=opaque, 1.0=fully transparent)
set_element_transparencyPro
Set the line weight of an element (0-31)
set_element_weightPro

Elements and Selection

ToolExample promptEdition
Count elements in the ACTIVE MODEL, optionally filtered by level or type. 'total' is the answer to "how many elements are in this model"; 'counts' is a per-type breakdown for when the caller asked about a particular kind of element
count_elementsFree
Delete an element by its ElementId
delete_elementPro
Find elements within a bounding box range
find_elements_in_rangeFree
Get detailed information about a specific element by its ElementId
get_element_infoFree
Get all properties of an element: color, weight, line style, level, transparency
get_element_propertiesFree
Get the bounding box (range) of a specific element
get_element_rangeFree
Extract portable geometry from current MicroStation selection in master units
get_selected_geometryFree
Get the number of elements currently selected in MicroStation
get_selection_countFree
Read exact element geometry in world coordinates at full precision: by element ids, level, range, element type or the whole model. Lines and shapes come back as vertices; arcs and ellipses with centre, both radii, axis vectors, start and sweep; B-spline curves and surfaces with orders, poles, weights, knots, closed flags and trim boundaries; cells and shared cells with name, origin and matrix (a negative determinant is a mirrored instance) and their parts; swept surfaces and solids with their profile curves; solid and sheet bodies with volume, faces (plane, cylinder, cone, sphere, torus recognised with the fit residual stated), edge curves and vertices. An element that cannot be read still gets a row with the reason, and the reply carries unreadCount. Reads another DGN without opening it when file_path is given. A whole-model read is written to a JSON Lines file and the reply carries the counts and the path.
read_geometryPro
Return the outline of elements as straight lines, circular arcs (centre, radius, sweep) and conics, with the fit residual of every segment. Works on shapes, complex shapes and chains, B-spline curves, swept surfaces and solids (their profile and sweep), B-spline surfaces (their four edges) and one face of a solid body (give face, from read_geometry). Coordinates are rounded to the file's resolution unless round is false. A curve stored as a B-spline is decoded span by span and becomes an arc only when it is one to the tolerance; a true conic or ellipse is returned as such, never as the nearest arc. Reads another DGN without opening it when file_path is given.
read_outlinePro
Scan for elements in the active MicroStation model with optional filters by level and element type
scan_elementsFree

Fence

ToolExample promptEdition
Place a fence - a closed boundary that later operations act inside
define_fencePro
List the elements inside the currently placed fence, with a count by element type
get_fence_contentsFree
Remove the currently placed fence, so later operations act on the whole model again
undefine_fencePro

Files and Models

ToolExample promptEdition
Convert many design files to DWG in one pass, writing each output into a target folder
batch_save_as_dwgPro
Compress the active design file to remove deleted-element space and unused data (the same operation as File > Compress)
compress_designPro
Create a new design file from a seed file
create_design_filePro
Create a model in the ACTIVE file - what the Create Model dialog does: type (design, drawing, sheet), 2D/3D, name, description, seed model (units and settings copied from an existing model in the file, default the active model), annotation scale (e.g. 100 for 1:100), and the cell flags (can be placed as a cell, as an annotation cell, graphic or point). Saves the file. For cells with geometry use create_cell_definition / create_annotation_cell instead. Note: a view group for the new model is created by MicroStation the first time it is opened in the UI.
create_modelPro
Run the Data Cleanup utility on the active design file (Utilities > Data Cleanup): processes duplicate and overlapping elements according to the utility's current settings on this machine
data_cleanupPro
Report the stored format of design files (V7, V8, DWG, DXF) from their first bytes, without opening them. Use it before open_design_file to know whether a file is V7: a V7 file is opened read-only unless an upgrade is asked for. is3d is known from the header for V7 files only; for V8 it is null here and reported by inventory_dgn_folder.
get_dgn_formatFree
Get information about the active DGN file: file path and number of models
get_file_infoFree
Get information about the active model: name, description, 2D/3D type, and UOR unit conversion factors
get_model_infoFree
Inventory every design file under a folder without opening any of them: format (V7 or V8), 2D or 3D, size and date, each model with its element count, and each reference attachment with whether it is displayed and how many of its levels are hidden. Also returns the reference graph: which files attach which, the files that nothing in the folder attaches (they can still hold content), and attachments whose file was not found. A file that cannot be read is listed with the reason and counted in unreadCount. The active file is not changed.
inventory_dgn_folderPro
List all models in the active DGN file
list_modelsFree
Open a design file (DGN or DWG), replacing the currently active file. All later tool calls operate on the newly opened file. A V7 file is opened read-only, as it is, with no prompt and no change to the file, unless v7 is set to upgrade.
open_design_filePro
Delete unused resources from the active design file: levels, fonts, line styles, dimension styles, and/or text styles
purge_unusedPro
Write the active design file out as a DWG at the given path, using the current DWG save options
save_as_dwgPro
Save the active design file in place, committing pending changes to disk
save_design_filePro
Write the active design file to a new DGN path
save_design_file_asPro
Start an additional MicroStation session after the connected plug-in confirms Pro. Choose a WorkSpace and WorkSet, or use No WorkSpace and No WorkSet by default. Optionally open a design file, including read-only. Returns the new process ID; existing sessions are left open. First open MicroStation and activate Pro.
start_microstation_sessionPro

Geometry Creation

ToolExample promptEdition
Create an arc element in MicroStation defined by center, radius, start angle, and sweep
create_arcPro
Create a B-spline curve from its definition: order, poles and, optionally, weights and the full knot vector. Poles are plain positions in master units (not multiplied by their weights). With no knots a clamped uniform knot vector is used. Read it back with read_geometry.
create_bspline_curvePro
Create a B-spline surface from its definition: both orders, a grid of poles given as poles[v][u] (rows along v, each row running along u), and optionally weights in the same grid, both full knot vectors and trim loops in the surface's own parameters. Poles are plain positions in master units. Read it back with read_geometry.
create_bspline_surfacePro
Create a circle element in MicroStation
create_circlePro
Create an ellipse element in MicroStation
create_ellipsePro
Create a line element between two points in MicroStation
create_linePro
Create a line string (polyline) from a list of points in MicroStation
create_line_stringPro
Create a closed shape (polygon) from points in MicroStation
create_shapePro
Place a text element in MicroStation
create_textPro

Key-ins

ToolExample promptEdition
Run a MicroStation key-in command (escape hatch for ops without a dedicated tool)
send_keyinPro

Levels

ToolExample promptEdition
Create a new level in the active model
create_levelPro
Delete a level
delete_levelPro
Count the number of elements on a specific level
get_level_usageFree
List all levels in the active MicroStation model with name, number, usage, and display status
list_levelsFree
Rename a level by its current name
rename_levelPro
Set the active level for new element placement
set_active_levelPro
Turn level display on or off in bulk
set_all_levels_displayPro
Show or hide a level in the active view
set_level_displayPro

Printing

ToolExample promptEdition
Read a print configuration (.pltcfg): driver, display label, every flat setting with its value, and the paper forms with sizes. Accepts a stock driver name (pdf, printer, pscript, png, tiff, ...) or a full path. Use it before write_pltcfg to see which settings a base offers, or to audit a workspace's drivers.
inspect_pltcfgPro
List the paper sizes a printer driver defines, with their dimensions in millimetres
list_paper_sizesFree
Print a view, fence or sheet model to a PDF file at a chosen paper size
print_to_pdfPro
Author a print configuration (.pltcfg) by deriving from a base: a stock driver (pdf, pdfnongeo, printer, pscript, png, tiff, jpeg, cals, hpgl2, hpglrtl, interplot, markup_pdf) or any existing .pltcfg path. Sets the display label and comments, any flat setting by element name (e.g. RasterParametersGrayscale, PDFSearchableText, DefaultPenTableFileName, DefaultPrintFileName, ResolutionDotsPerUnit, AutoOpenPlotFile), and the paper forms: keep only named forms, and add custom forms with size and units. Put the file on MS_PLTCFG_PATH and name it in MS_DEFAULT_PLTCFG_FILE via write_config_file. Use inspect_pltcfg to see a base's settings first.
write_pltcfgPro

References

ToolExample promptEdition
Attach a DGN or DWG file as a reference to the active model
attach_referencePro
Detach a reference from the active model by its logical name (or detach every reference with detach_all)
detach_referencePro
Get detailed information about a specific reference attachment
get_reference_infoFree
List all reference attachments in the active model with file path, logical name, and display status
list_referencesFree
Reload all reference attachments from disk to pick up changes made to the referenced files
reload_referencesPro
Control reference live nesting. nest_depth 0 turns live nesting off (no nested references pulled in); a higher number allows that many levels of nesting
set_reference_nestingPro
Control reference override behaviour. level_overrides on/off toggles whether reference level symbology overrides are applied. nest_overrides never/allowed sets whether nested references may carry overrides (never = lock them out)
set_reference_overridesPro
Set the visible-edges (hidden-line) display mode for all references: 'wireframe' (off), 'cached' (computed and stored), or 'dynamic' (computed live)
set_reference_visible_edgesPro
Show or hide a reference attachment
toggle_reference_displayPro

Ribbon and Automation

ToolExample promptEdition
Build a MicroStation VBA project (.mvba) from source: creates the project, adds each standard or class module with the given code, compiles it and saves it. The reply's phase is 'built' when that is done. If it is 'created' the empty project was only queued for loading: call again with the same arguments and overwrite true. Code that does not compile fails the call, with the compile error, the module and the line. Use it to ship workspace macros such as file-naming, title-block or batch tools, then wire them to ribbon buttons with a key-in like 'vba run [ProjectName]Module.Procedure'. Put the .mvba on MS_VBASEARCHDIRECTORIES so 'vba run' finds it.
build_vba_projectPro
Report the state of VBA in this session: each loaded project with its mode (design, run or break), and the text and buttons of any error box the VBA editor has open. Call it after run_vba_macro to see whether the macro finished: a project in break mode, or an open error box, means it stopped on an error and reset_vba_project is needed before anything else will run.
get_vba_statePro
Import icon files into the ACTIVE file as named icons for ribbon buttons and tool boxes. Accepts .ico directly and converts .png / .bmp / .jpg / .gif to multi-size .ico (default 16, 24 and 32 px). The icon name is the file name without extension; use it as the icon in write_ribbon_xml. Open the GUI DGNLIB first (it must be on MS_GUIDGNLIBLIST or MS_ICONLIBRARYLIST for the ribbon to find the icons), then run this and it saves the file.
import_iconsPro
List the ribbon definitions loaded from the workspace's GUI DGNLIBs, ribbon XML files and application resources: workflows with their tab collections, tabs with their groups, and groups with their items. Returns the internal Names that write_ribbon_xml needs to merge into an existing workflow or tab. Filter by substring to keep the answer small.
list_ribbon_structureFree
Reload the ribbon from its definition sources (GUI DGNLIBs, MS_RIBBONXML files, application resources) so tabs, groups, buttons and icons added since start-up appear. Run after write_ribbon_xml + set_config_variable, or after import_icons. Reports whether MicroStation accepted the reload; if the new items still do not show, restart MicroStation.
reload_ribbonPro
Recover VBA after a macro stopped on an error: closes the VBA editor's error box if one is open (End, so the macro does not carry on) and resets the project so it leaves break mode. Whatever the macro changed before it stopped stays changed. Returns each project's mode afterwards.
reset_vba_projectPro
Run a Python script in MicroStation's built-in Python (2024 and later) via the 'python' key-in, e.g. a script written with write_script_file that uses the MicroStation Python API. Asynchronous - pass wait_ms if a following tool depends on the result. Disabled by default; requires the MCP_CONNECTOR_ENABLE_COMMAND_EXEC=1 environment variable on the MicroStation machine.
run_python_scriptPro
Run a VBA procedure: loads the project if a path is given, then queues 'vba run [Project]Module.Procedure' and reports how it ended. A macro that stops on a compile or run-time error fails the call with VBA's own message; its error box is closed and the project reset, so the session is never left waiting on it. A macro may open other files, which changes the active file for later calls (the reply says so). Refused while a project is stopped in break mode or an error box is open: call reset_vba_project first. Disabled by default; requires the MCP_CONNECTOR_ENABLE_COMMAND_EXEC=1 environment variable on the MicroStation machine.
run_vba_macroPro
Find suitable existing MicroStation icons for a custom ribbon or GUI. Search by the button's purpose using a few keywords, such as 'place text', 'attach reference' or 'print'. Reads actual named icons from configured MicroStation RSC/GUI DGNLIB libraries, and matches ribbon tool labels and descriptions where available. Results are ranked keyword matches, not a guarantee of visual suitability: choose the best semantic match and pass its exact icon value to write_ribbon_xml. Try related keywords if there is no suitable match; never invent an icon name. Read-only.
search_iconsFree
Author a custom ribbon as a MicroStation ribbon XML file (tabs > groups > buttons, each button running a key-in, with optional drop-down menus and named icons). The file is validated against the install's RibbonDefinitions.xsd. Load it by adding MS_RIBBONXML > <file> to a cfg (write_config_file or set_config_variable), then reload_ribbon or restart. To add a tab to an EXISTING workflow pass tab_collection (find names with list_ribbon_structure); to add a group to an existing tab give the tab that name with match 'Merge'. Icons must be named icons: import them first with import_icons, or use search_icons with the button purpose to choose an existing icon. Copy the returned icon value exactly; never guess a stock icon name.
write_ribbon_xmlPro
Write a text file into the workspace: Python scripts (.py), VBA source (.bas, .cls, .frm), key-in scripts (.txt), function-key menus (.mnu), ribbon or data XML, CSV level tables, JSON or Markdown notes. Creates the folder if needed. Pair with build_vba_project to compile VBA sources into an .mvba, and run_python_script to run Python. Refuses to overwrite unless overwrite is true.
write_script_filePro

Saved Views

ToolExample promptEdition
Recall a saved view into one of the eight view windows, restoring its orientation, levels, clip volume, and reference settings
apply_saved_viewFree
List the saved views stored in the active design file with their names and descriptions
list_saved_viewsFree
Create a saved view from one of the eight view windows, capturing its current orientation, levels, clip volume, and reference settings under a name that can be recalled later with apply_saved_view
save_named_viewPro

Solid Booleans and Feature Editing

ToolExample promptEdition
Bevel one edge of a solid
chamfer_solid_edgePro
Round off every edge bounding one face of a solid in a single operation
fillet_face_edgesPro
Round off one or more edges of a solid to a given radius
fillet_solid_edgesPro
Push or pull one face of a solid along its own normal, growing or shrinking the body
offset_solid_facePro
Delete one face of a solid, extending the surrounding faces to close the gap
remove_solid_facePro
Hollow a solid out, leaving walls of the given thickness
shell_solidPro
Keep only the volume shared by two or more solids
solid_intersectPro
Cut one or more solids out of a target solid
solid_subtractPro
Combine two or more solids into a single body
solid_unionPro

Standards and DGNLIB

ToolExample promptEdition
Activate an element template by path (from list_element_templates) so subsequent placement uses its level and symbology. Optionally applies it to the selected elements.
activate_element_templatePro
Check if levels in the active model match a DGNLIB standards file
check_level_standardsPro
Check text elements for standards compliance: minimum height, allowed fonts, and text styles
check_text_standardsPro
Create a new DGNLIB (design library) file. Uses the workspace's personal DGNLIB seed when no seed_path is given. Opens it as the active file by default so create_level, create_text_style, create_dimension_style, create_element_template and import_icons write into it. Put the file on MS_DGNLIBLIST (or MS_GUIDGNLIBLIST for UI libraries) via write_config_file so the workspace loads it.
create_dgnlibPro
Create a dimension style in the active file (open the standards DGNLIB first): text style, text height, terminator, extension line offset/extension, unit format, accuracy (decimal places), text position, colour and weight. Replaces an existing style only when overwrite is true. Saves the file. Verify with list_dimension_styles.
create_dimension_stylePro
Create an element template in the active file (open the standards DGNLIB first) at a slash-separated path such as 'Annotation/2mm Notes Left' - intermediate groups are created as needed. Sets the template's level, colour, weight, line style, text style, dimension style, cell name, element class, priority and transparency; each is optional. With overwrite, an existing template at that path is updated. Saves the file. This is the layer ribbon buttons target: a button key-in like 'TEMPLATE ACTIVATE Annotation/2mm Notes Left;PLACE TEXT' drives it.
create_element_templatePro
Create a text style in the active file (open the standards DGNLIB first): font, height and width in master units, justification, colour, bold / italic / underline and line spacing. Replaces an existing style of the same name only when overwrite is true. Saves the file. Verify with list_text_styles.
create_text_stylePro
Write the element templates defined in the ACTIVE file to an XML file - the same format the Customize dialog exports. Use it to audit a library as text, to copy templates between libraries with import_element_templates, or as a starting point for bulk edits.
export_element_templatesPro
Generate a comprehensive CAD standards compliance report covering levels, text, symbology, and references
generate_standards_reportPro
Import element templates from an XML file (as written by export_element_templates or the Customize dialog) into the ACTIVE file, optionally under an existing group. Names are kept unique. Saves the file.
import_element_templatesPro
List the element templates available to the active file (its own plus every DGNLIB on MS_DGNLIBLIST) as slash-separated paths, grouped as in the Element Templates dialog, with the active template. Use the paths with activate_element_template and in ribbon button key-ins.
list_element_templatesFree
Find all levels in the active model that are NOT in the attached DGNLIB standards
list_non_standard_levelsPro
List the text styles available in the active file (its own and those inherited from DGNLIBs): name, font, height and width in master units, justification, colour and emphasis flags. Use the names in create_dimension_style and create_element_template.
list_text_stylesFree
Update the active file's levels from the attached DGNLIB standards libraries (dgnlib update levels)
sync_levels_from_dgnlibPro

Tags

ToolExample promptEdition
Attach tags from a tag set to an element in the active model, with values - e.g. put TitleBlock on the title block cell, or GRID on a grid bubble. Attaches every definition in the set unless 'tags' names a subset. Values are coerced to each definition's type; omitted ones take the definition default. Optional x/y places the tag text (master units); otherwise it sits at the element origin.
attach_tagsPro
Create a tag set (attribute schema) in the ACTIVE file with its tag definitions: name, type (text, integer, short, double), prompt, default value, hidden and constant flags. Put it in the standards DGNLIB or cell library so title blocks, grid bubbles and revision symbols carry the same schema everywhere. Saves the file.
create_tag_setPro
Edit an existing tag set in the ACTIVE file: add definitions, update prompt / default / hidden / constant on existing ones, remove definitions, or delete the whole set. Tags already attached to elements keep their values; a removed definition leaves orphaned tags. Saves the file.
edit_tag_setPro
Read every tag (attribute) on an element: tag set name, tag name, current value and data type
get_element_tagsFree
List the tag set definitions in the active file with their member tag names, data types, prompts and default values - the schema behind set_element_tag
list_tag_setsFree
Set the value of a tag (attribute) on an element and save it - how a titleblock drawing number, title, date or revision field gets updated
set_element_tagPro

Transform and Modify

ToolExample promptEdition
Create a rectangular array of an element with specified rows, columns, and spacing
array_elementPro
Copy an element with a translation offset
copy_elementPro
Mirror an element across a line defined by two points
mirror_elementPro
Move an element by a translation vector
move_elementPro
Rotate an element around a center point by an angle in degrees (about the Z axis)
rotate_elementPro
Scale an element uniformly from a center point
scale_elementPro

Views and Navigation

ToolExample promptEdition
Fit a view so every element is visible
fit_viewFree
Read the full state of a view: origin, extents and centre (master units), which standard orientation it is in, render mode, camera position/target/angle, and the display flags
get_view_infoFree
List the eight views with their open state, standard orientation, and display extents
list_viewsFree
Position a view's perspective camera: eye position, target point, and either the camera angle in DEGREES or the focal length
set_cameraPro
Change the display style of a view (or all 8 views)
set_display_stylePro
Set a view's rendering mode: wireframe, hiddenline, solidfill, constantshade, smoothshade, phong, wiremesh, or crosssection
set_render_modePro
Turn view display flags on or off - constructions, dimensions, text, text_nodes, fill, patterns, line_styles, line_weights, level_symbology, grid, tags, reference_boundaries, acs_triad, background_image, data_entry_regions
set_view_display_flagsPro
Set a view to a standard orientation: top, bottom, front, back, left, right, or iso
set_view_rotationFree
Force update (redraw) all open views
update_viewsFree
Zoom a view to show a specific element
zoom_to_elementFree
Zoom a view by a factor
zoom_viewFree

WorkSpace and WorkSet Configuration

ToolExample promptEdition
Associate a DGN with a WorkSet: stamp the WorkSpace/WorkSet identity and project properties into the file so it opens under that WorkSet without the 'not found' prompt. Works on the active file or on any DGN by path (opened, stamped, saved, closed without disturbing the active file), so a folder of migrated drawings can be re-pointed one call at a time. Defaults to the active WorkSet.
assign_worksetPro
Scaffold a MicroStation CONNECT workspace on disk: WorkSpaces/<name>.cfg, the WorkSpace Standards folders (Cell, Data, Dgn, Dgnlib, Dgnlib/GUI, Macros, Materials, Pltcfg, Seed, Symb, Tables), a first WorkSet with its cfg, .dgnws and Dgn/Standards/Out folders, and optionally an Organization folder with standards.cfg. Every cfg is pre-wired for DGNLIB lists, GUI DGNLIBs, ribbon XML, icon libraries, cells, seeds, VBA and Python search paths. Also writes a WorkSpaceSetup.cfg to copy into the MicroStation config folder so the install points at the new root. Creates nothing that already exists unless overwrite is true.
create_workspacePro
Read a MicroStation configuration variable: whether it is defined, its raw value and the fully expanded value. Use it to check workspace wiring such as MS_DGNLIBLIST, MS_GUIDGNLIBLIST, MS_RIBBONXML, MS_CELL, MS_SEEDFILES or _USTN_*.
get_config_variableFree
Report which WorkSpace and WorkSet a DGN is associated with (the association that makes MicroStation prompt when the file is opened elsewhere), plus the project properties stamped on it. Reads the active file, or any DGN by path without opening it in the UI.
get_file_worksetFree
Describe the active workspace: WorkSpace and WorkSet names, configuration roots (_USTN_ORGANIZATION, _USTN_WORKSPACEROOT, _USTN_WORKSETROOT, user prefs), the active workflow, the personal DGNLIB, and the resolved standards wiring (DGNLIB lists, GUI DGNLIBs, ribbon XML, icon libraries, cell and seed paths, VBA and Python search paths). Start here before authoring anything into a workspace.
get_workspace_infoFree
List the configuration variables of the active session with their expanded values. Filter by prefix (e.g. MS_DGNLIBLIST, _USTN_) or substring. The full session holds well over a thousand variables, so filter and page rather than dumping everything.
list_config_variablesFree
List the WorkSpaces under the active configuration and the WorkSets in each, with descriptions and cfg paths. Use the names with assign_workset.
list_worksetsFree
Define or override a configuration variable in the running session, e.g. point MS_RIBBONXML at a new ribbon file or add a DGNLIB folder. Session-only unless persist is true, which also writes it to the user's configuration file so it survives a restart. Workspace-wide wiring belongs in a cfg file: use write_config_file for that.
set_config_variablePro
Write a MicroStation configuration file (.cfg or .ucf) from structured entries, or append to an existing one. Each entry is variable + operator + value: = sets, > appends a path to a list, < prepends, : sets only if undefined. Values may use $(VAR) references such as $(_USTN_ORGANIZATION)dgnlib/*.dgnlib. raw_lines lets you add %if / %include blocks verbatim. Use it for standards.cfg, WorkSpace and WorkSet cfgs, and to wire MS_DGNLIBLIST, MS_GUIDGNLIBLIST, MS_RIBBONXML, MS_ADDINPATH or MS_VBASEARCHDIRECTORIES.
write_config_filePro

Troubleshooting

The AI says it is not connected to MicroStation

  • MicroStation must be running with a design file open. Open the first session yourself. Pro can then start an additional session with start_microstation_session.
  • In MicroStation, run MCPCONNECTOR STATUS to check the plug-in state. If it reports not running, run MCPCONNECTOR START.
  • Ask your AI to run the ping tool. It reports whether the link is up and, if not, why.

The plug-in did not load

  • The plug-in auto-loads when MicroStation starts. If the AUTOM8LABS ribbon is missing, restart MicroStation, then run MCPCONNECTOR START at the command line.
  • Confirm the bundle exists at C:\ProgramData\AUTOM8LABS\MCPConnectorMicroStation. If it is missing, re-run the installer.
  • Check that your MicroStation release is between 2023 and 2026.

Pro tools are missing after activating

  • With MicroStation running, the Bridge reads the edition from the connected plug-in. Reconnect your AI client and start a new conversation to refresh any cached tool list after activation. Administrator permissions may also restrict which tools appear.
  • Confirm the licence state in MicroStation via Manage Licence on the AUTOM8LABS ribbon.

The AI client does not list the server

  • Restart the client completely after installing; a window reload is not always enough.
  • For clients other than Claude Desktop and Cursor, add the manual configuration yourself.

send_keyin is not available

  • Raw key-in execution requires Pro and is off by default. Create the Windows user environment variable MCP_CONNECTOR_ENABLE_COMMAND_EXEC with value 1, then restart MicroStation. Check any administrator tool restrictions. See raw command execution setup.

FAQ

Bentley MicroStation 2023 through 2026 on Windows (64-bit). One install covers every supported release.
Not yet. The current release targets MicroStation 2023 to 2026. Support for further Bentley releases is in progress - get in touch if you need a specific one and we will tell you where it is.
No. The free edition works without any key. It includes read-only inspection tools to scan elements, list levels, models, cells and references, read properties and tags, and navigate the view.
Buy a Pro subscription on the product page (£10 per seat per month or £100 per seat per year). Your key arrives by email. Activate it in MicroStation via Manage Licence on the AUTOM8LABS ribbon or the MCPCONNECTOR LICENCE command, then restart your AI client.
Yes. A seat is per machine. Click Deactivate in the licence dialog to free the seat, then activate the same key on the new PC.
The free edition always works offline. A validated Pro key keeps working offline between licence checks, so short offline stretches never block your work. Note that your AI client may still need its own connection to reach its model provider.
The connector itself runs entirely on your machine: the MCP server and the MicroStation plug-in talk over a local connection. Tool results are returned to your AI client, which handles them under its own provider's terms, so only the data a tool returns ever leaves the connector.
Not by default. Raw key-ins, VBA macros and Python execution require Pro and the Windows user environment variable MCP_CONNECTOR_ENABLE_COMMAND_EXEC=1. Restart MicroStation after setting it. Setting it only in the AI client configuration does not enable execution in the plug-in. Administrator policies can restrict these tools further. See raw command execution setup.
Yes. Each client launches its own copy of the MCP server, and one Pro seat covers every AI client on the machine.

Changelog

v1.1.2 Latest 11 October 2026
  • Administrator permissions and audit logging. Adds machine-wide native tool restrictions, CSV audit logging and optional explanations, with setup instructions and a downloadable browser dashboard and Power BI report.
  • Geometry and file workflows. Includes exact geometry and outline readers, B-spline creation, DGN format detection, safe V7 handling, folder inventory and VBA compile/state checks that were missing from the 1.1.1 package.
  • Live discovery retained. The running plug-in supplies the edition and policy-filtered tool list. A stale manifest cannot hide licensed tools, and native execution still checks the licence.
  • Additional sessions. The session launcher requires a connected Pro plug-in before starting another MicroStation session.
v1.1.1 11 October 2026
  • Live licence discovery. The Bridge gets tool availability from the running plug-in, so a stale Free manifest no longer hides tools from a licensed Pro session. The local manifest remains the fallback when the host cannot be reached.
  • Licence enforcement. Improved consistency when licence state changes. Paid operations still require entitlement in the native plug-in; tool discovery does not grant it. Existing signed offline allowances remain supported.

Need Help?

Not finding what you need? Our support team is here to help.

Contact Support