mcpField
D

Dive Kit

Remote

About Dive Kit

Experimental. Plan scuba decompression dives, gas blends, and gas use with Dive Kit. Reference only

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://mcp.divekit.app/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Tools

18
ParameterTypeRequiredDescription
ccrobjectNoThe rebreather (mode ccr only).
ccr.o2_sizenumberNoOxygen cylinder: litres (metric) or ft³ rated at 3000 psi (imperial). Default 3 L.
ccr.setpointsobjectNoLoop setpoints in bar.
ccr.setpoints.deconumberNoDeco setpoint in bar, used where ccr_deco_schedule has no step. Default 1.4.
ccr.setpoints.bottomnumberNoBottom setpoint in bar, the level default. Default 1.0.
ccr.setpoints.descentnumberNoDescent setpoint in bar. Default 0.7.
ccr.loop_volumenumberNoLoop volume, litres in both unit systems, 2 to 15. Default 6.
ccr.diluent_sizenumberNoDiluent cylinder: litres (metric) or ft³ rated at 3000 psi (imperial). Default 3 L.
ccr.o2_start_pressurenumberNoOxygen cylinder fill (bar or psi). Default 232 bar (3365 psi).
ccr.diluent_helium_pctnumberNoOnboard diluent helium percent. Default 0.
ccr.diluent_oxygen_pctnumberNoOnboard diluent oxygen percent. Default 21.
ccr.descent_switch_depthnumberNoDepth (m or ft) where the descent setpoint hands over to bottom, first descent only. Default 18 m (60 ft).
ccr.diluent_breathable_ocbooleanNotrue if the BOV or a regulator can breathe the onboard diluent open circuit. It then joins the bailout pool last. Default false.
ccr.diluent_start_pressurenumberNoDiluent cylinder fill (bar or psi). Default 232 bar (3365 psi).
modeenumNooc (open circuit, default) or ccr (closed-circuit rebreather). Set ccr for every rebreather plan: the ccr, ccr_deco_schedule, ccr_dilout_switches and bailout fields need it. On ccr, `cylinders` are the open-circuit bailout gases; the rig itself is in `ccr`.oc | ccr
ppo2objectNoPPO₂ limits in bar.
ppo2.minnumberNoLowest PPO₂ in bar before a hypoxia warning, 0.16 to 0.21. Warnings only. Default 0.18.
ppo2.max_allnumberNoOne PPO₂ cap in bar for every gas, 1.0 to 1.6 (e.g. 1.4 for recreational nitrox). Sets all three bands; a band field given too wins for its band.
ppo2.max_28_to_44pct_o2numberNoPPO₂ cap in bar for gases from 28% to under 45% O₂, 1.0 to 1.6. Default 1.5.
ppo2.max_under_28pct_o2numberNoPPO₂ cap in bar for gases under 28% O₂, 1.0 to 1.6. Sets their MOD and switch depth. Default 1.4.
ppo2.max_45pct_o2_and_upnumberNoPPO₂ cap in bar for gases of 45% O₂ and over, 1.0 to 1.6. Default 1.6.
ratesobjectNoAscent and descent rates, per units.
rates.descentnumberNoDescent rate (m/min or ft/min), 1 to 100 m/min. Default 20 m/min (66 ft/min).
rates.ascent_deepnumberNoAscent rate below rate_change_depth (m/min or ft/min), 1 to 100 m/min. Default 9 m/min (30 ft/min).
rates.ascent_shallownumberNoAscent rate from rate_change_depth to the surface (m/min or ft/min), 1 to 100 m/min. Default 3 m/min (10 ft/min).
rates.rate_change_depthnumberNoDepth where the ascent rate changes (m or ft), 3 to 200 m. Default 6 m (20 ft).
stopsobjectNoStop grid and stop-time rounding.
stops.stop_spacingnumberNoDistance between stops: 3, 6 or 9 m; 10, 20 or 30 ft. Default 3 m (10 ft).
stops.time_roundingenumNo1s, 30s or 1min. Applied inside the engine; a stop is never shorter than the obligation. Default 1min.1s | 30s | 1min
stops.last_stop_depthnumberNoFinal stop depth: 3, 4.5 or 6 m; 10, 15 or 20 ft. Default 6 m (20 ft).
unitsenumNometric (m, bar, L, L/min, °C) or imperial (ft, psi, ft³, ft³/min, °F). Applies to every input and output value except PPO₂/setpoints (bar), mixes (%), density (g/L). Default metric.metric | imperial
levelsarrayYesDive levels in the order dived, 1 to 20. The first is level_number 1.
bailoutobjectNoccr only: the bailout view.
bailout.viewenumNoccr: which ascent the table shows. loop (default), end_of_profile, after_level, at_run_time, on_ascent. The worst-case bailout check runs on every view.loop | end_of_profile | after_level | at_run_time | on_ascent
bailout.depthnumberNoFor on_ascent: depth (m or ft) the diver leaves the loop on the final ascent.
bailout.level_numberintegerNoFor after_level: the level (1-based) the diver bails at the end of.
bailout.run_time_minnumberNoFor at_run_time: minutes on the Run clock.
reserveobjectNoGas reserve rule. Moves the gas status and warnings, never the stops.
reserve.ruleenumNothirds, fourths, fifths, sixths or fixed. Default thirds. Below 50 bar (725 psi) is always critical.thirds | fourths | fifths | sixths | fixed
reserve.fixed_pressurenumberNoReserve for rule fixed (bar or psi, per units). Default 50 bar (725 psi).
audienceenumNoOptional: who the answer is for, from the conversation. beginner: new to deco, plain words. recreational (default): some training. technical: trained deco or CCR diver, terms and tables. Shapes the wording only, never a number.beginner | recreational | technical
behaviorobjectNoProfile and model switches.
behavior.o2_narcoticbooleanNoCount oxygen in END. END and warnings only. Default false.
behavior.stay_on_loopbooleanNoccr: true (default) keeps the whole ascent on the loop; false lets an OC deco gas take over where its PPO₂ is higher. Not carried in share links.
behavior.include_travel_in_level_timebooleanNotrue: level time includes the descent to it (dive-computer runtime style). Default false.
cylindersarrayYesEvery open-circuit cylinder carried: back gas, stages, deco gases; on ccr, bailout gases. 1 to 10. Give preset or cylinder_size and start_pressure when known; omitted ones default (an AL80, 11.1 L at 3000 psi) and the result marks them.
modifiersobjectNoPlan modifiers: a stress breathing burst (gas only) and a delay before the ascent (moves the schedule).
modifiers.deco_sacnumberNoDeco SAC override for the whole plan (L/min or ft³/min). Default gas_consumption.deco_sac.
modifiers.delay_minnumberNoA hold at depth before the ascent starts, 0 to 60 minutes. Moves the schedule. Default 0.
modifiers.stress_sacnumberNoHard-breathing surface rate, SAC (L/min or ft³/min, per units), from the end of the bottom (on bailout: from leaving the loop), gas only. Needs stress_minutes or stress_whole_ascent.
modifiers.working_sacnumberNoWorking SAC override for the whole plan (L/min or ft³/min). Default gas_consumption.working_sac.
modifiers.stress_minutesnumberNoMinutes the stress_sac burst lasts, 1 to 60.
modifiers.stress_whole_ascentbooleanNotrue: the stress_sac burst lasts to the surface. Default false.
plan_namestringNoShort human label shown in the approval card; fill it first, e.g. 40m 20min air+EANx50. Also titles the plan table and share link, which keep its first 24 characters (a longer name is cut, never refused).
scenariosarrayNoWhich plans to compute, default ["base"]. base; deeper_3m, deeper_5m (imperial: deeper_10ft, deeper_20ft), longer_3min, longer_5min, deeper_and_longer_3, deeper_and_longer_5 (applied to the deepest level); lost:<cylinder id> (that cylinder never carried); custom:<name> (defined in contingencies); gf:<low>/<high> (e.g. gf:40/85), last_stop:<depth> (3, 4.5, 6 m or 10, 15, 20 ft) and stop_rounding:<1s|30s|1min> (the base plan with that one setting changed, to compare settings in one call); all (not the variants). Each one returns its own table and a comparison row. Up to 10. Ask for more in a later call.
gas_switchobjectNoGas switching.
gas_switch.switch_atenumNomod: switch at the deco gas MOD (default). stop: at the next stop.mod | stop
gas_switch.switch_time_snumberNoSeconds held at each OC switch on the old gas, 0 to 300 in 30 s steps. Default 0.
gas_switch.when_cylinder_emptyenumNoshow_shortfall (default): stay on it and report how much more gas is needed. switch_gas: move to the richest safe gas left.show_shortfall | switch_gas
repetitiveobjectNoRepetitive dive: the previous dive and the surface interval.
repetitive.previous_share_urlstringNoThe share link of the previous dive's plan_dive result. Its tissue loading seeds this dive.
repetitive.surface_interval_minnumberYesSurface interval since the previous dive, 15 to 1440 minutes.
descent_gasstringNooc only. Cylinder id of a travel gas for the descent, for a hypoxic bottom mix (e.g. 12/60) that cannot be breathed near the surface. When level 1 is deeper than that gas's MOD, a 0-minute level on it at its MOD (whole m or ft) is added before level 1, and the result numbers that level first. Default none.
environmentobjectNoWater and altitude.
environment.waterenumNoWater type, from its density: en13319 (EN 13319, the dive computer standard) 10.00 m per bar, salt 9.95, fresh 10.20, red_sea 9.92. Default en13319.salt | fresh | en13319 | red_sea
environment.altitudenumberNoSurface altitude (m or ft, per units), 0 to 10000 m (0 to 32800 ft). Default 0.
environment.temperaturenumberNoWater temperature for gas density only, -2 to 40 °C (28 to 104 °F). Never moves stops. Default 15 °C (59 °F).
contingenciesarrayNoCustom contingencies, up to 6, each requested with scenarios "custom:<name>" (or "all").
oxygen_breaksobjectNoOxygen breaks.
oxygen_breaks.enabledbooleanNoInsert oxygen breaks on high-PPO₂ stops. Default false.
oxygen_breaks.min_ppo2numberNoPPO₂ in bar at or above which a stop counts toward the break clock, 0.8 to 1.8. Default 1.4.
oxygen_breaks.o2_minutesnumberNoMinutes on high PPO₂ before a break, 5 to 30. Default 20.
oxygen_breaks.apply_on_loopbooleanNoccr: also break on the loop. Not carried in share links. Default false.
oxygen_breaks.break_minutesnumberNoBreak length in minutes, 1 to 10. Default 5.
oxygen_breaks.loop_setpointnumberNoccr: loop setpoint in bar during a break. Default 0.7.
table_columnsobjectNoExtra table columns. PPO₂ is always shown.
table_columns.cnsbooleanNoAdd a running CNS column. Default false.
table_columns.gas_remainingbooleanNoAdd a gas-remaining column (bar or psi). Default false.
gas_consumptionobjectNoBreathing rates.
gas_consumption.deco_sacnumberNoSAC from the first stop up (L/min or ft³/min). Default 15 L/min (0.53 ft³/min). Gas figures only.
gas_consumption.working_sacnumberNoSurface air consumption (SAC, also called RMV) for descent, bottom and the deep ascent (L/min or ft³/min, per units), 1 to 200 L/min (0.05 to 7.1 ft³/min). Default 20 L/min (0.71 ft³/min). Gas figures only.
gas_consumption.ccr_metabolic_o2numberNoccr: planning assumption for oxygen use, L/min in both unit systems, 0.4 to 2.0. Default 0.85.
response_formatenumNoconcise: plan table, gas, warnings, scenario summary. detailed: adds every setting used, per-level NDL, full warning details and the bailout table. Default concise.concise | detailed
gradient_factorsobjectNoGradient factors. Lower is more conservative. Default 50/80. If high cannot surface the plan, the engine raises it and warns.
gradient_factors.lownumberNoGF low, percent, 10 to 100. Sets the first stop depth. Default 50.
gradient_factors.highnumberNoGF high, percent, 10 to 100. Sets the shallow stops and surfacing margin. Default 80.
ccr_deco_schedulearrayNoccr deco setpoint steps, up to 10. Default [40 m: 1.5, 23 m: 1.6]. Send [] for the single ccr.setpoints.deco.
warning_thresholdsobjectNoWarning thresholds. Warnings only, never the stops.
warning_thresholds.otunumberNoOTU warning, 200 to 500. Default 300.
warning_thresholds.cns_pctnumberNoCNS percent warning, 50 to 100. Default 80.
warning_thresholds.end_maxnumberNoHighest END before a warning (m or ft, per units), 20 to 100 m. Default 30 m (100 ft).
warning_thresholds.density_warningnumberNoGas density warning in g/L, 3 to 8. Default 5.2.
warning_thresholds.density_criticalnumberNoGas density critical in g/L, 3 to 8; also vetoes a gas in auto. Default 6.2.
ccr_dilout_switchesarrayNoccr: at each depth and shallower, the loop breathes that cylinder as diluent (a dilout). Up to 6. Default none.

Details

The maintainer has not added details yet. Check the README in the repository.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.