COMSOL MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HF_ENDPOINT | No | Optional HuggingFace endpoint mirror, e.g., https://hf-mirror.com |
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
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| comsol_startA | Start a local COMSOL client session. Args: cores: Number of processor cores to use (default: all available) version: COMSOL version to use, e.g., '6.0' (default: latest installed) Returns: Session info including version and core count, or error message |
| comsol_connectA | Connect to a remote COMSOL server. Args: port: Port number the COMSOL server is listening on host: Server hostname or IP address (default: 'localhost') Returns: Connection info or error message |
| comsol_disconnectA | Disconnect from COMSOL and clear all models from memory. Returns: Success status and message |
| comsol_statusA | Get the current COMSOL session status. Returns: Session information including connection status, version, and loaded models |
| model_loadA | Load a COMSOL model from a .mph file. Args: file_path: Absolute or relative path to the .mph model file set_current: Whether to set this as the current active model (default: True) Returns: Model info including name, file path, and version, or error message |
| model_createA | Create a new empty COMSOL model. Args: name: Optional name for the model (auto-generated if not provided) set_current: Whether to set this as the current active model (default: True) Returns: Model info including name, or error message |
| model_create_componentA | Create a component in the model (required before adding geometry/physics). Components are containers for geometry, physics, materials, and mesh. Must be created before adding geometry or physics. Args: component_name: Name for the component (default: 'comp1') model_name: Model name (default: current model) Returns: Created component info |
| model_list_componentsA | List all components in a model. Args: model_name: Model name (default: current model) Returns: List of component names |
| model_saveA | Save a COMSOL model to file. Args: model_name: Name of the model to save (default: current model) file_path: Path to save to (default: original file path) format: Save format - 'Comsol', 'Java', 'Matlab', or 'VBA' (default: Comsol/.mph) Returns: Save confirmation with file path, or error message |
| model_save_versionA | Save a model with a timestamp version suffix. Creates a new file with structured path: ./comsol_models/{model_name}/{model_name}_{timestamp}.mph Also saves a 'latest' copy: ./comsol_models/{model_name}/{model_name}_latest.mph Useful for version control and design iterations. Args: model_name: Name of the model to save (default: current model) description: Optional description for this version (stored in metadata) Returns: Save confirmation with versioned file path, or error message |
| model_listA | List all models currently loaded in the COMSOL session. Returns: List of models with their names, file paths, and status |
| model_set_currentB | Set the current active model for subsequent operations. Args: model_name: Name of the model to set as current Returns: Confirmation or error message |
| model_cloneA | Clone a model to create a copy for comparison or modification. Args: model_name: Name of the model to clone (default: current model) new_name: Name for the cloned model (auto-generated if not provided) set_current: Whether to set the clone as current model (default: False) Returns: Info about the cloned model, or error message |
| model_removeC | Remove a model from memory. Args: model_name: Name of the model to remove Returns: Confirmation or error message |
| model_inspectA | Get detailed information about a model's structure and contents. Args: model_name: Name of the model to inspect (default: current model) Returns: Detailed model structure including parameters, physics, studies, etc. |
| param_getA | Get the value of a model parameter. Args: name: Parameter name model_name: Model name (default: current model) evaluate: If True, return evaluated numerical value; if False, return expression string Returns: Parameter value and description, or error message |
| param_setA | Set the value of a model parameter. Args: name: Parameter name value: Parameter value (can include units, e.g., "5[V]", "1.5[mm]") model_name: Model name (default: current model) description: Optional description for the parameter Returns: Confirmation with new value, or error message |
| param_listB | List all parameters in a model. Args: model_name: Model name (default: current model) evaluate: If True, return numerical values; if False, return expressions Returns: Dictionary of all parameters with values and descriptions |
| param_sweep_setupC | Set up a parametric sweep for a parameter. Args: parameter_name: Name of the parameter to sweep values: List of parameter values to sweep through model_name: Model name (default: current model) study_name: Study to attach sweep to (default: first study) Returns: Sweep configuration confirmation, or error message |
| param_descriptionA | Get or set the description of a parameter. Args: name: Parameter name text: New description text (if None, returns current description) model_name: Model name (default: current model) Returns: Parameter description, or confirmation of update |
| geometry_listA | List all geometry sequences in a model. Args: model_name: Model name (default: current model) Returns: List of geometry sequence names |
| geometry_createA | Create a new geometry sequence in the model's component. IMPORTANT: A component must exist first. Use model_create_component if needed. Args: geometry_name: Name for the geometry sequence (default: 'geom1') space_dimension: Space dimension - 2 for 2D, 3 for 3D (default: 3) component_name: Component name (default: 'comp1') model_name: Model name (default: current model) Returns: Created geometry info |
| geometry_add_featureB | Add a geometry feature to a geometry sequence. Common feature types:
Args: feature_type: Type of geometry feature (Block, Cylinder, etc.) geometry_name: Geometry sequence name (default: first geometry) feature_name: Name for the feature (auto-generated if None) model_name: Model name (default: current model) **kwargs: Feature-specific properties (position, size, etc.) Returns: Created feature info |
| geometry_add_blockB | Add a block (rectangular cuboid) to the geometry. Args: position: Base position [x, y, z] in meters (default: origin) size: Dimensions [width, depth, height] in meters (default: 1m cube) geometry_name: Geometry sequence name (default: first geometry) component_name: Component name (default: 'comp1') feature_name: Feature name (auto-generated if None) model_name: Model name (default: current model) Returns: Created block info |
| geometry_add_cylinderC | Add a cylinder to the geometry. Args: position: Center of base [x, y, z] in meters radius: Radius in meters (default: 0.5) height: Height in meters (default: 1.0) geometry_name: Geometry sequence name (default: first geometry) component_name: Component name (default: 'comp1') feature_name: Feature name (auto-generated if None) model_name: Model name (default: current model) Returns: Created cylinder info |
| geometry_add_sphereA | Add a sphere to the geometry. Args: position: Center [x, y, z] in meters radius: Radius in meters (default: 0.5) geometry_name: Geometry sequence name (default: first geometry) component_name: Component name (default: 'comp1') feature_name: Feature name (auto-generated if None) model_name: Model name (default: current model) Returns: Created sphere info |
| geometry_add_rectangleB | Add a rectangle to a 2D geometry or work plane. Args: position: Base position [x, y] in meters size: Dimensions [width, height] in meters geometry_name: Geometry sequence name (default: first geometry) component_name: Component name (default: 'comp1') feature_name: Feature name (auto-generated if None) model_name: Model name (default: current model) Returns: Created rectangle info |
| geometry_add_circleB | Add a circle to a 2D geometry or work plane. Args: position: Center [x, y] in meters radius: Radius in meters (default: 0.5) geometry_name: Geometry sequence name model_name: Model name (default: current model) Returns: Created circle info |
| geometry_boolean_unionB | Create a boolean union of geometry objects. Args: input_objects: Names of objects to unite geometry_name: Geometry sequence name model_name: Model name (default: current model) Returns: Created union operation info |
| geometry_boolean_differenceB | Create a boolean difference (subtract objects from another). Args: input_object: Object to subtract from (e.g., 'blk1') objects_to_subtract: Objects to remove (e.g., ['cyl1']) geometry_name: Geometry sequence name (default: first geometry) component_name: Component name (default: 'comp1') feature_name: Feature name (auto-generated if None) model_name: Model name (default: current model) Returns: Created difference operation info |
| geometry_importA | Import geometry from a CAD file. Supported formats: STEP, IGES, STL, NASTRAN, etc. Args: file_path: Path to the CAD file geometry_name: Geometry sequence name import_type: Import type (CAD, mesh, etc.) model_name: Model name (default: current model) Returns: Import operation info |
| geometry_buildA | Build the geometry sequence to generate the actual geometry. This must be called after adding/modifying geometry features. Args: geometry_name: Geometry sequence name (default: build all) component_name: Component name (default: 'comp1') model_name: Model name (default: current model) Returns: Build status |
| geometry_list_featuresB | List all features in a geometry sequence. Args: geometry_name: Geometry sequence name (default: first geometry) model_name: Model name (default: current model) Returns: List of geometry features with their types |
| physics_listA | List all physics interfaces defined in a model. Args: model_name: Model name (default: current model) Returns: List of physics interface names |
| physics_get_availableA | Get a list of available physics interfaces organized by category. Returns: Dictionary of physics categories and their interfaces |
| physics_addA | Add a physics interface to the model. Common physics types:
Args: physics_type: Type identifier (e.g., "Electrostatics", "es") component_name: Component to add physics to (default: first component) model_name: Model name (default: current model) Returns: Created physics interface info |
| physics_add_electrostaticsB | Add Electrostatics physics interface for electric field analysis. Args: domain_selection: Selection name for domains (default: all domains) model_name: Model name (default: current model) Returns: Created physics info |
| physics_add_solid_mechanicsB | Add Solid Mechanics physics for structural analysis. Args: domain_selection: Selection name for domains (default: all domains) model_name: Model name (default: current model) Returns: Created physics info |
| physics_add_heat_transferB | Add Heat Transfer physics for thermal analysis. Args: domain_selection: Selection name for domains (default: all domains) model_name: Model name (default: current model) Returns: Created physics info |
| physics_add_laminar_flowB | Add Laminar Flow physics for fluid dynamics. Args: domain_selection: Selection name for domains (default: all domains) model_name: Model name (default: current model) Returns: Created physics info |
| physics_configure_boundaryB | Configure a boundary condition for a physics interface. Common boundary conditions for Electrostatics:
Common for Solid Mechanics:
Common for Heat Transfer:
Args: physics_name: Name of the physics interface boundary_condition: Type of boundary condition boundary_selection: Boundary/edge numbers to apply condition to properties: Dictionary of property names and values model_name: Model name (default: current model) Returns: Created boundary condition info |
| physics_set_materialA | Assign a material to physics domains. Args: physics_name: Name of the physics interface material_name: Name of the material to assign domain_selection: Domain numbers (default: all domains for this physics) model_name: Model name (default: current model) Returns: Assignment confirmation |
| multiphysics_addA | Add a multiphysics coupling between physics interfaces. Common coupling types:
Args: coupling_type: Type of multiphysics coupling physics_list: Names of physics interfaces to couple model_name: Model name (default: current model) Returns: Created coupling info |
| physics_list_featuresC | List all features (boundary conditions, domain settings) in a physics interface. Args: physics_name: Name of the physics interface model_name: Model name (default: current model) Returns: List of physics features |
| physics_removeB | Remove a physics interface from the model. Args: physics_name: Name of the physics interface to remove model_name: Model name (default: current model) Returns: Removal confirmation |
| geometry_get_boundariesA | Get all boundaries from a geometry with their properties. Use this to identify which boundary numbers correspond to which faces before setting boundary conditions. Args: geometry_name: Geometry sequence name (default: first geometry) model_name: Model name (default: current model) Returns: List of boundaries with their numbers and areas |
| physics_interactive_setup_flowB | Interactive setup wizard for Laminar Flow boundary conditions. This tool helps identify and configure flow boundary conditions:
Args: physics_name: Name of the Laminar Flow physics interface model_name: Model name (default: current model) Returns: Boundary information and setup instructions |
| physics_setup_flow_boundariesA | Setup Laminar Flow boundary conditions with specified boundaries. This tool configures inlet velocity and outlet pressure boundary conditions for a fluid flow simulation. Args: physics_name: Name of the Laminar Flow physics interface inlet_boundaries: List of boundary numbers for inlets outlet_boundaries: List of boundary numbers for outlets inlet_velocity: Inlet velocity expression (default: "1[mm/s]") outlet_pressure: Outlet pressure expression (default: "0") model_name: Model name (default: current model) Returns: Configuration confirmation |
| physics_interactive_setup_heatC | Interactive setup wizard for Heat Transfer boundary conditions. This tool helps identify and configure thermal boundary conditions:
Args: physics_name: Name of the Heat Transfer physics interface model_name: Model name (default: current model) Returns: Boundary information and setup instructions |
| physics_setup_heat_boundariesB | Setup Heat Transfer boundary conditions with specified boundaries. This tool configures thermal boundary conditions for heat transfer simulation:
Args: physics_name: Name of the Heat Transfer physics interface heat_flux_boundaries: List of boundary numbers for heat flux temperature_boundaries: List of boundary numbers for fixed temperature convection_boundaries: List of boundary numbers for convection heat_flux_value: Heat flux value (default: "1e6[W/m^2]") temperature_value: Temperature value (default: "293.15[K]" = 20°C) convection_coeff: Convection coefficient (default: "10[W/(m^2*K)]") ambient_temp: Ambient temperature for convection (default: "293.15[K]") model_name: Model name (default: current model) Returns: Configuration confirmation |
| physics_boundary_selectionB | Generic boundary condition setup with boundary selection. Use this tool to configure any boundary condition by specifying:
Common boundary condition types by physics: Heat Transfer (ht):
Laminar Flow (spf):
Solid Mechanics (solid):
Args: physics_name: Name of the physics interface boundary_condition_type: Type of boundary condition boundary_numbers: List of boundary numbers properties: Dictionary of property names and values model_name: Model name (default: current model) Returns: Configuration confirmation |
| mesh_listA | List all mesh sequences in a model. Args: model_name: Model name (default: current model) Returns: List of mesh sequence names |
| mesh_createA | Run a mesh sequence to generate the mesh. This executes the meshing operations defined in the mesh sequence. Args: mesh_name: Mesh sequence name (default: run all mesh sequences) model_name: Model name (default: current model) Returns: Mesh generation status |
| mesh_infoA | Get information about a mesh. Args: mesh_name: Mesh sequence name (default: first mesh) model_name: Model name (default: current model) Returns: Mesh statistics including element counts |
| study_listA | List all studies in a model. Args: model_name: Model name (default: current model) Returns: List of study names with their types |
| study_solveA | Solve a study (synchronous by default). Args: study_name: Study to solve (None for all studies) model_name: Model name (default: current model) wait: If True, wait for completion; if False, return immediately timeout: Maximum wait time in seconds (only used if wait=True) Returns: Solution status, or error message |
| study_solve_asyncA | Start solving a study in the background (asynchronous). Use study_get_progress to monitor progress and study_cancel to stop. Args: study_name: Study to solve (None for all studies) model_name: Model name (default: current model) Returns: Confirmation that solving started, or error message |
| study_get_progressA | Get the progress of the current solving operation. Returns: Progress information including status, percentage, and elapsed time |
| study_cancelA | Cancel the current solving operation. Note: The solver may take a moment to respond to cancellation. Returns: Cancellation status |
| study_waitA | Wait for the current solving operation to complete. Args: timeout: Maximum time to wait in seconds (None for indefinite) Returns: Final progress status |
| solutions_listB | List all solutions in a model. Args: model_name: Model name (default: current model) Returns: List of solution configurations |
| datasets_listB | List all datasets in a model. Datasets represent solution data that can be evaluated or visualized. Args: model_name: Model name (default: current model) Returns: List of dataset names |
| results_evaluateC | Evaluate an expression on a solution dataset. Args: expression: Expression(s) to evaluate, e.g., "es.normE" or ["x", "y", "es.normE"] unit: Desired unit for result, e.g., "V/m", "pF" dataset: Dataset name (default: uses default dataset) inner: For time-dependent solutions: index, 'first', 'last', or list of indices outer: For parametric sweeps: index or list of indices model_name: Model name (default: current model) Returns: Evaluated values as lists, or error message |
| results_global_evaluateB | Evaluate a global expression (returns a single scalar value). Common global expressions include:
Args: expression: Global expression to evaluate unit: Desired unit for result dataset: Dataset name model_name: Model name (default: current model) Returns: Single numerical value |
| results_inner_valuesA | Get inner solution indices and values (time steps in time-dependent study). Args: dataset: Dataset name (default: default dataset) model_name: Model name (default: current model) Returns: Arrays of indices and corresponding values (e.g., time values) |
| results_outer_valuesC | Get outer solution indices and values (parameter values in parametric sweep). Args: dataset: Dataset name (default: default dataset) model_name: Model name (default: current model) Returns: Arrays of indices and corresponding parameter values |
| results_export_dataA | Export data from an export node. Args: node_name: Export node name (default: run all exports) file_path: Output file path (overrides node setting) model_name: Model name (default: current model) Returns: Export confirmation with file path |
| results_export_imageB | Export a plot as an image. Args: node_name: Plot export node name file_path: Output image path (e.g., "results.png", "field.png") model_name: Model name (default: current model) Returns: Export confirmation with file path |
| results_exports_listA | List all export nodes defined in a model. Args: model_name: Model name (default: current model) Returns: List of export node names |
| results_plots_listA | List all plot nodes defined in a model. Args: model_name: Model name (default: current model) Returns: List of plot node names |
| docs_getA | Get documentation on a specific topic. Available topics:
Args: topic: Documentation topic to retrieve Returns: Documentation content for the topic |
| docs_listB | List all available documentation topics. Returns: List of available documentation topics with descriptions |
| physics_get_guideA | Get a quick guide for a specific physics type. Available physics types:
Args: physics_type: Type of physics to get guide for Returns: Quick reference guide for the physics type |
| troubleshootB | Get troubleshooting suggestions for common issues. Common error types:
Args: error_type: Type of error encountered context: Additional context about the error Returns: Troubleshooting suggestions |
| modeling_best_practicesB | Get best practices for different modeling categories. Categories:
Args: category: Category to get best practices for Returns: Best practices for the specified category |
| pdf_searchA | Search COMSOL PDF documentation using semantic search. This searches through the indexed COMSOL documentation (60+ modules) to find relevant information about physics, modeling, and API usage. Args: query: Search query describing what you're looking for n_results: Number of results to return (default: 5, max: 20) module: Optional module filter (e.g., "CFD_Module", "Heat_Transfer_Module") Returns: Search results with relevant documentation snippets |
| pdf_search_statusA | Get the status of the PDF documentation search system. Returns: Status information including whether the knowledge base is built, number of indexed documents, and available modules. |
| pdf_list_modulesA | List all available COMSOL documentation modules. Returns: List of module names with file counts |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_session_info | Get current COMSOL session information as a resource. Returns formatted session status including connection state and loaded models. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Zhangyoupeng1996/Codex_MCP_Comsol'
If you have feedback or need assistance with the MCP directory API, please join our Discord server