{"id":561495,"recorded_at":"2026-10-27T21:39:15.788585Z","observed_at":"2026-10-27T21:39:15.788495Z","subject_kind":"endpoint","subject":"a98a51fd-2d72-47a3-b3a3-17fea547f3fb","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":7,"tools":[{"description":"Thrust, torque and shaft power for one propeller, from its printed size.\n\n    A closed-form momentum plus blade-element equation — no motor, no battery,\n    no account. Give the size as it is printed: a 10x5 is `diameter_in=10`,\n    `pitch_in=5`. `chord_ratio` is the chord at 75 % radius over the diameter:\n    0.065 thin electric, 0.07 sport, 0.10 slow flyer, 0.11 multirotor.\n    ","inputSchema":{"properties":{"airspeed_m_s":{"default":0.0,"title":"Airspeed M S","type":"number"},"altitude_m":{"default":0.0,"title":"Altitude M","type":"number"},"blades":{"default":2,"title":"Blades","type":"integer"},"camber_pct":{"default":3.2,"title":"Camber Pct","type":"number"},"chord_ratio":{"default":0.065,"title":"Chord Ratio","type":"number"},"diameter_in":{"title":"Diameter In","type":"number"},"pitch_in":{"title":"Pitch In","type":"number"},"rpm":{"title":"Rpm","type":"number"}},"required":["diameter_in","pitch_in","rpm"],"title":"estimate_propellerArguments","type":"object"},"name":"estimate_propeller"},{"description":"Read one database row by its id (`comp_…`), with provenance.\n\n    Propeller rows give diameter, pitch, blade count, weight and maximum rpm.\n    Blade station geometry is never returned.\n    ","inputSchema":{"properties":{"component_id":{"title":"Component Id","type":"string"}},"required":["component_id"],"title":"get_componentArguments","type":"object"},"name":"get_component"},{"description":"Read a stored result: a share `token` from a run, or a `simulation_id`.\n\n    `simulation_id` needs a ThrustLab API key in `Authorization: Bearer` and\n    reads only that account's own runs.\n    ","inputSchema":{"properties":{"simulation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Simulation Id"},"token":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Token"}},"title":"get_resultArguments","type":"object"},"name":"get_result"},{"description":"How accurate a model is, measured against wind-tunnel and bench data.\n\n    `model` is \"fast\", \"full\", or an exact report slug such as \"prom-5.3\". The\n    numbers are error against measured data by partition and channel, with the\n    envelope they were measured inside. Quote the model name with the number.\n    ","inputSchema":{"properties":{"model":{"default":"full","title":"Model","type":"string"}},"title":"get_validation_summaryArguments","type":"object"},"name":"get_validation_summary"},{"description":"Find motors, propellers or batteries in the ThrustLab database.\n\n`component_type` is \"motor\", \"propeller\" or \"battery\". `query` is a\ncase-insensitive substring of the part name or its maker (\"APC\", \"T-Motor\",\n\"13x6.5\"). The maker sits under `spec.brand` for motors and batteries and under\n`spec.type` for propellers. `limit` is capped at 200 rows a\npage; when `has_more` is true, pass the returned `next_offset` as `offset` to\nread the next page. Each row carries its datasheet values, its source and the\nCC BY 4.0 attribution line. Pass a returned `id` to\n`simulate_powertrain`.\n","inputSchema":{"properties":{"component_type":{"title":"Component Type","type":"string"},"limit":{"default":25,"title":"Limit","type":"integer"},"offset":{"default":0,"title":"Offset","type":"integer"},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Query"},"sort_by":{"default":"name","title":"Sort By","type":"string"},"sort_order":{"default":"asc","title":"Sort Order","type":"string"}},"required":["component_type"],"title":"search_componentsArguments","type":"object"},"name":"search_components"},{"description":"Solve one operating point of a whole powertrain on the Fast model.\n\n    Battery, ESC, motor and propeller are solved together, so the answer is a\n    real thrust and current, not a propeller curve. The numbers come back in\n    `result` (`result.All` = system totals in SI units: thrust N, current A,\n    power W, time s; one entry per rotor; `result.Battery`), with a share URL.\n    No second call is needed to read them.\n    ","inputSchema":{"$defs":{"PowertrainInput":{"description":"One powertrain, as the anonymous endpoint accepts it (spec D4).\n\nCatalog components are referenced by their public id (``comp_…``, from\n``search_components``). The propeller may instead be given as a label, which\nis all the Fast model needs.","properties":{"airspeed_m_s":{"default":0.0,"description":"0 is a static run.","maximum":300,"minimum":0,"title":"Airspeed M S","type":"number"},"altitude_m":{"default":0.0,"maximum":11000,"minimum":0,"title":"Altitude M","type":"number"},"battery_id":{"description":"Catalog battery public id.","title":"Battery Id","type":"string"},"motor_id":{"description":"Catalog motor public id, e.g. comp_2xK….","title":"Motor Id","type":"string"},"propeller_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Catalog propeller public id.","title":"Propeller Id"},"propeller_label":{"anyOf":[{"$ref":"#/$defs/PropellerLabel"},{"type":"null"}],"default":null,"description":"Use instead of propeller_id to run from the printed size."},"rotor_count":{"default":1,"description":"Rotors on the craft.","maximum":16,"minimum":1,"title":"Rotor Count","type":"integer"},"throttle_pct":{"default":100.0,"exclusiveMinimum":0,"maximum":100,"title":"Throttle Pct","type":"number"}},"required":["motor_id","battery_id"],"title":"PowertrainInput","type":"object"},"PropellerLabel":{"description":"What is printed on the propeller — all the Fast model reads.\n\nInches and a spoken family name, because that is how a propeller is sold and\nhow a user will say it. :func:`to_schema_label` turns this into the metres\nand the enum ``app.schemas.simulation.PropellerLabel`` declares.","properties":{"camber_pct":{"anyOf":[{"maximum":8,"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Section camber in percent. Defaults to 3.2.","title":"Camber Pct"},"chord_ratio":{"anyOf":[{"exclusiveMinimum":0,"maximum":0.5,"type":"number"},{"type":"null"}],"default":null,"description":"Chord at 75 % radius over diameter. Give it instead of 'family' (or with family='custom'); the two cannot both be set.","title":"Chord Ratio"},"diameter_in":{"description":"Diameter in inches, e.g. 10 for a 10x5.","exclusiveMinimum":0,"maximum":400,"title":"Diameter In","type":"number"},"family":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Chord-ratio preset: 'thin electric' (0.065 D), 'sport' (0.07 D), 'slow flyer' (0.10 D) or 'multirotor' (0.11 D). Defaults to sport.","title":"Family"},"num_blades":{"default":2,"description":"Blade count.","maximum":8,"minimum":2,"title":"Num Blades","type":"integer"},"pitch_in":{"description":"Pitch in inches, e.g. 5 for a 10x5.","exclusiveMinimum":0,"maximum":400,"title":"Pitch In","type":"number"}},"required":["diameter_in","pitch_in"],"title":"PropellerLabel","type":"object"}},"properties":{"powertrain":{"$ref":"#/$defs/PowertrainInput"}},"required":["powertrain"],"title":"simulate_powertrainArguments","type":"object"},"name":"simulate_powertrain"},{"description":"Solve a powertrain across a throttle or airspeed range, up to 25 points.\n\n    `sweep.steps` is the NUMBER OF POINTS, not a step size: start 40, stop 100,\n    steps 4 gives 40, 60, 80 and 100. One sweep beats a loop of single points.\n    The points come back in `result.points` with the share URL; no second call\n    is needed to read them.\n    ","inputSchema":{"$defs":{"PowertrainInput":{"description":"One powertrain, as the anonymous endpoint accepts it (spec D4).\n\nCatalog components are referenced by their public id (``comp_…``, from\n``search_components``). The propeller may instead be given as a label, which\nis all the Fast model needs.","properties":{"airspeed_m_s":{"default":0.0,"description":"0 is a static run.","maximum":300,"minimum":0,"title":"Airspeed M S","type":"number"},"altitude_m":{"default":0.0,"maximum":11000,"minimum":0,"title":"Altitude M","type":"number"},"battery_id":{"description":"Catalog battery public id.","title":"Battery Id","type":"string"},"motor_id":{"description":"Catalog motor public id, e.g. comp_2xK….","title":"Motor Id","type":"string"},"propeller_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Catalog propeller public id.","title":"Propeller Id"},"propeller_label":{"anyOf":[{"$ref":"#/$defs/PropellerLabel"},{"type":"null"}],"default":null,"description":"Use instead of propeller_id to run from the printed size."},"rotor_count":{"default":1,"description":"Rotors on the craft.","maximum":16,"minimum":1,"title":"Rotor Count","type":"integer"},"throttle_pct":{"default":100.0,"exclusiveMinimum":0,"maximum":100,"title":"Throttle Pct","type":"number"}},"required":["motor_id","battery_id"],"title":"PowertrainInput","type":"object"},"PropellerLabel":{"description":"What is printed on the propeller — all the Fast model reads.\n\nInches and a spoken family name, because that is how a propeller is sold and\nhow a user will say it. :func:`to_schema_label` turns this into the metres\nand the enum ``app.schemas.simulation.PropellerLabel`` declares.","properties":{"camber_pct":{"anyOf":[{"maximum":8,"minimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Section camber in percent. Defaults to 3.2.","title":"Camber Pct"},"chord_ratio":{"anyOf":[{"exclusiveMinimum":0,"maximum":0.5,"type":"number"},{"type":"null"}],"default":null,"description":"Chord at 75 % radius over diameter. Give it instead of 'family' (or with family='custom'); the two cannot both be set.","title":"Chord Ratio"},"diameter_in":{"description":"Diameter in inches, e.g. 10 for a 10x5.","exclusiveMinimum":0,"maximum":400,"title":"Diameter In","type":"number"},"family":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Chord-ratio preset: 'thin electric' (0.065 D), 'sport' (0.07 D), 'slow flyer' (0.10 D) or 'multirotor' (0.11 D). Defaults to sport.","title":"Family"},"num_blades":{"default":2,"description":"Blade count.","maximum":8,"minimum":2,"title":"Num Blades","type":"integer"},"pitch_in":{"description":"Pitch in inches, e.g. 5 for a 10x5.","exclusiveMinimum":0,"maximum":400,"title":"Pitch In","type":"number"}},"required":["diameter_in","pitch_in"],"title":"PropellerLabel","type":"object"},"SweepAxis":{"description":"A 1-D sweep axis. ``steps`` is the NUMBER OF POINTS, not a step size.","properties":{"parameter":{"description":"'throttle_pct' or 'airspeed_m_s'.","title":"Parameter","type":"string"},"start":{"title":"Start","type":"number"},"steps":{"description":"Point count, at most 25 anonymous.","maximum":25,"minimum":2,"title":"Steps","type":"integer"},"stop":{"title":"Stop","type":"number"}},"required":["parameter","start","stop","steps"],"title":"SweepAxis","type":"object"}},"properties":{"powertrain":{"$ref":"#/$defs/PowertrainInput"},"sweep":{"$ref":"#/$defs/SweepAxis"}},"required":["powertrain","sweep"],"title":"sweep_powertrainArguments","type":"object"},"name":"sweep_powertrain"}]},"body_sha256":"62c11f0743905e7be6f66f2b4f2a0d0a3612db6b84bffffdca2517a5c6616ffe","prev_id":null,"leaf":"0xe96316202560415b767b45013127ce40b31bd4d24ba3cce4e09f9ce389ced3ea","leaf_text":"{\"body\":\"62c11f0743905e7be6f66f2b4f2a0d0a3612db6b84bffffdca2517a5c6616ffe\",\"id\":561495,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793137155788495,\"prev\":null,\"subject\":\"a98a51fd-2d72-47a3-b3a3-17fea547f3fb\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-10-27","leaves":273461,"root":"0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795","chained":"0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4","anchor_chain":"eip155:5042002","anchor_tx":"0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4","anchor_block":69414147},"proof":["0xe96308fe8d206c43e93502530654854dabf12a979a6d41ed1526e6ac0feccbb9","0x9c8aac2cd7cfb23319804e31e267270127d34f877cff15c8562d6718858243a7","0xc3816192353e7a2999565a497eccebb9bb704e7e264bb8a3ea419c0058cc2ebc","0xadf2110d4f85fc58c648348dfa00495879ae96760fef2c8190bb70675083c6f9","0xfcd7de753bda6eabb8021841620679d46031b629771e83afbdce092f2d31ab95","0x9e374a536213e82d1deb69a6239dc71f3079518fa28c08a1ca860a70438d20ed","0x9315b006791db30195dd80c63e95b27439e73e8040472e37fb44973542bfb971","0x0f918c2e5170ca622f7776427c034d9d7f774ae42ed25f824adc77b442356788","0xf8a87f7879fcd72045961881d5a02c4be75f4ea4eb1d8c262575084a37a5b4ec","0x2c8d0460a0b46eeed71f98874e5e7ae9376b1188e21b9ddd589f50f3dc369234","0x6a1ca1d26d7fbc3e226dc64da92fdc4ab49e077ac1ba6b010fb0df91826f652f","0x555cdc5682ffc7c8210a3ce0f57c03bc80456dce0d2723d1de26e7d1e57b0f94","0xab6eb305329046d5ccb835dd8ca955f794e3ca110379a94dbdc780d016448561","0x41f9f462759cb539183e979fb3eb967d94755cf039c44a64a9a3c4ad97523cfd","0x56f7109d4cde42492651beb1237c13cdcbf95e6fee2b2482391a2388e04c4629","0x8745bd887f5ce9f7a49558fd2b04cdcd97a05ea9f8a23f62d0e80cb13d328b0f","0xdf1105afdc109de3c09a98fc8a3864159ad964e6f49b635c105a27a1e1f14310","0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197","0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699"]}