nx-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| nx_statusA | Report bridge, NX version, and active-part status. |
| nx_create_partC | Create a part inside the configured workspace. |
| nx_open_partC | Open a part from the configured workspace. |
| nx_save_partB | Save the active work part. |
| nx_close_partB | Close the active work part, optionally saving it first. |
| nx_export_stepB | Export the active work part as STEP inside the configured workspace. |
| nx_list_sketchesB | List sketches in the active work part. |
| nx_list_bodiesB | List bodies in the active work part. |
| nx_list_featuresA | List features in the active work part. |
| nx_list_edgesA | Inspect every edge of a body: index, curve type, endpoints, midpoint, length, bounding box, direction and adjacent face count. Read-only. |
| nx_list_facesA | Inspect every face of a body: index, tag, face type, centroid, area, normal (planar only) and adjacent edge count. Read-only. |
| nx_create_sketchB | Create and activate a sketch on a principal datum plane. |
| nx_sketch_lineC | Add a line to an explicit sketch reference. |
| nx_sketch_rectangleC | Add a rectangle to an explicit sketch reference. |
| nx_sketch_circleC | Add a circle (center + diameter) to an explicit sketch reference. |
| nx_sketch_arcC | Add an arc (center, radius, start/end degrees) to an explicit sketch reference. |
| nx_finish_sketchC | Deactivate and finish an explicit sketch reference. |
| nx_extrudeC | Extrude a sketch into a new body, or subtract it from an existing target body. |
| nx_holeC | Create a hole on a target body (circle sketch + boolean subtract). |
| nx_counterbore_holeB | Create a coaxial counterbore hole: a smaller deep through hole plus a larger shallow counterbore from the top face. Independent from nx_hole. |
| nx_countersink_holeA | Create a coaxial countersink (conical) hole: a smaller deep through cylinder plus a conical countersink from the top face. Independent of nx_hole / nx_counterbore_hole. |
| nx_shellA | Shell (hollow) a body: remove one face as an opening and keep a constant wall thickness. First version removes a single face; inward=True keeps the outer dimensions. |
| nx_edge_blendB | Create an edge blend (fillet) on edges of a body; default all edges. |
| nx_chamferC | Create a symmetric chamfer on edges of a body; default all edges. |
| nx_uniteB | Boolean-unite one or more tool bodies into the target body. The target body keeps its id; the tool bodies are consumed and
disappear from |
| nx_revolveB | Revolve a closed sketch section around an in-sketch 2D axis. Creates a new solid only (no unite/subtract). |
| nx_mirrorA | Mirror a body about a datum plane.
|
| nx_linear_patternA | Pattern a body linearly along X/Y/Z.
|
| nx_circular_patternA | Pattern a body circularly about an axis through
|
| nx_undoB | Undo the last visible NX MCP operation. |
| nx_fit_viewA | Fit the active modeling view. |
| nx_releaseA | Clear the current task state and return NX to normal interaction. With the resident C# Loader backend, the Loader and named pipe remain alive for the entire NX session; nx_release does not unload the plugin or require Alt+F8 to start it again. |
| nx_create_drawing_sheetB | Create a drawing sheet and place a base view of the given model view. The part must already contain geometry for the base view to be meaningful. |
| nx_create_projected_viewB | Project a view from an existing drafting view at sheet position (x, y). Leave parent_view_id empty to use the first drafting view on the sheet. |
| nx_list_drawing_sheetsA | List the drawing sheets in the active part. |
| nx_list_drafting_viewsA | List the drafting views on the current drawing sheet. |
| nx_list_dimensionsA | Read back every dimension in the part: measured size and tolerance. Returns one entry per dimension, formatted as "<journal_id>||size=|tol=/|<tolerance_type>". Use this to verify dimensions you just created, or to READ an existing NX 2D drawing: sizes and tolerances are recovered from the model, so an agent can understand what a drawing specifies without opening the UI. |
| nx_list_annotationsA | Read the non-dimension annotations of a drawing: notes, GD&T, roughness. Each entry is prefixed by kind: "NOTE|<journal_id>|" drafting / technical-requirement text "GDT|<journal_id>||tol=|datum=,," "ROUGH|<journal_id>" surface finish symbol Use this together with nx_list_dimensions to fully understand an existing NX 2D process drawing. |
| nx_create_radius_dimensionC | Create a RADIUS dimension on one edge (fillets, arcs, rounds). edge_index is the 0-based index from nx_list_edges on the given body. |
| nx_delete_annotationA | Delete a note / dimension / GDT / roughness annotation. Pass either its journal id or name (e.g. "LEN_120", "HANDLE R-5132"), or a "kind:index" selector: note:0, dim:1, gdt:0, rough:0 (0-based, in the order returned by nx_list_dimensions / nx_list_annotations). Useful for cleaning up test annotations that nx_undo cannot reach. |
| nx_export_pdfA | Export the current drawing display to a PDF file. Pass sheet_name to display that sheet first (the export follows the current display). Use nx_list_drawing_sheets to see available sheet names. |
| nx_create_roughnessA | Create a surface finish (roughness) symbol on the current drawing sheet. value goes into the symbol's a1 slot - e.g. "1.6" for Ra 1.6, "3.2" for Ra 3.2. Position is in sheet coordinates (mm). |
| nx_create_title_blockB | Place a title block on the current drawing sheet. Position is in sheet coordinates (mm); typically bottom-right, e.g. pos_x=340, pos_y=5 for an A3 landscape sheet. |
| nx_set_attributeB | Set a string attribute on the part. This is how a title block gets its CONTENT: title-block cells usually reference part attributes. Typical names: 名称 / 图号 / 材料 / 设计 / 审核 / 比例 / 单位. Value may contain spaces. |
| nx_list_attributesB | Read back all user attributes set on the part (title-block content). |
| nx_measure_distanceA | Measure the minimum 3D distance between two edges of a body. This is a QUERY: no annotation is created. It returns the numeric distance (mm) plus the two closest points, so an agent can verify geometry instead of guessing. Indices are 0-based from nx_list_edges. |
| nx_create_noteA | Add technical-requirement / process text to the current drawing sheet. Use "|" to start a new line, e.g. "技术要求|1. 未注倒角 C0.5|2. 调质 28-32HRC". Position is in sheet coordinates (mm). |
| nx_create_diameter_dimensionA | Create a DIAMETER dimension on one edge (essential for shafts). A linear dimension between two edges cannot express a diameter; use this for cylindrical/circular features. edge_index is the 0-based index from nx_list_edges on the given body. |
| nx_update_viewsA | Force every drafting view on the current sheet to a fresh update. Clears the out-of-date ("clock") flag shown in the Part Navigator after a drawing or projected view is created or modified. |
| nx_create_dimensionA | Create an associative linear dimension with a bilateral tolerance. Measures the distance between two model edges (selected by their 0-based index from nx_list_edges on the given body) inside the drafting view. Default tolerance is ±0.1 mm using the BilateralTwoLines style. |
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 50 tools
Most tools have clearly distinct purposes: part lifecycle, sketch creation, modeling features, booleans, drafting, annotation, attributes, queries, and export. There is some potential overlap within the hole family (nx_hole, nx_counterbore_hole, nx_countersink_hole) and dimension-creation family, but the descriptions make the boundaries reasonably clear.
All tools use a consistent nx_ snake_case prefix, which makes the set readable and predictable. However, the names are not uniformly verb_noun: several modeling tools use feature nouns or noun-like verbs such as nx_hole, nx_shell, nx_extrude, nx_chamfer, and nx_unite.
Fifty tools is very high for a single MCP server and exceeds the well-scoped range even though NX CAD/drafting is a broad domain. Many granular listing, drafting, annotation, and attribute tools are justified individually, but the overall surface is heavy enough to increase selection cost and cognitive load.
The surface covers a broad CAD workflow: part lifecycle, sketching, solid modeling, booleans, patterns, drafting, dimensions, annotations, attributes, measurement, and export. Remaining gaps include assembly-level operations, editing existing feature parameters, body/feature deletion beyond undo, and some dimension types, but core workflows are well supported.