salome-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@salome-mcp create a box and mesh with Netgen very fine"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SalomeMCP
SALOME Model Context Protocol for agentic use
Overview
This repository provides three components:
SALOME GUI plugin to start/stop the local bridge port.
SALOME-side bridge (
salome_bridge.py) that executes GEOM/SMESH operations.MCP server (
salome-mcp) that agent clients connect to.
Related MCP server: COMSOL MCP Server
Requirements
SALOME 9.x
Python 3.10+
Setup
1) Install Python dependencies
cd /path/to/salome-mcp
uv sync2) Install SALOME plugin files
mkdir -p ~/.config/salome/Plugins # or wherever your plugins folder is located
cp salome_plugin/*.py salome_bridge.py ~/.config/salome/Plugins/Configure MCP Client
It is recommended that you set up the MCP server inside a particular project instead of globally.
Claude Code CLI (from inside your project root)
claude mcp add --scope project salome -- uv run --directory /path/to/salome-mcp salome-mcpCodex CLI (from inside your project root)
mkdir -p .codex && cat > .codex/config.toml <<'EOF'
[mcp_servers.salome]
command = "uv"
args = ["run", "--directory", "/path/to/salome-mcp", "salome-mcp"]
EOFCustom Host and Port
By default, the bridge uses localhost:1234. You can set your custom host/port in the SALOME GUI bridge settings, then simply prompt your agent to connect to that.
Usage
Start SALOME and start:
Tools -> PLugins -> MCP Bridge -> Start (default)Open your agent and prompt it to "ping salome". The agent should be able to use
check_salome_statusand return successThe agent should now be able to make tool calls based on your prompts. Check samples
End session with
MCP Bridge -> Stop
Tool Coverage
These are the tool calls that can be used by your agent. You probably don't need to know this
General
ping_salome,check_salome_status,get_study_info,get_scene_summary,list_study_objects: Session and study status/overview
Geometry (GEOM)
create_box,create_cylinder,create_sphere,create_naca4_airfoil: Primitive creationtranslate_object,rotate_object,copy_object,duplicate_object,rename_object,delete_object: Transforms and object lifecycleboolean_operation,fuse_objects,cut_objects,common_objects: Boolean operations (fuse,cut,common)create_group,create_groups,create_surface_group,create_volume_group: Group creationmake_partition,explode_shape,import_geometry,export_geometry,get_object_info,list_subshapes: Partition, explode, I/O, and inspection
Mesh (SMESH)
import_mesh,export_mesh: Mesh I/Ocreate_mesh: Standard mesh setup with hypothesescreate_mesh_with_hypotheses: Explicit algorithm + detailed hypotheses meshingcompute_mesh,get_mesh_info: Mesh compute and statistics
Advanced
execute_salome_code(raw Python code)
execute_salome_code executes arbitrary Python inside SALOME. Keep bridge access local and trusted.
Samples
Prompt 1
lets do these step by step: 1. make a cylinder r = 4 h =8 and place it along x axis 2. make two more cylinders of r = 2 and h = 4 3. place these cylinders on either of the circular ends 4. carve a cylinder out of these smaller ones to make two shells of rout = 2 and rin = 1 5. fuse all 6. create the single vol group 7. make surface groups inlet outlet and walls 8. make a mesh with netgen 1d 2d 3d very fine mesh. 9. compute mesh and report its stats

Prompt 2
1.make a naca 4412 airfoil 2. create a fluid box region around it for wind tunnel testing 3. cut the region for the air 4. make a partition and name all surface and vol groups 5. generate a netgen 1d2d3d coarse mesh 6. report mesh stats

Available Tools
36 toolsboolean_operationC
Perform boolean operation on GEOM objects.
operation: fuse | cut | common base_object/tool_objects: entry IDs or object names
Inputs: operation (required), base_object (required), tool_objects (required), result_name. Returns: result
check_salome_statusA
Standard health check for bridge accessibility and active study.
Returns host/port, reachability, ping message, and study metadata when available.
Inputs: no named parameters. Returns: result
common_objectsB
Intersect GEOM objects (common region).
Inputs: base_object (required), tool_objects (required), result_name. Returns: result
compute_meshD
Compute mesh and return basic mesh statistics.
Inputs: mesh_ref (required). Returns: result
copy_objectC
Create a GEOM copy of an object.
Inputs: source_ref (required), name. Returns: result
create_boxB
Create a GEOM box by dimensions.
Inputs: dx (required), dy (required), dz (required), name. Returns: result
create_cylinderC
Create a GEOM cylinder at origin.
Inputs: height (required), radius (required), name. Returns: result
create_groupC
Create GEOM group from subshape IDs.
Inputs: shape_ref (required), subshape_ids (required), subshape_type (required), name. Returns: result
create_groupsA
Create multiple GEOM groups in one call.
Each group item supports: name, subshape_type, subshape_ids.
Inputs: groups (required), shape_ref (required), replace_existing. Returns: result
create_meshC
Create a mesh definition on GEOM object using standard hypotheses.
surface_algorithm: triangle | quadrangle | none volume_algorithm: tetrahedron | hexahedron | none
Inputs: shape_ref (required), mesh_name, segment_count, max_element_area, +3 more. Returns: result
create_mesh_with_hypothesesB
Create mesh with explicit algorithm and detailed hypotheses.
Supported algorithm values:
netgen_1d2d3d | netgen_2d3d | netgen_1d2d | netgen_2d
tetrahedron | hexahedron | triangle | quadrangle
Common hypotheses keys:
segment_count
fineness (very_coarse/coarse/moderate/fine/very_fine/user_defined)
max_size, min_size, growth_rate
nb_seg_per_edge, nb_seg_per_radius
second_order, optimize, use_surface_curvature, fuse_edges, quad_allowed
max_element_area, max_element_volume
Inputs: shape_ref (required), compute, algorithm, mesh_name, +1 more. Returns: result
create_naca4_airfoilA
Create a NACA 4-digit airfoil (3D solid if span>0, 2D profile if span=0).
Inputs: code (required), name, span, chord, +2 more. Returns: result
create_sphereB
Create a GEOM sphere at origin.
Inputs: radius (required), name. Returns: result
create_surface_groupD
Create FACE group convenience wrapper.
Inputs: shape_ref (required), subshape_ids (required), name. Returns: result
create_volume_groupD
Create SOLID group convenience wrapper.
Inputs: shape_ref (required), subshape_ids (required), name. Returns: result
cut_objectsB
Cut GEOM objects (base minus tools).
Inputs: base_object (required), tool_objects (required), result_name. Returns: result
delete_objectC
Delete GEOM study object by entry/name.
Inputs: object_ref (required), with_children. Returns: result
duplicate_objectB
Create N GEOM duplicates from one source object.
Inputs: source_ref (required), count, name_prefix. Returns: result
execute_salome_codeB
Execute arbitrary Python code in the SALOME process.
The executed code can set a result variable that will be returned.
Inputs: code (required). Returns: result
explode_shapeC
Explode GEOM object to subshapes and optionally add them to study.
Inputs: shape_ref (required), add_to_study, result_prefix, subshape_type, +1 more. Returns: result
export_geometryC
Export GEOM object to BREP/STEP/IGES/STL.
Inputs: filepath (required), shape_ref (required), format, ascii_stl, +1 more. Returns: result
export_meshC
Export mesh to MED/UNV/STL.
Inputs: filepath (required), mesh_ref (required), format, ascii_stl, +1 more. Returns: result
fuse_objectsC
Fuse GEOM objects (explicit convenience wrapper for boolean fuse).
Inputs: base_object (required), tool_objects (required), result_name. Returns: result
get_mesh_infoB
Return mesh counts and detailed SMESH info.
Inputs: mesh_ref (required). Returns: result
get_object_infoA
Return GEOM object info: name, bbox, basic properties, and subshape counts.
Inputs: object_ref (required), precise_bbox. Returns: result
get_scene_summaryC
Return GEOM and SMESH scene summary for the active study.
Inputs: limit_per_component. Returns: result
get_study_infoB
Return high-level information about the current SALOME study.
Inputs: no named parameters. Returns: result
import_geometryC
Import GEOM from BREP/STEP/IGES.
Inputs: filepath (required), name, format, ignore_units. Returns: result
import_meshC
Import mesh from MED/UNV/STL/CGNS/GMF.
Inputs: filepath (required), name, format. Returns: result
list_study_objectsC
List study objects, optionally filtered by component (GEOM, SMESH, ...).
Inputs: limit, component. Returns: result
list_subshapesA
List subshape IDs (FACE/EDGE/VERTEX/SOLID/...) for a GEOM object.
Inputs: shape_ref (required), subshape_type, sorted_centres. Returns: result
make_partitionC
Create GEOM partition from objects and optional tools.
Inputs: object_refs (required), tool_refs, shape_type, result_name, +1 more. Returns: result
ping_salomeA
Check connectivity to the SALOME bridge process.
Inputs: no named parameters. Returns: result
rename_objectB
Rename GEOM study object (entry ID or existing name).
Inputs: new_name (required), object_ref (required). Returns: result
rotate_objectA
Rotate a GEOM object in place around X/Y/Z axis (degrees, no new copy).
Inputs: source_ref (required), angle_degrees (required), axis. Returns: result
translate_objectB
Translate a GEOM object in place by vector components (no new copy).
Inputs: dx (required), dy (required), dz (required), source_ref (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 36 tools
Several tools have overlapping purposes: boolean_operation duplicates fuse_objects/cut_objects/common_objects, create_group/create_groups/create_surface_group/create_volume_group are redundant, and copy_object vs duplicate_object are similar. This overlapping surface will confuse an agent.
Most names follow a consistent verb_noun pattern (get_, create_, list_, export_, import_, etc.). Minor deviations include 'boolean_operation' (not a verb) and the somewhat inconsistent group creation variants (create_group, create_groups, create_surface_group, create_volume_group), but overall the naming is predictable.
With 36 tools, the server is over-scoped for the domain. While SALOME is complex, the tool set includes many near-duplicates and convenience wrappers that inflate the count beyond what is necessary, making it heavy and harder to navigate.
The tool surface covers the main geometry and meshing workflows: creation, import/export, boolean operations, grouping, transformations, and mesh generation/computation. Minor gaps exist (e.g., no scaling, no mesh deletion explicitly but delete_object likely covers it), but core operations are well represented.
Maintenance
Related MCP Connectors
MCP Server for an Agent Task Marketplace
Make games with AI: one MCP server that connects your agent to Unity, Unreal and Godot editors.
MCP server enabling AI agents to manage Bitrix24 features via standardized protocol
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceAn MCP server that enables AI agents to interact with Nastran FEA models by reading, writing, and analyzing BDF and OP2 files. It provides tools for mesh quality assessment, geometric analysis, and automated report generation for structural engineering workflows.3MIT
- AlicenseBqualityDmaintenanceMCP Server for COMSOL Multiphysics simulation automation via AI agents.782MIT
- AlicenseNot gradedqualityBmaintenanceA local MCP server that enables AI agents to create and edit parametric CAD models through natural language, using a validated operation graph that compiles to real geometry.1MIT
- AlicenseAqualityDmaintenanceA parametric CAD workspace as an MCP server, enabling agents to create, edit, and manipulate 3D models through tools, with a live studio UI and STL/OBJ import/export.1258 npm4MIT