loadbench-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., "@loadbench-mcpA 2 m pine shelf on two brackets 0.3 m from each end — will it hold 40 kg in the middle?"
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.
loadbench-mcp
An MCP server that does the structural load & stability math language models get wrong. AI assistants call it instead of guessing.
Tool | Question it answers |
| Will these weights topple over their footprint? |
| How much load does each leg / bracket carry? |
| Will this beam or shelf hold the load? (stress + deflection) |
All math is verified against hand-computed answers (tests/test_physics.py).
Install & run
Once published to PyPI, any MCP client can launch it with no install step:
uvx loadbench-mcpOr install it:
pip install loadbench-mcp
loadbench-mcpRelated MCP server: MCP Mathematics
Use it in Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"loadbench": {
"command": "uvx",
"args": ["loadbench-mcp"]
}
}
}Restart Claude Desktop, then ask things like "A 2 m pine shelf on two brackets 0.3 m from each end — will it hold 40 kg in the middle?"
Local development
uv run --with mcp --with numpy python -m load_solver.server # run from source
python -m pytest tests # verify the mathInputs are SI units (metres, kilograms, newtons; 1 kg ≈ 9.81 N). Tool docstrings carry the full argument details, which the model reads automatically.
Estimates for planning, not certified engineering. For loads where a failure could cause injury or real damage, have a qualified engineer check the result.
License
MIT
Available Tools
3 toolsbeam_checkA
Check whether a beam or shelf holds a load: bending stress and deflection.
Closed-form Euler–Bernoulli check. "point" puts the whole load at the centre (simply supported) or the free end (cantilever); "udl" spreads magnitude_n evenly along the span. Give the section either directly (section_modulus_m3 and inertia_m4) OR as a solid rectangle (width_m and height_m).
Args: span_m: clear span / length, metres. support_type: "simply_supported" (held both ends) or "cantilever" (one end). load_type: "point" or "udl" (uniformly distributed). magnitude_n: total load in newtons (1 kg ≈ 9.81 N). e_pa: Young's modulus of the material, pascals (steel ≈ 2.0e11, pine ≈ 9e9). allowable_stress_pa: allowable bending stress of the material, pascals. section_modulus_m3: Z, if known. Else give width_m and height_m. inertia_m4: I, if known. Else give width_m and height_m. width_m, height_m: for a solid rectangle, used to compute Z and I. deflection_limit_ratio: optional, e.g. 250 means limit deflection to span/250.
Returns: max_moment_nm, max_stress_pa, max_deflection_m, stress utilisation, pass/fail, governing check, and a short explanation.
| Name | Required | Description | Default |
|---|---|---|---|
| e_pa | Yes | ||
| span_m | Yes | ||
| width_m | No | ||
| height_m | No | ||
| load_type | Yes | ||
| inertia_m4 | No | ||
| magnitude_n | Yes | ||
| support_type | Yes | ||
| section_modulus_m3 | No | ||
| allowable_stress_pa | Yes | ||
| deflection_limit_ratio | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the closed-form method, input combinations, and output fields. It does not mention potential errors, performance, or limitations, but the output list is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a brief summary, then clear sections for input details and output. Every sentence adds value with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 11 parameters (6 required), no output schema, and the domain complexity, the description fully covers inputs, outputs, and usage constraints. It leaves no ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description compensates fully. It explains all 11 parameters, including optional ones and their relationships (e.g., 'Give the section either directly OR as a solid rectangle'). Provides example values for common materials.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool checks 'whether a beam or shelf holds a load: bending stress and deflection.' It specifies 'closed-form Euler–Bernoulli check' and distinguishes from siblings by focusing on beam bending, not tipping or support reactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use 'point' vs 'udl' load types and how to specify the section either directly or as a solid rectangle. It does not explicitly exclude cases or compare to sibling tools, but provides clear context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_tippingA
Check whether a collection of weights will tip over its support footprint.
Computes the centre of mass and tests whether its vertical projection falls inside the support base (the polygon where the object touches the ground). If it falls outside, the object tips. Use this for shelving, stacked loads, machinery on legs, vehicles, or anything that could topple.
Args: masses: list of point masses, each {"x": metres, "y": metres, "mass": kg}. x/y are top-down (plan-view) positions. Height does not affect whether it tips on level ground, only the horizontal centre of mass does. base_polygon: the support footprint as ordered vertices [{"x", "y"}, ...] in metres (e.g. the four feet of a shelf, or the contact outline).
Returns: center_of_mass, is_stable (bool), tipping_margin_m (positive = inside the base with this much clearance; negative = already outside / tipping), tipping_direction (unit vector toward the closest base edge), and a short human-readable explanation.
| Name | Required | Description | Default |
|---|---|---|---|
| masses | Yes | ||
| base_polygon | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explains the computation and assumptions (level ground, height irrelevant), but could better disclose limitations (e.g., rigid bodies, no friction/dynamics).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with a short intro, Args, and Returns. Every sentence adds value and is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema or annotations, the description explains the return fields in detail, provides parameter documentation, and lists use cases. Complete for a physics check tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description provides detailed Arg docstrings for both parameters, specifying units and structure, thus compensating fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks whether weights tip over a support footprint, with a clear physics explanation and use cases. However, it does not explicitly distinguish from sibling tools like beam_check or solve_supports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides specific use cases ('shelving, stacked loads, machinery...') and explains when to use it, but does not explicitly state when not to use or compare to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solve_supportsA
Compute how much vertical force each support (leg, bracket, foot) carries.
Models a rigid object resting on point supports of equal stiffness and solves static equilibrium so the reactions balance every applied load in force and moment. Handles any number of supports. Flags supports that exceed their rated capacity, and supports with a negative reaction (the object is lifting off / would tip rather than rest evenly).
Args: supports: [{"id": str, "x": m, "y": m, "capacity_n": N (optional)}]. loads: downward point loads [{"x": m, "y": m, "magnitude_n": N}]. self_weight_n: optional self-weight of the object (N), applied at the centroid of the supports.
Returns: per-support reaction forces, over-capacity / lift-off flags, total load, max utilisation, any warnings, and a short explanation.
| Name | Required | Description | Default |
|---|---|---|---|
| loads | Yes | ||
| supports | Yes | ||
| self_weight_n | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavioral traits: equal stiffness model, handling any number of supports, flagging over-capacity and lift-off. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with summary, model details, and clear Args/Returns sections. Every sentence is informative and necessary without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately covers return values (reactions, flags, warnings, explanation). It explains assumptions and scope, providing a complete picture for agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema coverage, the description provides detailed arg format and semantics (arrays of objects with specific fields like id, x, y, capacity_n, magnitude_n), adding essential meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it computes vertical force on supports for a rigid object, which is a specific verb+resource pair. It distinguishes from sibling tools like 'check_tipping' by focusing on support reaction forces rather than tipping stability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the modeling scenario (rigid object on point supports of equal stiffness, solving static equilibrium) and lists capabilities. It does not explicitly contrast with alternatives but provides enough context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.1.0- First observed
beam_check - First observed
check_tipping - First observed
solve_supports
TDQS
Scored across 3 tools
Each tool targets a distinct structural analysis task: beam bending, tipping stability, and support reactions. There is no overlap in functionality, and the descriptions clearly differentiate them.
Two tools follow a verb_noun pattern (check_tipping, solve_supports) while one is noun_verb (beam_check). The naming is clear and readable, but the slight inconsistency prevents a perfect score.
Three tools provide a focused set for basic structural analysis, covering beam checks, tipping, and support reactions. The count is appropriate for the domain without being too sparse or overwhelming.
The tools cover core structural analysis needs for simple loads and supports. Missing features like shear checks or multiple load combinations are minor gaps, but the set is functional for its stated purpose.
Maintenance
Related MCP Connectors
MCP server for generating rough-draft project plans from natural-language prompts.
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
Educational MCP server with 17 math/stats tools, visualizations, and persistent workspace
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceMCP server that exposes CAD geometry reasoning over STEP files to LLMs, allowing natural language queries about parts, assemblies, dimensions, holes, and mass properties.-
- AlicenseCqualityCmaintenanceA comprehensive MCP server that turns any AI assistant into a powerful mathematical computation engine, providing 52 advanced functions, 158 unit conversions, financial calculations, and secure AST-based evaluation.1814MIT
- AlicenseAqualityBmaintenanceAn MCP server that gives an AI assistant a set of real mechanical-engineering tools. Provides deterministic tools like material properties, beam analysis, unit conversion, and curve fitting for engineering calculations.5MIT
- FlicenseNot gradedqualityCmaintenanceAn MCP server for construction tools that calculates wall formwork material takeoffs from geometry inputs, enabling LLMs to generate accurate bills of materials.-