In Da Mix

Gas blending calculator for scuba divers: nitrox, trimix, heliair, heliox, MOD, best mix and fills.

使うべきか

品質と安全性

A
説明の品質
98%
スキーマの完全性
90%
命名の品質
82%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~10,601トークン数(ツール定義)
~10.3 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 8.28%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "indamix": {
      "url": "https://indamixapp.divingtechnics.com/mcp"
    }
  }
}

リモートエンドポイント

https://indamixapp.divingtechnics.com/mcpstreamable-http

できること

ツール一覧

ツール(9)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢blend(mix_type, start_pressure, start_o2_percent, start_he_percent, target_pressure, ...)

Use whenever the user asks how to blend, mix, fill or prepare a breathing gas, even if they don't mention In Da Mix. Step-by-step fill plan for blending nitrox, trimix, heliair or heliox into a scuba tank, from what is in it now to the mix and pressure wanted: how much helium and oxygen to add, the order, cooling waits, the O2 test, the air top-up, and booster bars. Partial pressure or continuous, with the app's calculation methods. Use for "how do I blend 18/45 to 220 bar", "how much O2 do I add for EAN32", "fill from the gas left in the tank", "kako napraviti trimix 12/65", "koliko helija trebam za 200 bara", "napravi plan punjenja boce". Needs the target mix and pressure, and what is in the tank now: if the start is unknown, ask; never assume an empty tank. The method, temperature and banks come from the settings. Answer: the start gas, the target, the additions in order with their pressures, the resulting mix, and the key filling and analysis precautions. Then ask whether to calculate the gas this fill takes from the source banks (gas_usage).

入力スキーマ

{
  "type": "object",
  "properties": {
    "mix_type": {
      "type": "string",
      "enum": [
        "nitrox",
        "trimix",
        "heliair",
        "heliox"
      ],
      "description": "nitrox (O2 + air), trimix (He + O2 + air), heliair (He + air), heliox (He + O2)."
    },
    "start_pressure": {
      "type": "number",
      "minimum": 0,
      "description": "Pressure already in the tank, in pressure_unit. 0 = empty. This changes the result a lot: if the user did not give it, ask before calling. If you call without it, the tool assumes an empty tank and lists that in `assumed`."
    },
    "start_o2_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 21,
      "description": "O2 percent of the gas already in the tank (21 for air)."
    },
    "start_he_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 0,
      "description": "He percent of the gas already in the tank."
    },
    "target_pressure": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Fill pressure wanted, in pressure_unit (e.g. 200 or 232 bar, 3000 psi)."
    },
    "target_o2_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "description": "O2 percent of the mix wanted (nitrox, trimix, heliox)."
    },
    "target_he_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "description": "He percent of the mix wanted (trimix, heliair, heliox)."
    },
    "how": {
      "type": "string",
      "enum": [
        "partial_pressure",
        "continuous"
      ],
      "default": "partial_pressure",
      "description": "partial_pressure: add pure He and O2 to the tank, then top up with air. continuous: He / O2 go into the compressor intake (a premix stream)."
    },
    "helium_first": {
      "type": "boolean",
      "default": true,
      "description": "Partial pressure: add helium before oxygen (trimix, heliox)."
    },
    "use_booster": {
      "type": "boolean",
      "default": false,
      "description": "A gas booster is available: banks that can't decant high enough are boosted. With DIVESOFT_REAL_GAS it changes the plan; with other methods it only plans the gas."
    },
    "tank_volume_l": {
      "type": "number",
      "exclusiveMinimum": 0,
      "default": 12,
      "description": "Water volume of the tank being filled, litres (a twin 12 = 24). Used for gas litres and bank use."
    },
    "method": {
      "type": "string",
      "enum": [
        "IDEAL_GAS_DALTON",
        "IDEAL_GAS_Z_FACTOR",
        "VAN_DER_WAALS",
        "REDLICH_KWONG",
        "PENG_ROBINSON",
        "MULTIDECO_Z_FACTOR",
        "GASGURU_REAL_GAS",
        "GASGURU_IDEAL_GAS",
        "DIVESOFT_IDEAL_GAS",
        "DIVESOFT_REAL_GAS"
      ],
      "description": "Calculation method (equation of state), as in the app. Default from the In Da Mix settings (see list_methods for the current default); listed in `assumed`. IDEAL_GAS_DALTON is the simple ideal-gas method; DIVESOFT_REAL_GAS also plans the decant from the banks."
    },
    "temperature": {
      "type": "number",
      "description": "Fill-site (ambient) temperature, in temperature_unit. Default from the In Da Mix settings; listed in `assumed`."
    },
    "heat_correction": {
      "type": "boolean",
      "default": false,
      "description": "Correct for the heating of the gas while filling."
    },
    "dive_mode": {
      "type": "string",
      "enum": [
        "OC",
        "CCR"
      ],
      "default": "OC",
      "description": "Open circuit (OC) or closed-circuit rebreather (CCR). Sets which defaults apply (from the In Da Mix settings: ppO2, END, density, O2 narcotic). The values used are listed in `assumed`."
    },
    "banks": {
      "type": "object",
      "additionalProperties": false,
      "description": "Source banks (storage cylinders). Any bank not given is taken from the In Da Mix settings and listed in `assumed`.",
      "properties": {
        "helium": {
          "type": "object",
          "additionalProperties": false,
          "description": "The helium bank.",
          "properties": {
            "volume_l": {
              "type": "number",
              "minimum": 0,
              "description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum)."
            },
            "pressure": {
              "type": "number",
              "minimum": 0,
              "description": "Current pressure, in pressure_unit."
            }
          }
        },
        "oxygen": {
          "type": "object",
          "additionalProperties": false,
          "description": "The oxygen bank.",
          "properties": {
            "volume_l": {
              "type": "number",
              "minimum": 0,
              "description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum)."
            },
            "pressure": {
              "type": "number",
              "minimum": 0,
              "description": "Current pressure, in pressure_unit."
            }
          }
        },
        "top_up": {
          "type": "object",
          "additionalProperties": false,
          "description": "The bank the Top Up supply gas comes from.",
          "properties": {
            "volume_l": {
              "type": "number",
              "minimum": 0,
              "description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum)."
            },
            "pressure": {
              "type": "number",
              "minimum": 0,
              "description": "Current pressure, in pressure_unit."
            }
          }
        }
      }
    },
    "pressure_unit": {
      "type": "string",
      "enum": [
        "bar",
        "psi"
      ],
      "default": "bar",
      "description": "Unit of every pressure in the question and the answer."
    },
    "depth_unit": {
      "type": "string",
      "enum": [
        "m",
        "ft"
      ],
      "default": "m",
      "description": "Unit of every depth in the question and the answer."
    },
    "temperature_unit": {
      "type": "string",
      "enum": [
        "C",
        "F"
      ],
      "default": "C",
      "description": "Unit of the fill temperature."
    },
    "language": {
      "type": "string",
      "enum": [
        "en",
        "hr"
      ],
      "default": "en",
      "description": "Language of the texts in the answer: en (English) or hr (Croatian). Use the user's language."
    },
    "include_steps": {
      "type": "boolean",
      "default": false,
      "description": "Also return the app's ƒx steps (\"How this was calculated\"): every formula with its numbers. Long: only when the user asks how it was calculated."
    }
  },
  "required": [
    "mix_type",
    "target_pressure"
  ],
  "additionalProperties": false
}
🟢gas_usage(mix_type, start_pressure, start_o2_percent, start_he_percent, target_pressure, ...)

For one blend: the litres of each gas it takes from the banks, each bank's pressure afterwards, and whether a bank can still decant (or needs boosting, or runs short). Same inputs as blend, plus the banks. Use for "how much helium will this fill use", "is my O2 bank enough for this fill", "koliko helija trošim za ovu mješavinu", "koliko plina ostaje u bankama". Banks not given come from the settings. Answer: the oxygen, helium and other gas used, each bank's pressure before and after, whether the fill works, and whether decanting is enough or a booster is needed; keep the litres of gas and the bank pressure drop apart. Then ask whether to calculate how many such fills the banks give (fills_from_bank).

入力スキーマ

{
  "type": "object",
  "properties": {
    "mix_type": {
      "type": "string",
      "enum": [
        "nitrox",
        "trimix",
        "heliair",
        "heliox"
      ],
      "description": "nitrox (O2 + air), trimix (He + O2 + air), heliair (He + air), heliox (He + O2)."
    },
    "start_pressure": {
      "type": "number",
      "minimum": 0,
      "description": "Pressure already in the tank, in pressure_unit. 0 = empty. This changes the result a lot: if the user did not give it, ask before calling. If you call without it, the tool assumes an empty tank and lists that in `assumed`."
    },
    "start_o2_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 21,
      "description": "O2 percent of the gas already in the tank (21 for air)."
    },
    "start_he_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 0,
      "description": "He percent of the gas already in the tank."
    },
    "target_pressure": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Fill pressure wanted, in pressure_unit (e.g. 200 or 232 bar, 3000 psi)."
    },
    "target_o2_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "description": "O2 percent of the mix wanted (nitrox, trimix, heliox)."
    },
    "target_he_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "description": "He percent of the mix wanted (trimix, heliair, heliox)."
    },
    "how": {
      "type": "string",
      "enum": [
        "partial_pressure",
        "continuous"
      ],
      "default": "partial_pressure",
      "description": "partial_pressure: add pure He and O2 to the tank, then top up with air. continuous: He / O2 go into the compressor intake (a premix stream)."
    },
    "helium_first": {
      "type": "boolean",
      "default": true,
      "description": "Partial pressure: add helium before oxygen (trimix, heliox)."
    },
    "use_booster": {
      "type": "boolean",
      "default": false,
      "description": "A gas booster is available: banks that can't decant high enough are boosted. With DIVESOFT_REAL_GAS it changes the plan; with other methods it only plans the gas."
    },
    "tank_volume_l": {
      "type": "number",
      "exclusiveMinimum": 0,
      "default": 12,
      "description": "Water volume of the tank being filled, litres (a twin 12 = 24). Used for gas litres and bank use."
    },
    "method": {
      "type": "string",
      "enum": [
        "IDEAL_GAS_DALTON",
        "IDEAL_GAS_Z_FACTOR",
        "VAN_DER_WAALS",
        "REDLICH_KWONG",
        "PENG_ROBINSON",
        "MULTIDECO_Z_FACTOR",
        "GASGURU_REAL_GAS",
        "GASGURU_IDEAL_GAS",
        "DIVESOFT_IDEAL_GAS",
        "DIVESOFT_REAL_GAS"
      ],
      "description": "Calculation method (equation of state), as in the app. Default from the In Da Mix settings (see list_methods for the current default); listed in `assumed`. IDEAL_GAS_DALTON is the simple ideal-gas method; DIVESOFT_REAL_GAS also plans the decant from the banks."
    },
    "temperature": {
      "type": "number",
      "description": "Fill-site (ambient) temperature, in temperature_unit. Default from the In Da Mix settings; listed in `assumed`."
    },
    "heat_correction": {
      "type": "boolean",
      "default": false,
      "description": "Correct for the heating of the gas while filling."
    },
    "dive_mode": {
      "type": "string",
      "enum": [
        "OC",
        "CCR"
      ],
      "default": "OC",
      "description": "Open circuit (OC) or closed-circuit rebreather (CCR). Sets which defaults apply (from the In Da Mix settings: ppO2, END, density, O2 narcotic). The values used are listed in `assumed`."
    },
    "banks": {
      "type": "object",
      "additionalProperties": false,
      "description": "Source banks (storage cylinders). Any bank not given is taken from the In Da Mix settings and listed in `assumed`.",
      "properties": {
        "helium": {
          "type": "object",
          "additionalProperties": false,
          "description": "The helium bank.",
          "properties": {
            "volume_l": {
              "type": "number",
              "minimum": 0,
              "description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum)."
            },
            "pressure": {
              "type": "number",
              "minimum": 0,
              "description": "Current pressure, in pressure_unit."
            }
          }
        },
        "oxygen": {
          "type": "object",
          "additionalProperties": false,
          "description": "The oxygen bank.",
          "properties": {
            "volume_l": {
              "type": "number",
              "minimum": 0,
              "description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum)."
            },
            "pressure": {
              "type": "number",
              "minimum": 0,
              "description": "Current pressure, in pressure_unit."
            }
          }
        },
        "top_up": {
          "type": "object",
          "additionalProperties": false,
          "description": "The bank the Top Up supply gas comes from.",
          "properties": {
            "volume_l": {
              "type": "number",
              "minimum": 0,
              "description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum)."
            },
            "pressure": {
              "type": "number",
              "minimum": 0,
              "description": "Current pressure, in pressure_unit."
            }
          }
        }
      }
    },
    "pressure_unit": {
      "type": "string",
      "enum": [
        "bar",
        "psi"
      ],
      "default": "bar",
      "description": "Unit of every pressure in the question and the answer."
    },
    "depth_unit": {
      "type": "string",
      "enum": [
        "m",
        "ft"
      ],
      "default": "m",
      "description": "Unit of every depth in the question and the answer."
    },
    "temperature_unit": {
      "type": "string",
      "enum": [
        "C",
        "F"
      ],
      "default": "C",
      "description": "Unit of the fill temperature."
    },
    "language": {
      "type": "string",
      "enum": [
        "en",
        "hr"
      ],
      "default": "en",
      "description": "Language of the texts in the answer: en (English) or hr (Croatian). Use the user's language."
    },
    "include_steps": {
      "type": "boolean",
      "default": false,
      "description": "Also return the app's ƒx steps (\"How this was calculated\"): every formula with its numbers. Long: only when the user asks how it was calculated."
    }
  },
  "required": [
    "mix_type",
    "target_pressure"
  ],
  "additionalProperties": false
}
🟢fills_from_bank(mix_type, start_pressure, start_o2_percent, start_he_percent, target_pressure, ...)

How many identical fills the source banks give before a bank can't supply the next one, and why it stops (bank down to the minimum pressure, or it can't decant high enough without a booster). Every tank is assumed to start the same (start_pressure / mix). Use for "how many tanks can I fill with NX32 from my 50 L O2 bank at 180 bar", "how many trimix fills can I make", "koliko boca mogu napuniti", "za koliko punjenja imam kisika". Answer: the number of complete fills, the banks and the start of each tank, the bank that limits it, the bank pressures after, and why one more fill isn't possible; say that every fill is assumed to start the same. Then ask whether to see what a booster or an extra bank would add.

入力スキーマ

{
  "type": "object",
  "properties": {
    "mix_type": {
      "type": "string",
      "enum": [
        "nitrox",
        "trimix",
        "heliair",
        "heliox",
        "top_up"
      ],
      "description": "nitrox, trimix, heliair, heliox, or top_up (a ready-made supply gas from the top-up bank)."
    },
    "start_pressure": {
      "type": "number",
      "minimum": 0,
      "description": "Pressure already in the tank, in pressure_unit. 0 = empty. This changes the result a lot: if the user did not give it, ask before calling. If you call without it, the tool assumes an empty tank and lists that in `assumed`."
    },
    "start_o2_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 21,
      "description": "O2 percent of the gas already in the tank (21 for air)."
    },
    "start_he_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 0,
      "description": "He percent of the gas already in the tank."
    },
    "target_pressure": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Fill pressure wanted, in pressure_unit (e.g. 200 or 232 bar, 3000 psi)."
    },
    "target_o2_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "description": "O2 percent of the mix wanted (nitrox, trimix, heliox)."
    },
    "target_he_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "description": "He percent of the mix wanted (trimix, heliair, heliox)."
    },
    "how": {
      "type": "string",
      "enum": [
        "partial_pressure",
        "continuous"
      ],
      "default": "partial_pressure",
      "description": "partial_pressure: add pure He and O2 to the tank, then top up with air. continuous: He / O2 go into the compressor intake (a premix stream)."
    },
    "helium_first": {
      "type": "boolean",
      "default": true,
      "description": "Partial pressure: add helium before oxygen (trimix, heliox)."
    },
    "use_booster": {
      "type": "boolean",
      "default": false,
      "description": "A gas booster is available: banks that can't decant high enough are boosted. With DIVESOFT_REAL_GAS it changes the plan; with other methods it only plans the gas."
    },
    "tank_volume_l": {
      "type": "number",
      "exclusiveMinimum": 0,
      "default": 12,
      "description": "Water volume of the tank being filled, litres (a twin 12 = 24). Used for gas litres and bank use."
    },
    "method": {
      "type": "string",
      "enum": [
        "IDEAL_GAS_DALTON",
        "IDEAL_GAS_Z_FACTOR",
        "VAN_DER_WAALS",
        "REDLICH_KWONG",
        "PENG_ROBINSON",
        "MULTIDECO_Z_FACTOR",
        "GASGURU_REAL_GAS",
        "GASGURU_IDEAL_GAS",
        "DIVESOFT_IDEAL_GAS",
        "DIVESOFT_REAL_GAS"
      ],
      "description": "Calculation method (equation of state), as in the app. Default from the In Da Mix settings (see list_methods for the current default); listed in `assumed`. IDEAL_GAS_DALTON is the simple ideal-gas method; DIVESOFT_REAL_GAS also plans the decant from the banks."
    },
    "temperature": {
      "type": "number",
      "description": "Fill-site (ambient) temperature, in temperature_unit. Default from the In Da Mix settings; listed in `assumed`."
    },
    "heat_correction": {
      "type": "boolean",
      "default": false,
      "description": "Correct for the heating of the gas while filling."
    },
    "dive_mode": {
      "type": "string",
      "enum": [
        "OC",
        "CCR"
      ],
      "default": "OC",
      "description": "Open circuit (OC) or closed-circuit rebreather (CCR). Sets which defaults apply (from the In Da Mix settings: ppO2, END, density, O2 narcotic). The values used are listed in `assumed`."
    },
    "supply_o2_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "description": "O2 percent of the ready-made supply gas (20.9 for air, 32 for EAN32)."
    },
    "supply_he_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 0,
      "description": "He percent of the supply gas."
    },
    "banks": {
      "type": "object",
      "additionalProperties": false,
      "description": "Source banks (storage cylinders). Any bank not given is taken from the In Da Mix settings and listed in `assumed`.",
      "properties": {
        "helium": {
          "type": "object",
          "additionalProperties": false,
          "description": "The helium bank.",
          "properties": {
            "volume_l": {
              "type": "number",
              "minimum": 0,
              "description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum)."
            },
            "pressure": {
              "type": "number",
              "minimum": 0,
              "description": "Current pressure, in pressure_unit."
            }
          }
        },
        "oxygen": {
          "type": "object",
          "additionalProperties": false,
          "description": "The oxygen bank.",
          "properties": {
            "volume_l": {
              "type": "number",
              "minimum": 0,
              "description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum)."
            },
            "pressure": {
              "type": "number",
              "minimum": 0,
              "description": "Current pressure, in pressure_unit."
            }
          }
        },
        "top_up": {
          "type": "object",
          "additionalProperties": false,
          "description": "The bank the Top Up supply gas comes from.",
          "properties": {
            "volume_l": {
              "type": "number",
              "minimum": 0,
              "description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum)."
            },
            "pressure": {
              "type": "number",
              "minimum": 0,
              "description": "Current pressure, in pressure_unit."
            }
          }
        }
      }
    },
    "min_bank_pressure": {
      "type": "number",
      "minimum": 0,
      "default": 10,
      "description": "A bank isn't used below this pressure (regulator / compressor intake / booster inlet), in pressure_unit. Default 10 bar."
    },
    "max_fills": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "default": 500,
      "description": "Stop counting here."
    },
    "pressure_unit": {
      "type": "string",
      "enum": [
        "bar",
        "psi"
      ],
      "default": "bar",
      "description": "Unit of every pressure in the question and the answer."
    },
    "depth_unit": {
      "type": "string",
      "enum": [
        "m",
        "ft"
      ],
      "default": "m",
      "description": "Unit of every depth in the question and the answer."
    },
    "temperature_unit": {
      "type": "string",
      "enum": [
        "C",
        "F"
      ],
      "default": "C",
      "description": "Unit of the fill temperature."
    },
    "language": {
      "type": "string",
      "enum": [
        "en",
        "hr"
      ],
      "default": "en",
      "description": "Language of the texts in the answer: en (English) or hr (Croatian). Use the user's language."
    },
    "include_steps": {
      "type": "boolean",
      "default": false,
      "description": "Also return the app's ƒx steps (\"How this was calculated\"): every formula with its numbers. Long: only when the user asks how it was calculated."
    }
  },
  "required": [
    "mix_type",
    "target_pressure"
  ],
  "additionalProperties": false
}
🟢top_up(start_pressure, start_o2_percent, start_he_percent, target_pressure, supply_o2_percent, ...)

Top a tank up with a ready-made supply gas (air, EAN32, a trimix premix…): the pressure added, the mix you end up with, its MOD, and the gas density at a depth. For a ready-made supply gas; to add pure oxygen or helium use what_if or blend. Use for "I have 50 bar of EAN32 left, what do I get if I top up with air to 200", "dopuni mi bocu s 50 bara EAN32 zrakom do 220 bara", "koji će biti konačni postotak kisika". Needs the start pressure and mix, the final pressure and the supply gas: ask if one is unknown, don't assume. Answer: the start, the gas added and the final pressure, the resulting mix, and its MOD by the settings. Then ask whether to check the mix for a planned depth (mod, with the complete MOD).

入力スキーマ

{
  "type": "object",
  "properties": {
    "start_pressure": {
      "type": "number",
      "minimum": 0,
      "description": "Pressure already in the tank, in pressure_unit. 0 = empty. This changes the result a lot: if the user did not give it, ask before calling. If you call without it, the tool assumes an empty tank and lists that in `assumed`."
    },
    "start_o2_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 21,
      "description": "O2 percent of the gas already in the tank (21 for air)."
    },
    "start_he_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 0,
      "description": "He percent of the gas already in the tank."
    },
    "target_pressure": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Fill pressure wanted, in pressure_unit (e.g. 200 or 232 bar, 3000 psi)."
    },
    "supply_o2_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "description": "O2 percent of the ready-made supply gas (20.9 for air, 32 for EAN32)."
    },
    "supply_he_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 0,
      "description": "He percent of the supply gas."
    },
    "target_depth": {
      "type": "number",
      "minimum": 0,
      "default": 30,
      "description": "Depth for the gas density, in depth_unit. Default 30 m."
    },
    "use_booster": {
      "type": "boolean",
      "default": false,
      "description": "A gas booster is available: banks that can't decant high enough are boosted. With DIVESOFT_REAL_GAS it changes the plan; with other methods it only plans the gas."
    },
    "tank_volume_l": {
      "type": "number",
      "exclusiveMinimum": 0,
      "default": 12,
      "description": "Water volume of the tank being filled, litres (a twin 12 = 24). Used for gas litres and bank use."
    },
    "method": {
      "type": "string",
      "enum": [
        "IDEAL_GAS_DALTON",
        "IDEAL_GAS_Z_FACTOR",
        "VAN_DER_WAALS",
        "REDLICH_KWONG",
        "PENG_ROBINSON",
        "MULTIDECO_Z_FACTOR",
        "GASGURU_REAL_GAS",
        "GASGURU_IDEAL_GAS",
        "DIVESOFT_IDEAL_GAS",
        "DIVESOFT_REAL_GAS"
      ],
      "description": "Calculation method (equation of state), as in the app. Default from the In Da Mix settings (see list_methods for the current default); listed in `assumed`. IDEAL_GAS_DALTON is the simple ideal-gas method; DIVESOFT_REAL_GAS also plans the decant from the banks."
    },
    "temperature": {
      "type": "number",
      "description": "Fill-site (ambient) temperature, in temperature_unit. Default from the In Da Mix settings; listed in `assumed`."
    },
    "heat_correction": {
      "type": "boolean",
      "default": false,
      "description": "Correct for the heating of the gas while filling."
    },
    "dive_mode": {
      "type": "string",
      "enum": [
        "OC",
        "CCR"
      ],
      "default": "OC",
      "description": "Open circuit (OC) or closed-circuit rebreather (CCR). Sets which defaults apply (from the In Da Mix settings: ppO2, END, density, O2 narcotic). The values used are listed in `assumed`."
    },
    "banks": {
      "type": "object",
      "additionalProperties": false,
      "description": "Source banks (storage cylinders). Any bank not given is taken from the In Da Mix settings and listed in `assumed`.",
      "properties": {
        "helium": {
          "type": "object",
          "additionalProperties": false,
          "description": "The helium bank.",
          "properties": {
            "volume_l": {
              "type": "number",
              "minimum": 0,
              "description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum)."
            },
            "pressure": {
              "type": "number",
              "minimum": 0,
              "description": "Current pressure, in pressure_unit."
            }
          }
        },
        "oxygen": {
          "type": "object",
          "additionalProperties": false,
          "description": "The oxygen bank.",
          "properties": {
            "volume_l": {
              "type": "number",
              "minimum": 0,
              "description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum)."
            },
            "pressure": {
              "type": "number",
              "minimum": 0,
              "description": "Current pressure, in pressure_unit."
            }
          }
        },
        "top_up": {
          "type": "object",
          "additionalProperties": false,
          "description": "The bank the Top Up supply gas comes from.",
          "properties": {
            "volume_l": {
              "type": "number",
              "minimum": 0,
              "description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum)."
            },
            "pressure": {
              "type": "number",
              "minimum": 0,
              "description": "Current pressure, in pressure_unit."
            }
          }
        }
      }
    },
    "pressure_unit": {
      "type": "string",
      "enum": [
        "bar",
        "psi"
      ],
      "default": "bar",
      "description": "Unit of every pressure in the question and the answer."
    },
    "depth_unit": {
      "type": "string",
      "enum": [
        "m",
        "ft"
      ],
      "default": "m",
      "description": "Unit of every depth in the question and the answer."
    },
    "temperature_unit": {
      "type": "string",
      "enum": [
        "C",
        "F"
      ],
      "default": "C",
      "description": "Unit of the fill temperature."
    },
    "language": {
      "type": "string",
      "enum": [
        "en",
        "hr"
      ],
      "default": "en",
      "description": "Language of the texts in the answer: en (English) or hr (Croatian). Use the user's language."
    },
    "include_steps": {
      "type": "boolean",
      "default": false,
      "description": "Also return the app's ƒx steps (\"How this was calculated\"): every formula with its numbers. Long: only when the user asks how it was calculated."
    }
  },
  "required": [
    "target_pressure",
    "supply_o2_percent"
  ],
  "additionalProperties": false
}
🟢best_mix(depth, gas_type, ppo2_bar, max_end, max_density_g_per_l, ...)

Use this FIRST when the user asks which breathing gas to use for a planned depth, or to select, recommend, optimise or compare one, even if they don't mention In Da Mix. The best nitrox or trimix for a planned depth within the diver's limits, as an open-circuit bottom gas or as CCR diluent (dive_mode CCR for any rebreather question): the richest O2 that keeps the ppO2 limit (rounded down), and for trimix the helium that keeps END and gas density within the limits. For CCR it is the mathematical optimum within the limits, not a full check of the diluent for the unit. Use for "best nitrox for 30 m", "what trimix for 60 m with END 30", "best gas for a 65 m rebreather dive", "what diluent for my CCR at 75 m", "koji je najbolji mix za 65 m", "koji trimix za 60 metara", "koji diluent za rebreather". Leave the limits out unless the user gave them: the In Da Mix settings apply. Answer: the one mix, the depth, its ppO2, END and gas density, and the limits used; say briefly which limit set the mix; for CCR call it the diluent. Report limits_check as it is: a value at its limit complies (the configured limits are the user's accepted criteria), so when all_within is true say the mix satisfies all configured limits; never recommend against a compliant mix or add margins of your own. Don't add other mixes. Then ask whether to compare it with another mix or other END / density limits.

入力スキーマ

{
  "type": "object",
  "properties": {
    "depth": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Planned maximum depth, in depth_unit."
    },
    "gas_type": {
      "type": "string",
      "enum": [
        "nitrox",
        "trimix"
      ],
      "default": "nitrox",
      "description": "nitrox or trimix. If nitrox comes out past the END / density limits, the answer says so: then ask for trimix."
    },
    "ppo2_bar": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "ppO2 limit, bar. Default from the In Da Mix settings for the dive mode; the value used is listed in `assumed`."
    },
    "max_end": {
      "type": "number",
      "minimum": 0,
      "description": "Maximum END, in depth_unit. Default from the In Da Mix settings for the dive mode; the value used is listed in `assumed`."
    },
    "max_density_g_per_l": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Maximum gas density, g/L. Default from the In Da Mix settings for the dive mode; the value used is listed in `assumed`."
    },
    "o2_narcotic": {
      "type": "boolean",
      "description": "Count O2 as narcotic in the END. Default from the In Da Mix settings for the dive mode; the value used is listed in `assumed`."
    },
    "dive_mode": {
      "type": "string",
      "enum": [
        "OC",
        "CCR"
      ],
      "default": "OC",
      "description": "Open circuit (OC) or closed-circuit rebreather (CCR). Sets which defaults apply (from the In Da Mix settings: ppO2, END, density, O2 narcotic). The values used are listed in `assumed`."
    },
    "depth_unit": {
      "type": "string",
      "enum": [
        "m",
        "ft"
      ],
      "default": "m",
      "description": "Unit of every depth in the question and the answer."
    },
    "language": {
      "type": "string",
      "enum": [
        "en",
        "hr"
      ],
      "default": "en",
      "description": "Language of the texts in the answer: en (English) or hr (Croatian). Use the user's language."
    },
    "include_steps": {
      "type": "boolean",
      "default": false,
      "description": "Also return the app's ƒx steps (\"How this was calculated\"): every formula with its numbers. Long: only when the user asks how it was calculated."
    }
  },
  "required": [
    "depth"
  ],
  "additionalProperties": false
}
🟢mod(o2_percent, he_percent, ppo2_bar, max_end, max_density_g_per_l, ...)

Use whenever the user asks how deep a gas can go or checks an existing breathing gas (nitrox, trimix, CCR diluent) against a depth, even if they don't mention In Da Mix; never work a MOD out by hand. Maximum operating depth of a breathing gas: the MOD by the ppO2 limit (as on a cylinder label), and for hypoxic gases the minimum depth. With complete: true also the complete MOD, the deepest depth within the ppO2, END and gas density limits together, with the limit that sets it. Call it with only the gas (o2_percent, he_percent) and the dive mode: leave ppo2_bar out unless the user gave one, so the In Da Mix setting is used. Answer: the gas and its MOD, the ppO2 limit used and the dive mode (and the minimum depth for a hypoxic gas); nothing else, no table of other ppO2 values, no ppO2 recommendation of your own. Then ask whether to also calculate the complete MOD within the END and gas density limits; if yes, call it again with complete: true (same gas and mode). Only when the user asks for END, density or all the limits, call with complete: true at once, and answer: the complete MOD and the limit that sets it, the MOD by ppO2, END and gas density at the complete MOD, and the limits used; report limits_check as it is (a value at its limit complies). Use for "what is the MOD of EAN32", "max depth for NX38", "how deep can I take 18/45", "can I take air to 50 m", "can I use 10/70 at 65 m", "is this diluent OK for 70 m", "koja je maksimalna dubina za NX38", "koliko duboko mogu s 18/45", "je li 12/65 dobar za 65 metara".

入力スキーマ

{
  "type": "object",
  "properties": {
    "o2_percent": {
      "type": "number",
      "minimum": 1,
      "maximum": 100,
      "description": "Oxygen in the gas, percent (32 for EAN32, 18 for trimix 18/45)."
    },
    "he_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 99,
      "default": 0,
      "description": "Helium in the gas, percent (0 for nitrox)."
    },
    "ppo2_bar": {
      "type": "number",
      "minimum": 0.16,
      "maximum": 2,
      "description": "ppO2 limit, bar. Default from the In Da Mix settings for the dive mode; the value used is listed in `assumed`."
    },
    "max_end": {
      "type": "number",
      "minimum": 0,
      "description": "Maximum END for the complete MOD, in depth_unit. Default from the In Da Mix settings for the dive mode; the value used is listed in `assumed`."
    },
    "max_density_g_per_l": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Maximum gas density for the complete MOD, g/L. Default from the In Da Mix settings for the dive mode; the value used is listed in `assumed`."
    },
    "o2_narcotic": {
      "type": "boolean",
      "description": "Count O2 as narcotic in the END. Default from the In Da Mix settings for the dive mode; the value used is listed in `assumed`."
    },
    "complete": {
      "type": "boolean",
      "default": false,
      "description": "Also the complete MOD (within the END and gas density limits too). Leave it out at first; set true only when the user says yes to it. Giving max_end or max_density_g_per_l turns it on."
    },
    "dive_mode": {
      "type": "string",
      "enum": [
        "OC",
        "CCR"
      ],
      "default": "OC",
      "description": "Open circuit (OC) or closed-circuit rebreather (CCR). Sets which defaults apply (from the In Da Mix settings: ppO2, END, density, O2 narcotic). The values used are listed in `assumed`."
    },
    "depth_unit": {
      "type": "string",
      "enum": [
        "m",
        "ft"
      ],
      "default": "m",
      "description": "Unit of every depth in the question and the answer."
    },
    "language": {
      "type": "string",
      "enum": [
        "en",
        "hr"
      ],
      "default": "en",
      "description": "Language of the texts in the answer: en (English) or hr (Croatian). Use the user's language."
    },
    "include_steps": {
      "type": "boolean",
      "default": false,
      "description": "Also return the app's ƒx steps (\"How this was calculated\"): every formula with its numbers. Long: only when the user asks how it was calculated."
    }
  },
  "required": [
    "o2_percent"
  ],
  "additionalProperties": false
}
🟢what_if(start_pressure, start_o2_percent, start_he_percent, add_oxygen, add_helium, ...)

What mix you get when you add given pressures of oxygen, helium and/or air to what is in the tank (the app's What If): the pressure after each addition, the resulting mix, its MOD, EAD, END and gas density. Use for "what if" additions: "I have 50 bar of air, what do I get if I add 30 bar of O2 and top up with 120 bar of air", "what if I add 40 bar of helium", "što dobijem ako dodam 30 bara kisika", "dodam 40 bara helija, što dobijem". what_if: given additions -> the resulting mix; blend: a target mix -> how to make it. Pass only the additions and the tank's start the user gave. Answer: the start, the additions in order, the final pressure, the resulting O2 and He, and its MOD by the settings. Then ask whether to check its complete MOD or to adjust the additions for a target mix (blend).

入力スキーマ

{
  "type": "object",
  "properties": {
    "start_pressure": {
      "type": "number",
      "minimum": 0,
      "description": "Pressure already in the tank, in pressure_unit. 0 = empty. This changes the result a lot: if the user did not give it, ask before calling. If you call without it, the tool assumes an empty tank and lists that in `assumed`."
    },
    "start_o2_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 21,
      "description": "O2 percent of the gas already in the tank (21 for air)."
    },
    "start_he_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 0,
      "description": "He percent of the gas already in the tank."
    },
    "add_oxygen": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Pressure of pure oxygen added, in pressure_unit."
    },
    "add_helium": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Pressure of pure helium added, in pressure_unit."
    },
    "add_air": {
      "type": "number",
      "minimum": 0,
      "default": 0,
      "description": "Pressure of air added, in pressure_unit."
    },
    "helium_first": {
      "type": "boolean",
      "default": true,
      "description": "Partial pressure: add helium before oxygen (trimix, heliox)."
    },
    "method": {
      "type": "string",
      "enum": [
        "IDEAL_GAS_DALTON",
        "IDEAL_GAS_Z_FACTOR",
        "VAN_DER_WAALS",
        "REDLICH_KWONG",
        "PENG_ROBINSON",
        "MULTIDECO_Z_FACTOR",
        "GASGURU_REAL_GAS",
        "GASGURU_IDEAL_GAS",
        "DIVESOFT_IDEAL_GAS",
        "DIVESOFT_REAL_GAS"
      ],
      "description": "Calculation method (equation of state), as in the app. Default from the In Da Mix settings (see list_methods for the current default); listed in `assumed`. IDEAL_GAS_DALTON is the simple ideal-gas method; DIVESOFT_REAL_GAS also plans the decant from the banks."
    },
    "temperature": {
      "type": "number",
      "description": "Fill-site (ambient) temperature, in temperature_unit. Default from the In Da Mix settings; listed in `assumed`."
    },
    "target_depth": {
      "type": "number",
      "minimum": 0,
      "default": 30,
      "description": "Depth for the gas density, in depth_unit. Default 30 m."
    },
    "dive_mode": {
      "type": "string",
      "enum": [
        "OC",
        "CCR"
      ],
      "default": "OC",
      "description": "Open circuit (OC) or closed-circuit rebreather (CCR). Sets which defaults apply (from the In Da Mix settings: ppO2, END, density, O2 narcotic). The values used are listed in `assumed`."
    },
    "pressure_unit": {
      "type": "string",
      "enum": [
        "bar",
        "psi"
      ],
      "default": "bar",
      "description": "Unit of every pressure in the question and the answer."
    },
    "depth_unit": {
      "type": "string",
      "enum": [
        "m",
        "ft"
      ],
      "default": "m",
      "description": "Unit of every depth in the question and the answer."
    },
    "temperature_unit": {
      "type": "string",
      "enum": [
        "C",
        "F"
      ],
      "default": "C",
      "description": "Unit of the fill temperature."
    },
    "language": {
      "type": "string",
      "enum": [
        "en",
        "hr"
      ],
      "default": "en",
      "description": "Language of the texts in the answer: en (English) or hr (Croatian). Use the user's language."
    },
    "include_steps": {
      "type": "boolean",
      "default": false,
      "description": "Also return the app's ƒx steps (\"How this was calculated\"): every formula with its numbers. Long: only when the user asks how it was calculated."
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢decant(plan, tank_volume_l, start_pressure, target_pressure, gas_o2_percent, ...)

Decanting one gas (oxygen, or helium) from source cylinders into a small cylinder without a compressor, as the app's Decant: a cascade, each cylinder equalised in turn (ideal gas). plan refills: one refill or a series (e.g. a CCR O2 cylinder from 75 to 150 bar after every dive): which cylinders each refill uses, the pressures after, how many refills the cylinders give, why it stops, and how many cylinders would be needed. plan diving_days: the app's diving-days planner (use per day, dives a day, Extra cylinders). For linked banks or a booster use fills_from_bank. Prefer it for CCR oxygen logistics. Use for "how many 3 L O2 cylinders do I need to refill my 2 L CCR cylinder after 10 dives", "how many CCR diving days do these O2 cylinders give", "koliko dana mogu roniti s ovim bocama kisika", "koliko puta mogu pretočiti kisik". Don't invent cylinders and don't change the user's gas use per dive or per day. Answer for refills: the number of complete refills, which cylinders each uses, the pressures after where useful, the cylinder that limits it, and why one more refill isn't possible. Answer for diving days: the days, dives a day, use per day, the pressures it keeps to, the cylinders used, and the Extra cylinders. Then ask whether to compare with an extra cylinder, another start pressure or another daily use.

入力スキーマ

{
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "enum": [
        "refills",
        "diving_days"
      ],
      "default": "refills",
      "description": "refills: the tank goes from start_pressure to target_pressure at every refill. diving_days: the app's Decant planner (use per day, dives a day)."
    },
    "tank_volume_l": {
      "type": "number",
      "exclusiveMinimum": 0,
      "default": 2,
      "description": "Water volume of the cylinder being refilled, litres (e.g. a rebreather's 2 or 3 L)."
    },
    "start_pressure": {
      "type": "number",
      "minimum": 0,
      "description": "refills: the tank's pressure before each refill (what is left after a dive), in pressure_unit. 0 = empty. This changes the result a lot: if the user did not give it, ask before calling. If you call without it, the tool assumes an empty tank and lists that in `assumed`. diving_days: its pressure now."
    },
    "target_pressure": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "refills: the pressure wanted after each refill, in pressure_unit (needed). diving_days: the pressure it is filled to at most."
    },
    "gas_o2_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 100,
      "description": "O2 percent of the gas decanted (100 for oxygen, 0 for helium); only names it in the answer."
    },
    "gas_he_percent": {
      "type": "number",
      "minimum": 0,
      "maximum": 100,
      "default": 0,
      "description": "He percent of that gas."
    },
    "sources": {
      "type": "array",
      "minItems": 1,
      "maxItems": 20,
      "description": "The source cylinders, each with its volume and pressure; several identical ones: one entry with count. refills: needed; opened lowest pressure first. diving_days: decanted in this order; left out = the app's defaults (listed in `assumed`).",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "volume_l",
          "pressure"
        ],
        "properties": {
          "volume_l": {
            "type": "number",
            "minimum": 0,
            "description": "Water volume, litres."
          },
          "pressure": {
            "type": "number",
            "minimum": 0,
            "description": "Pressure now, in pressure_unit."
          },
          "count": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "default": 1,
            "description": "Number of identical cylinders."
          },
          "label": {
            "type": "string",
            "maxLength": 40,
            "description": "Name shown in the plan (e.g. \"O2 3L\")."
          },
          "extra": {
            "type": "boolean",
            "default": false,
            "description": "diving_days: an Extra (reserve) cylinder; the answer says how many days it adds."
          },
          "included": {
            "type": "boolean",
            "default": true,
            "description": "Use this cylinder."
          }
        }
      }
    },
    "refills": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "description": "refills: how many refills in a row are wanted (e.g. dives − 1). Left out: as many as the cylinders give."
    },
    "dives_per_day": {
      "type": "integer",
      "minimum": 1,
      "default": 2,
      "description": "diving_days: dives a day."
    },
    "min_pressure_before_dive": {
      "type": "number",
      "minimum": 0,
      "default": 100,
      "description": "diving_days: the cylinder needs at least this before a dive, in pressure_unit."
    },
    "use_per_day_min": {
      "type": "number",
      "exclusiveMinimum": 0,
      "default": 130,
      "description": "diving_days: lowest O2 use a day, in pressure_unit of the cylinder."
    },
    "use_per_day_max": {
      "type": "number",
      "exclusiveMinimum": 0,
      "default": 150,
      "description": "diving_days: highest O2 use a day. Give one use: both are taken as it."
    },
    "fill_before_every_dive": {
      "type": "boolean",
      "default": false,
      "description": "diving_days: refill before every dive (true) or once a day (false)."
    },
    "min_pressure_to_start_day": {
      "type": "number",
      "minimum": 0,
      "description": "diving_days, daily fill: the cylinder must start the day with at least this. Default: min_pressure_before_dive + use_per_day_max × (dives_per_day − 1) / dives_per_day."
    },
    "pressure_unit": {
      "type": "string",
      "enum": [
        "bar",
        "psi"
      ],
      "default": "bar",
      "description": "Unit of every pressure in the question and the answer."
    },
    "language": {
      "type": "string",
      "enum": [
        "en",
        "hr"
      ],
      "default": "en",
      "description": "Language of the texts in the answer: en (English) or hr (Croatian). Use the user's language."
    },
    "include_steps": {
      "type": "boolean",
      "default": false,
      "description": "Also return the app's ƒx steps (\"How this was calculated\"): every formula with its numbers. Long: only when the user asks how it was calculated."
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢list_methods

The calculation methods (equations of state) In Da Mix offers, with their ids for the method input. The current default is in the `default` field. Use when the user asks about calculation models: ideal versus real gas, compressibility, Z-factors, Peng-Robinson, MultiDeco. Use for "which gas models are supported", "ideal gas versus Peng-Robinson", "koje modele izračuna podržava aplikacija", "razlika između real gas i ideal gas". Always call it rather than relying on a remembered list. Answer: the methods and the current default; the differences briefly, only when asked; don't recommend switching unless the user asks. Then offer to compare the same blend across methods (blend with each method, the same inputs).

入力スキーマ

{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 9 件