MCP tools

The MCP server gives an agent 13 tools, and every one returns compact JSON with numbers, statuses, one line summaries and file paths.

Agents start the server with wobbl mcp, which wobbl setup registers for them. Results stay small enough to read in one go, and when an agent needs to see the part it opens the PNG heatmaps or the HTML report from the paths it gets back. Studies run from the tools write their folders to ~/.wobbl/results/. When something goes wrong a tool returns an error, often with a hint that says what to change, instead of failing the call.

The tools

Tool Parameters Returns
inspect_geometry path, scale bounding box, volume, wall thickness, holes, fillets, sharp inside corners, up to 40 of the largest faces with ids, notes and example selectors that work on this part
mesh path, size node and element counts, the element size and the mesh time, to check that a file meshes at all
new_study path, material, question a study_id for building a study one step at a time
set_material study_id, material the material’s properties as Wobbl will use them
apply_load study_id, load how the load was read and every load so far
add_fixture study_id, fixture how the support was read and every support so far
solve_structural study_id, or path with material, loads and fixtures, plus target_sf, quality, budget, question and print_direction the verified strength result
verify result_dir the confidence and its reasons, every check, the assumptions and the peaks that were excluded
render result_dir the paths of the heatmaps and the report
suggest_fix result_dir, apply, which the fixes with numbers, or for a strength result with apply=true the before and after of each one, while heat and circuit fixes come back with a note to solve again with the new value
solve_thermal path, material, power, heat_faces, film, ambient, fixed_temp, duration, limit, radiation the steady or transient heat result
solve_circuit template or netlist, and params the circuit result
solve_motion spec, or diameter with mass or density, plus cd, height, speed, angle, wind, name and question the flight with its events, checks, fixes and trajectory
list_materials none every material with its stiffness, limit, criterion, density, conductivity and service temperature

Loads, supports, films and selectors use exactly the syntax of the command line, so the inputs guides apply word for word.

solve_structural

This is the tool agents use most. The quickest way to call it is with everything at once.

Tool call
solve_structural(path="bracket.py", material="pla",                 fixtures=["bolt holes d=4.5", "wall x=min"],                 loads=["40 N down @ top and within 12 of 65,12.5,6"])

It can also take a study_id built with new_study, set_material, apply_load and add_fixture, which saves each step under ~/.wobbl/studies/ so an agent can build a study over several turns. When the material, the loads or the supports are missing, Wobbl reads them from question the same way it reads a plain question on the command line and lists each guess in the assumptions.

The result holds verdict, headline, governing_stress_MPa, where, location_mm, measure, safety_factor, target_safety_factor, max_deflection_mm, confidence, confidence_reasons, checks, assumptions, fixes, images, report, result_dir, mesh_levels and time_s. The result_dir is what verify, render and suggest_fix take.

solve_thermal and solve_circuit

solve_thermal takes one film and one fixed_temp as text, like "5 W/m2K @ all" and "40 C @ bottom", and a duration makes it transient. It returns the verdict, the headline, max_temperature_C, hottest_point_mm, limit_C, time_over_limit_s for a transient that crosses its limit, and the usual confidence, checks, assumptions, fixes, images and report.

solve_circuit takes a template name, led, rc, buck or mosfet, with its parameters in params, as in params={"supply": "5V", "resistor": "47", "led": "blue"}. For your own circuit, pass the netlist as a file path or as the text itself, and list the signals to read in params.vectors. It returns the verdict, the headline, the main figures in metrics, the raw values and the usual checks and files.

solve_motion

solve_motion flies a round body from its quantities, as in solve_motion(name="rock", diameter="9 cm", density="2700 kg/m3", cd=0.6, height="300 m"), or a rocket from spec, a TOML file path or the TOML text itself, with the tables that Motion describes. With a spec only wind can change, since it is the one thing that differs from day to day. It returns the verdict, the headline, the main figures in metrics, the raw values, the events from liftoff or release to the ground, the usual confidence, checks, assumptions, fixes, images and report, and the path of trajectory.csv.

The server’s own instructions

The server tells every agent the same flow when it connects. Inspect the part first, solve with explicit loads and supports, read confidence, confidence_reasons and checks before quoting any number, never quote a low confidence result as final or a peak listed as an excluded artifact, open the stress image to see where the peak is, and call suggest_fix with apply=true when the verdict is fails or marginal. The skill teaches the same thing in more depth.