Skip to main content
Glama

Mechanism Kinematics

mechanism_kinematics
Read-only

Solve planar mechanism kinematics exactly with closed-form equations: four-bar, slider-crank, Gruebler. Returns mobility, Grashof type, coupler path, stroke for design validation before simulation.

Instructions

Closed-form planar mechanism kinematics — exact, NO external solver (the static pre-check / gate for mechanism_simulate_submit). Pick mechanism:

  • 'fourbar': link lengths crank/coupler/rocker/ground -> {mobility_dof (=1), grashof: {condition, type, input_crank_fully_rotates, shortest}, reachable, n_reached, coupler_path [[x,y]...], reachable_bbox_mm}. config 'open'|'crossed'.

  • 'slider_crank': crank_mm/conrod_mm (+ wrist_offset_mm) -> {stroke_mm (exactly 2·R in-line, independent of conrod), x_tdc_mm, x_bdc_mm, inline_stroke_exact}.

  • 'gruebler': n_links (incl. ground) + joints ([{type}...]) -> {mobility_dof}.

Returns the per-mechanism dict above. Raises on an unknown mechanism or a link set that cannot close.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
crankNo
configNoopen
groundNo
jointsNo
planarNo
rockerNo
couplerNo
n_linksNo
n_stepsNo
crank_mmNo
conrod_mmNo
mechanismNofourbar
wrist_offset_mmNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true and openWorldHint=false, the safety profile is already annotated. The description adds meaningful behavioral context: exact closed-form calculations, no external solver, static gating role, and exception behavior for unknown mechanisms or impossible link sets. These go beyond the annotations and help set expectations.

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 front-loaded with the key distinction and then organized into compact mechanism-specific bullets. Every sentence adds necessary mapping or output information, and the structured format makes it easy for an agent to quickly extract the relevant input/output contract.

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?

Since there is no output schema, the description does well by detailing return dicts for all three mechanisms plus failure behavior and its relationship to mechanism_simulate_submit. Minor gaps remain around n_steps semantics and the allowed values for joint types, but the core invocation contract is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden of explaining parameters. It explicitly maps crank/coupler/rocker/ground and config to fourbar, crank_mm/conrod_mm/wrist_offset_mm to slider_crank, and n_links/joints to gruebler. However, it does not explain the planar or n_steps parameters, and joint type values are left underspecified.

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 the tool computes closed-form planar mechanism kinematics and explicitly identifies itself as the static pre-check/gate for mechanism_simulate_submit. It distinguishes the three supported mechanism variants and specifies exactly what each returns, leaving no ambiguity about the tool's purpose.

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 places the tool as the exact, solver-free static pre-check before mechanism_simulate_submit, which gives clear when-to-use context relative to its main sibling. It does not explicitly enumerate exclusion criteria or detail when to prefer each mechanism variant, but the mechanism breakdown implies the selection logic.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools