Skip to main content
Glama
jeongho54

loadbench-mcp

by jeongho54

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

check_tipping

Will these weights topple over their footprint?

solve_supports

How much load does each leg / bracket carry?

beam_check

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-mcp

Or install it:

pip install loadbench-mcp
loadbench-mcp

Related 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 math

Inputs 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 tools
beam_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
e_paYes
span_mYes
width_mNo
height_mNo
load_typeYes
inertia_m4No
magnitude_nYes
support_typeYes
section_modulus_m3No
allowable_stress_paYes
deflection_limit_ratioNo

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
massesYes
base_polygonYes

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose4/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
loadsYes
supportsYes
self_weight_nNo

TDQS

A4.8/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 3 tool updatesv0.1.0
    • First observedbeam_check
    • First observedcheck_tipping
    • First observedsolve_supports

TDQS

A4.4/5.0

Scored across 3 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that exposes CAD geometry reasoning over STEP files to LLMs, allowing natural language queries about parts, assemblies, dimensions, holes, and mass properties.
    -
  • A
    license
    C
    quality
    C
    maintenance
    A 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.
    18
    14
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    An 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.
    5
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    An MCP server for construction tools that calculates wall formwork material takeoffs from geometry inputs, enabling LLMs to generate accurate bills of materials.
    -