COMSOL MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HF_ENDPOINT | No | HuggingFace endpoint URL, used for the offline embedding model and PDF search functionality. Can be used to specify a mirror (e.g., https://hf-mirror.com). | 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) products: List of COMSOL products to load, e.g., ["ACDC"], ["ACDC", "CADImport"] (default: all available products) 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') space_dimension: Space dimension - 0=0D, 1=1D, 2=2D, 3=3D, 20=2D axisymmetric, 30=3D axisymmetric (default: 3) 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 |
| geometry_create_box_selectionA | Create a named Box selection for geometry entities by position. For a 2D model, use entity_dimension=1 to select boundaries. For a 3D model, use entity_dimension=2 to select boundary faces. Args: selection_name: Stable selection tag x_min: Minimum x-coordinate expression x_max: Maximum x-coordinate expression y_min: Minimum y-coordinate expression y_max: Maximum y-coordinate expression z_min: Optional minimum z-coordinate expression z_max: Optional maximum z-coordinate expression entity_dimension: Entity dimension (default: 1) condition: Box condition, usually "intersects" or "inside" geometry_name: Geometry sequence tag (default: first geometry) component_name: Component name (default: "comp1") model_name: Model name (default: current model) Returns: Created named selection and matched entity numbers when available |
| geometry_create_side_selectionsB | Create named left, right, bottom, and top Box selections. This is intended for rectangular 2D domains such as waveguides and water-wave tanks. The resulting tags are _left, _right, _bottom, and _top. |
| 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_get_acoustic_boundary_conditionsA | Get common Pressure Acoustics boundary feature types and properties. Returns: Acoustic boundary condition reference |
| physics_get_pde_boundary_conditionsB | Get common PDE boundary feature types and properties. Returns: PDE boundary condition reference |
| 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_add_pressure_acousticsC | Add Pressure Acoustics physics for frequency-domain acoustic analysis. Args: domain_selection: Domain numbers (default: all domains) component_name: Component to add physics to (default: first component) geometry_name: Geometry sequence tag (default: first geometry) physics_tag: Physics interface tag (default: "acpr") model_name: Model name (default: current model) Returns: Created physics info |
| physics_add_acousticsA | Add a geometry-based Acoustics Module physics interface. Use the exact COMSOL physics type for the installed version. Confirmed COMSOL 6.3 examples include PressureAcoustics and ThermoacousticsSinglePhysics. This tool also supports other acoustic interface types without maintaining a hard-coded allowlist. Args: physics_type: Exact COMSOL acoustic physics type physics_tag: Physics interface tag (default: generated from type) domain_selection: Domain numbers (default: all domains) component_name: Component to add physics to (default: first component) geometry_name: Geometry sequence tag (default: first geometry) model_name: Model name (default: current model) Returns: Created physics info |
| physics_add_coefficient_form_pdeC | Add a Coefficient Form PDE interface. Common equation properties include c, a, f, da, ea, al, be, and ga. Values can be scalar, vector, or matrix expressions. Rejected properties are returned explicitly. |
| physics_add_general_form_pdeC | Add a General Form PDE interface. Common equation properties include Ga, f, da, and ea. Values can be scalar, vector, or matrix expressions. Rejected properties are returned explicitly. |
| physics_add_weak_form_pdeC | Add a Weak Form PDE interface. Set the weak expression with equation_properties={"weak": "..."}. Rejected properties are returned explicitly. |
| physics_configure_boundaryA | Configure a boundary condition for a physics interface. Common boundary conditions for Heat Transfer:
Common for Solid Mechanics:
Common for Electrostatics:
Args: physics_name: Name or label of the physics interface boundary_condition: Type of boundary condition (e.g. "Temperature", "HeatFlux") boundary_selection: Boundary/edge numbers to apply condition to properties: Dictionary of property names and values (e.g. {"T0": "293.15[K]"}) model_name: Model name (default: current model) Returns: Created boundary condition info |
| physics_configure_acoustic_boundaryC | Configure one Pressure Acoustics boundary condition. Common types are SoundHard, SoundSoft, Pressure, Impedance, NormalAcceleration, NormalVelocity, PlaneWaveRadiation, and SphericalWaveRadiation. Unknown types are passed through for other acoustic interfaces and versions. Property-setting errors are returned instead of being ignored. |
| physics_setup_acoustic_boundariesB | Configure multiple acoustic boundary conditions in one call. Each item accepts:
Example: [ {"type": "SoundHard", "boundaries": [1, 2]}, { "type": "Impedance", "boundaries": [3], "properties": {"Zn": "rho0*c0"} } ] |
| physics_configure_pde_boundaryA | Configure one Coefficient, General, or Weak Form PDE boundary condition. Common types are DirichletBoundary, FluxBoundary, ZeroFluxBoundary, WeakContribution, and PeriodicCondition. Unknown types are passed through for version-specific PDE features. Use selection_name to bind the condition to a named geometric selection instead of entity numbers. Property-setting errors are returned instead of being ignored. |
| physics_setup_pde_boundariesC | Configure multiple PDE boundary conditions in one call. Each item accepts:
|
| physics_set_materialB | Assign a material to physics domains. This tool tries to add the material from COMSOL's built-in library if it's not already in the model. Args: physics_name: Name of the physics interface material_name: Name of the material (e.g. "Silicon", "Steel AISI 4340", "Copper") 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) component_name: Component name (default: 'comp1') 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_boundariesA | 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 or label 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_listC | List mesh sequences by stable COMSOL Java tag. Args: component_name: Component name (default: all components) model_name: Model name (default: current model) Returns: Mesh sequence tags, components, and usable labels |
| mesh_create_sequenceC | Create a mesh sequence bound to a geometry. Args: mesh_name: Mesh sequence tag (default: "mesh1") geometry_name: Geometry sequence tag (default: first geometry) component_name: Component name (default: first component) model_name: Model name (default: current model) Returns: Created mesh sequence info |
| mesh_createB | Run one or all mesh sequences, creating a default sequence when needed. Args: mesh_name: Mesh sequence tag (default: all, or "mesh1" when created) geometry_name: Geometry tag used when creating a mesh sequence component_name: Component name (default: first component) auto_create: Create a missing mesh sequence (default: True) model_name: Model name (default: current model) Returns: Mesh generation status |
| mesh_infoA | Get mesh information using a stable Java tag. Args: mesh_name: Mesh sequence tag (default: first mesh) component_name: Component name (default: first component) model_name: Model name (default: current model) Returns: Mesh tag, component, geometry, and feature information |
| 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_createB | Create a new study in the model. Common study types:
Args: study_type: Type of study to create study_name: Optional name/tag for the study model_name: Model name (default: current model) Returns: Created study info |
| 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_guideB | 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. |
TDQS
Scored across 93 tools
The server has clear high-level groups, but many tools overlap heavily: generic physics_add coexists with specific adders for laminar flow, heat transfer, acoustics, etc., and generic boundary tools coexist with multiple specialized boundary setup tools. Descriptions help distinguish some cases, but an agent can still easily misselect between generic and specialized tools for the same task.
Most tools follow a predictable domain_action or domain_object_action pattern, such as model_save, geometry_add_block, physics_configure_boundary, and study_solve_async. A few names like troubleshoot and modeling_best_practices break the convention, but the overall pattern is readable and mostly consistent.
With 93 tools, this is far beyond a well-scoped MCP surface and includes many redundant generic/specialized wrappers. The count is extreme even for a complex domain, making the toolset unwieldy for an agent to navigate.
Coverage is broad: session management, model lifecycle, parameters, geometry, physics, multiphysics, mesh, studies, solutions, datasets, results, exports, docs, and troubleshooting are all represented. Minor gaps remain, such as richer mesh feature customization and results plot creation/management, but core workflows are covered.