nx-mcp
MCP Server for MIDAS NX

Ask your AI about your MIDAS NX model.

A local MCP server that lets AI apps such as Claude Desktop read the model open in Gen NX / Civil NX, show analysis results, and apply only the changes you confirm.

Built by a MIDAS IT team member · alpha · not an official product
Want your AI to set it up? Paste this address into the chat: https://dennis5882.github.io/midas-nx-mcp/en/llms.txt It sums up the install steps, the tools and the rules to follow, written for AI agents.
13

tools

9

read-only tools

4

tools that change, after you confirm

2

products: Gen NX · Civil NX

Features

What it does

Keep the model open and ask; the AI picks the right tool and reads straight from NX.

RD

Read the model

Ask "Summarise the Gen model" for counts of nodes, elements, materials, sections and load cases, and the unit system. Table schemas and records too.

model_summary · read_table
RS

Analysis results

"Show the DL reactions", "Beam forces for DL": result tables on request, and checks based on them.

result_table
VW

Screen capture

"Show me the model" returns a picture of the NX window.

capture_view
WR

Confirmed changes

Add nodes, edit or delete records, run the analysis, save a copy. Every change is previewed first and applied only after you agree.

write_records · run_analysis

How it works

AI app (Claude Desktop, ...)→ midas-nx-mcp (your PC)→ Gen NX / Civil NX (same PC)

Everything runs on your PC. The AI app starts and stops the server; you never run it yourself.

Requirements

What you need

OSWindows
NXGen NX or Civil NX running on the same PC, with its Open API connected (Apps > API Settings)
MAPI keyOne per product, shown under Apps > API Settings in each program. Use your own PC's key.
AI appClaude Desktop, latest version (recommended). Claude Code, Codex and other MCP clients work too.

Do not swap the Gen and Civil keys. The other product's key still reports "connected", but every real call fails. Do not share your key with anyone.

Install

Install: Claude Desktop

No Python or uv to install.

  1. Download

    Get midas-nx-mcp-<version>.mcpb from the latest release.

  2. Open it

    Double-click the file, or drag it onto Settings > Extensions in Claude Desktop.

  3. Enter your keys

    Enter the Gen and Civil keys; leave the one you do not use empty. The output folder (default C:\temp, which must exist) and the analysis timeout are set here too. Change them later under Settings > Extensions.

  4. Check the connection

    Open a model in NX and ask Claude "Check the Gen connection". If it reports connected and the program name, you are done.

Other apps / by hand

These need uv. Install it once from PowerShell:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Open claude_desktop_config.json with Settings > Developer > Edit Config, add the server under mcpServers, then quit Claude Desktop completely (tray icon too) and start it again.

{
  "mcpServers": {
    "midas-nx": {
      "command": "uvx",
      "args": ["midas-nx-mcp@latest"],
      "env": {
        "MIDAS_MAPI_KEY_GEN": "your Gen NX key",
        "MIDAS_MAPI_KEY_CIVIL": "your Civil NX key"
      }
    }
  }
}
Usage

What to ask

Say "Gen" or "Civil" in your request, so the AI uses the right key.

ToAsk
Get an overview"Summarise the Civil model"
Find a table / its fields"Which load tables does Gen have?", "What fields does the SECT table have?"
Read records"Show the coordinates of nodes 1 to 10", "List the sections in use"
Design settings"Which design code is set?"
Current selection"What is selected in NX right now?"
Analysis results"Show the DL reactions", "Show DL and LL displacements"
Check"Do the reactions add up to the self-weight?"
See it"Show me the model"

At most 200 rows come back at once. For more, ask for a range: "the next 200", "only 1001 to 1100".

Safety

Preview → confirm → apply

Anything that changes the model or its file (analysis, save a copy, create / update / delete records) takes two steps. The AI shows what will change first and applies it only after you say "go ahead". If the model changed in between, it is refused; afterwards the table is read back and reported.

  • Any change discards the analysis results. Run the analysis again before reading results.
  • NX saves over the open file before it analyses. To keep the original, ask for "save a copy" first.
  • A document that was never saved cannot be analysed. Save a copy first to give it a file.
  • Copies go to C:\temp under a generated name, and NX then works on the copy.
  • New / open / import document and emptying a table are never offered: they are too risky.
Add a node at (4, 3, 0) in Gen
Preview · NODE 13 will be created. Analysis results will be discarded. Go ahead?
Go ahead
Applied · NODE 13 added (read back to confirm)

Try it on a copy of an important model first. This alpha has been verified on small test models, not yet on large production models.

Tools

Tools

The AI picks them; no need to remember the names. Every tool takes product (gen or civil).

ToolKindWhat it does
check_connectionreadConnected or not, program name
list_tablesreadThe /db and /DESIGN tables (searchable)
describe_tablereadNX's own field schema for a table
read_tablereadRecords, by id if given, up to 200 rows
model_summaryreadCounts of the main tables, unit system
read_model_inforeadProject status, section properties, story check parameters (Gen), current selection
list_result_tablesreadResult table types
result_tablereadOne result table (load cases, components, keys)
capture_viewreadThe NX window as a PNG
run_analysischangeRuns the analysis (NX saves the open file first)
save_copychangeSaves a copy to C:\temp under a generated name
write_recordschangeCreates or updates up to 50 records
delete_recordschangeDeletes up to 50 records by id
Troubleshooting

Troubleshooting

SymptomCheck
Every call suddenly times outLook for a dialog in NX and answer it in the NX window. Do not ask the AI to retry.
"... is not set"That product's key is entered (Settings > Extensions)
Connected, but reads failThe Gen and Civil keys are not swapped, and NX's API is connected
"NX is not running"Start NX and connect under Apps > API Settings
"no analysis result"No analysis yet, or a later change discarded the results
Capture or save failsThe output folder (C:\temp) exists
New version not picked up.mcpb: install the new file. By hand: uv cache clean, then restart the app

Other problems or ideas: GitHub Issues.

Try it now

Double-click one file, enter your key, and you are set.