nx-ai-bridge
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NX_AI_BRIDGE_TRANSPORT | No | Set to 'batch' to use batch mode (the bridge starts run_journal.exe itself), or 'mock' to use the mock receiver without NX. Default is live mode. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
nx-ai-bridge drives Siemens NX (UG) modelling. ALPHA software.
Workflow:
Call nx_status first. If it fails with RECEIVER_NOT_RUNNING, relay the
hintto the user: they must start the receiver journal inside NX once (Alt+F8). Do not retry in a loop.new_part or open_part, then build the model with primitives / sketches / features / booleans.
After each important step call screenshot (to see the result) or get_model_info (bounding box, volume) to verify.
save_part when done. Export with export_step / export_stl.
Rules:
All lengths are millimetres, all angles degrees, points are [x, y, z] in absolute coordinates.
Refer to bodies by the
bodyname returned by the creating tool (e.g. "B1") or by feature name (e.g. "BLOCK(1)").On failure read error.message / error.nx_error / error.hint, fix the parameters and try again. Use undo to go back.
When no tool fits, use nx_api_lookup to explore the NX Open API and run_journal to execute custom NX Open code.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| nx_statusA | Check the connection to NX. Returns NX version, receiver mode (live/batch/mock), the work part path and whether it has unsaved changes. Call this first. |
| get_model_infoB | Summarise the work part: feature list, bodies with bounding box [xmin,ymin,zmin,xmax,ymax,zmax] (mm), volume (mm^3), surface area (mm^2) and centroid. Units: millimetres (mm) and degrees. |
| run_journalA | ESCAPE HATCH: compile and run arbitrary NX Open code inside NX. Use it when no dedicated tool exists. The code must be a complete journal with a public static/shared Main method (C# class or VB Module). It may return a string from Main; text written to Console is captured too. Compile errors and NX exceptions are returned verbatim so you can fix the code and retry. WARNING: this executes arbitrary code with the user's privileges. |
| nx_api_lookupA | Search the NX Open .NET API that is actually loaded in the running NX (works offline, no docs needed). Give |
| nx_batchA | Run several tool calls in order as one unit. In batch mode (no NX window) this starts NX only once, which is much faster than separate calls. Returns one result per command. |
| new_partA | Create a new, empty millimetre part and make it the work part. |
| open_partA | Open an existing .prt file and make it the work part. |
| save_partA | Save the work part to its current file. |
| save_part_asB | Save the work part under a new file name; the new file becomes the work part. |
| close_partA | Close the work part. Unsaved changes are discarded unless save=true. |
| create_blockA | Create a rectangular block. |
| create_cylinderB | Create a cylinder. |
| create_coneB | Create a cone or truncated cone. |
| create_sphereB | Create a sphere. Units: millimetres (mm) and degrees. |
| create_sketchA | Create an empty sketch on a principal plane, on an arbitrary plane, or on a planar face. Returns the sketch name used by sketch_* tools, extrude and revolve. Sketch coordinates are 2D (x, y) in the sketch plane: for XY the sketch x/y are absolute X/Y (normal +Z); for XZ they are absolute X/Z (normal -Y); for YZ they are absolute Y/Z (normal +X). The result reports origin, x_axis, y_axis and normal. Units: millimetres (mm) and degrees. |
| sketch_lineC | Add a straight line to a sketch. |
| sketch_circleC | Add a full circle to a sketch. |
| sketch_rectangleB | Add an axis-aligned rectangle (four lines) to a sketch. |
| sketch_arcA | Add a circular arc to a sketch, counter-clockwise from start_angle to end_angle (degrees, measured from the sketch x axis). |
| extrudeA | Extrude all curves of a sketch along the sketch normal (or |
| revolveB | Revolve all curves of a sketch about an axis given in ABSOLUTE coordinates. Units: millimetres (mm) and degrees. |
| create_holeA | Drill a simple round hole into a body. |
| edge_blendA | Round (fillet) edges with a constant radius. Use list_edges to find edges. Units: millimetres (mm) and degrees. |
| chamferB | Chamfer edges with a symmetric offset. Use list_edges to find edges. Units: millimetres (mm) and degrees. |
| shellB | Hollow out a solid body leaving walls of the given thickness. Faces listed in |
| boolean_uniteA | Unite (add) tool bodies to the target body. The tools are consumed. |
| boolean_subtractB | Subtract tool bodies from the target body. The tools are consumed. |
| boolean_intersectB | Keep only the volume shared by the target body and the tool bodies. The tools are consumed. |
| list_featuresA | List all features of the work part in timestamp order. |
| delete_featureB | Delete a feature (and features that depend on it). |
| list_expressionsA | List the expressions (parameters) of the work part with name, value and formula. |
| set_expressionA | Change an expression (parameter) and update the model. Give either a numeric |
| undoC | Undo the last modelling steps (each modifying tool call is one step). |
| list_edgesA | List the edges of a body with id, type, length, end points and mid point. Ids are valid until the body changes. |
| list_facesB | List the faces of a body with id, type, a point on the face, its normal/axis direction and bounding box. |
| export_stepC | Export the work part as a STEP file (AP214). |
| export_stlB | Export solid bodies of the work part as a binary STL file. |
| screenshotA | Save a PNG image of the NX graphics window so you can SEE the model. The MCP server returns the image itself. Only available in live mode (batch mode has no graphics window). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 38 tools
Tools are cleanly separated by resource and action: primitives, sketch entities, booleans, lifecycle, inspection, and export are all distinct. run_journal and nx_batch are explicit meta-tools, and create_hole is a clearly described convenience distinct from boolean_subtract.
All names use snake_case and mostly follow predictable patterns such as create_block, sketch_line, boolean_unite, list_edges, and export_step. Minor deviations like bare verbs (extrude, revolve, chamfer, shell, undo) and the nx_ prefix are readable and logical.
At 38 tools, the surface is above the rubric's 25+ threshold and feels heavy for an agent-facing interface, even accounting for CAD breadth. Many tools are individually justified, but the set would benefit from grouping or progressive disclosure.
The set covers part lifecycle, primitives, sketching, core features, booleans, inspection, parameters, undo, and export, with run_journal as an escape hatch for gaps. Common CAD operations such as STEP import, transform/move, mirror/pattern, and assembly are missing, but agents can work around them via journals.