Skip to main content

midas-nx-mcp

A local MCP server that lets Claude (and other MCP clients) read the model open in MIDAS Gen NX or MIDAS Civil NX, and change it only through steps you see and confirm first. Built on the midas-nx SDK.

Personal, employee-led project; not an official MIDAS IT product.

Status: alpha. Verified live on Gen NX 2026 and Civil NX 2026 on small test models (see PLAN.md); not yet used on large production models.

What you can ask

  • "Summarise the Gen model." - node, element, material, section, load case counts
  • "Show the DL reactions." - result tables after an analysis
  • "Show me the model." - a picture of the NX window
  • "Which design code is set?" - design parameter tables
  • "Add a node at (4, 3, 0)", "Run the analysis" - previewed, applied only after you agree

Requirements

  • Windows, with Gen NX or Civil NX running on the same PC and its Open API connected (Apps > API Settings)
  • A MAPI key per product (Apps > API Settings in each program). Keys differ between Gen and Civil, and a wrong key still reports "connected", so do not swap them.
  • uv (installs Python and the server for you)

Install

Claude Desktop

Settings > Developer > Edit Config (not "Add custom connector": that is for remote servers) and add:

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

Quit Claude Desktop completely (tray icon too) and start it again. Settings > Developer should show midas-nx as running.

Claude Code

claude mcp add midas-nx -e MIDAS_MAPI_KEY_GEN=your-gen-key -- uvx midas-nx-mcp

Other clients (Codex, ...)

Add a STDIO server with command uvx, argument midas-nx-mcp, and the environment variables below.

Settings

variable default meaning
MIDAS_MAPI_KEY_GEN - Gen NX key. Needed for product="gen"
MIDAS_MAPI_KEY_CIVIL - Civil NX key. Needed for product="civil"
MIDAS_TIMEOUT 20 seconds per call. Short on purpose: a dialog in NX blocks the API
MIDAS_ANALYSIS_TIMEOUT 300 seconds for run_analysis only
MIDAS_MAX_ROWS 200 most rows one call returns; the rest are counted, not sent
MIDAS_OUTPUT_DIR C:/temp where NX writes captures. Must exist

Tools

Reading (nothing in the model changes):

tool what it returns
check_connection(product) connected or not, program name
list_tables(product?, search?) the /db and /DESIGN tables midas-nx knows
describe_table(product, table) NX's own field schema for a /db table
read_table(product, table, ids?, limit?) records, capped at MIDAS_MAX_ROWS
model_summary(product) counts of the main tables, and the unit system
read_model_info(product, what) project status, section properties, story check parameters, current selection
list_result_tables(search?) the result table types result_table accepts
result_table(product, table_type, load_cases?, components?, keys?, limit?) one result table; nothing exported
capture_view(product, width?, height?) the NX window as a PNG

Changing - each is called twice: first a preview with a confirm_token, then the same call with that token. It applies only if nothing changed in between, and reads the table back afterwards:

tool what it does
run_analysis(product) runs the analysis. NX saves the open file first; a never-saved document is refused. A dialog NX opens meanwhile is reported at once
write_records(product, table, records, mode) creates or updates up to 50 /db records
delete_records(product, table, ids) deletes up to 50 records by id; nodes still used by elements are refused

Never exposed: new/open/import document, emptying a table.

Development

git clone https://github.com/Dennis5882/midas-nx-mcp
cd midas-nx-mcp
python -m venv .venv
.venv\Scripts\activate
pip install -e ".[dev]"
copy .env.example .env      # a checkout reads its .env; an installed package does not
pytest
ruff check src tests scripts
npx @modelcontextprotocol/inspector .venv\Scripts\python.exe -m midas_nx_mcp.server

CLAUDE.md holds the safety rules every tool follows, and PLAN.md what has been verified live and what is open.

License

MIT

Metadata

Release files for midas-nx-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for midas-nx-mcp 0.1.0
File Size Uploaded Provenance Actions
midas_nx_mcp-0.1.0.tar.gz 20.5 kB With provenance Details for midas_nx_mcp-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for midas-nx-mcp 0.1.0
File Interpreter ABI Platform Actions
midas_nx_mcp-0.1.0-py3-none-any.whl Python 3 none any Details for midas_nx_mcp-0.1.0-py3-none-any.whl

Total release size: 38.4 kB

Release files / midas_nx_mcp-0.1.0.tar.gz

Download URL midas_nx_mcp-0.1.0.tar.gz
Size 20.5 kB
Tags Source
SHA-256 checksum
How to use checksums
0b2d4994fc15a462e608cbd6958a21b1e06130873b68bbd3a5d7d8524624979f
BLAKE2b-256 checksum
How to use checksums
aea3ccc6f5e64576f248272701ac5e2dbb0a82b63b733bc6939e320c453d7b53
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / midas_nx_mcp-0.1.0-py3-none-any.whl

Download URL midas_nx_mcp-0.1.0-py3-none-any.whl
Size 17.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
de59f0349cb120a2e8fd4f44b62cf5684789f107c5a45d4aee6929ebef6c95f3
BLAKE2b-256 checksum
How to use checksums
24b1e1a6b1716c1efd85c60c3fc6d29aa586c6e51bb57cba29b50cf255857144
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Security for midas-nx-mcp 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for midas_nx_mcp-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page