Skip to content

ThrustLab

by thrustlab.com · remote · no sign-in to list tools · v1.0.0 · published by com.thrustlab

Simulate electric UAV powertrains and search a public motor, propeller and battery database.

Changes · 3

7 tools: 3 change things and 4 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http thrustlab https://thrustlab.com/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

7 tools

Changes things 3Claude Code: ask
  • estimate_propellerThrust, torque and shaft power for one propeller, from its printed size.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Thrust, torque and shaft power for one propeller, from its printed size. A closed-form momentum plus blade-element equation — no motor, no battery, no account. Give the size as it is printed: a 10x5 is `diameter_in=10`, `pitch_in=5`. `chord_ratio` is the chord at 75 % radius over the diameter: 0.065 thin electric, 0.07 sport, 0.10 slow flyer, 0.11 multirotor.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • simulate_powertrainSolve one operating point of a whole powertrain on the Fast model.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Solve one operating point of a whole powertrain on the Fast model. Battery, ESC, motor and propeller are solved together, so the answer is a real thrust and current, not a propeller curve. The numbers come back in `result` (`result.All` = system totals in SI units: thrust N, current A, power W, time s; one entry per rotor; `result.Battery`), with a share URL. No second call is needed to read them.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
  • sweep_powertrainSolve a powertrain across a throttle or airspeed range, up to 25 points.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Solve a powertrain across a throttle or airspeed range, up to 25 points. `sweep.steps` is the NUMBER OF POINTS, not a step size: start 40, stop 100, steps 4 gives 40, 60, 80 and 100. One sweep beats a loop of single points. The points come back in `result.points` with the share URL; no second call is needed to read them.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
    • readOnlyHint: false
Only reads 4Claude Code: allow
  • get_componentRead one database row by its id (`comp_…`), with provenance.No findings

    Why it is in this group

    • The name "get_component" says "get": a word for reading.
    Description, as the server wrote it
    Read one database row by its id (`comp_…`), with provenance. Propeller rows give diameter, pitch, blade count, weight and maximum rpm. Blade station geometry is never returned.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • get_resultRead a stored result: a share `token` from a run, or a `simulation_id`.No findings

    Why it is in this group

    • The name "get_result" says "get": a word for reading.
    Description, as the server wrote it
    Read a stored result: a share `token` from a run, or a `simulation_id`. `simulation_id` needs a ThrustLab API key in `Authorization: Bearer` and reads only that account's own runs.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • get_validation_summaryHow accurate a model is, measured against wind-tunnel and bench data.No findings

    Why it is in this group

    • The name "get_validation_summary" says "get": a word for reading.
    Description, as the server wrote it
    How accurate a model is, measured against wind-tunnel and bench data. `model` is "fast", "full", or an exact report slug such as "prom-5.3". The numbers are error against measured data by partition and channel, with the envelope they were measured inside. Quote the model name with the number.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true
  • search_componentsFind motors, propellers or batteries in the ThrustLab database.No findings

    Why it is in this group

    • The name "search_components" says "search": a word for reading.
    Description, as the server wrote it
    Find motors, propellers or batteries in the ThrustLab database. `component_type` is "motor", "propeller" or "battery". `query` is a case-insensitive substring of the part name or its maker ("APC", "T-Motor", "13x6.5"). The maker sits under `spec.brand` for motors and batteries and under `spec.type` for propellers. `limit` is capped at 200 rows a page; when `has_more` is true, pass the returned `next_offset` as `offset` to read the next page. Each row carries its datasheet values, its source and the CC BY 4.0 attribution line. Pass a returned `id` to `simulate_powertrain`.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
    • readOnlyHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http thrustlab https://thrustlab.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__thrustlab__search_components",
      "mcp__thrustlab__get_component",
      "mcp__thrustlab__get_result",
      "mcp__thrustlab__get_validation_summary"
    ],
    "ask": [
      "mcp__thrustlab__estimate_propeller",
      "mcp__thrustlab__simulate_powertrain",
      "mcp__thrustlab__sweep_powertrain"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as thrustlab. Review it before you use it.