Alicat Mass Flow & Pressure Controller について
Alicat の流量計やコントローラー向けの MCP サーバーです。ASCII シリアルプロトコルで流量・圧力・温度を読み取り、設定値やガス校正、バルブを操作します。研究室での機器操作を想定し、シミュレーターでテスト済みですが、実機では未検証です。
主な機能
- 01流量・圧力・温度の読み取り
- 02流量または圧力の設定値変更
- 03ガス校正の切り替え
- 04測定値の時系列記録
- 05バルブの保持または閉鎖
活用シーン
- 01流量の安定性と圧力ドリフトの監視
- 02コントローラーの目標流量の調整
- 03ガス校正の変更後のデータ取得
- 04緊急時のガス流停止
MCP 対応
MCP クライアントに、機器情報の取得、データ記録、Alicat 機器の制御ツールを提供します。読み取り専用モードと設定値の安全上限に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx labmcp-alicatLABMCP_ADDRESSInstrument address, e.g. serial:///dev/ttyUSB0 or tcp://192.168.1.50:5025LABMCP_SIMULATESet to 1 to use the built-in simulator (no hardware)LABMCP_READ_ONLYSet to 1 to disable all state-changing toolsLABMCP_LIMITSSafety limit overrides, e.g. max_temperature_c=80ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
14掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
Alicat 質量流量・圧力コントローラー — MCP サーバー
AI エージェントが、Alicat の文書化された ASCII シリアルプロトコルを通じて、Alicat Scientific の質量流量計、コントローラー、圧力コントローラーのガス流量、圧力、温度を読み取り、流量または圧力の設定値を指定し、ガスの校正を切り替え、ゼロ調整を行い、バルブを保持または閉じられるようにします。
| パッケージ | labmcp-alicat |
| 計測器 | 質量流量コントローラー(MC、MCR、MCS、MCE、MCV、MCW、…)、質量流量計(M、MS、MW、…)、圧力コントローラーと圧力計(PC、PCD、P)、液体流量デバイス(L、LC):RS-232/RS-485 ASCII シリアルに対応する Alicat 製品(Modbus/Profibus/EtherNet/IP 仕様を除く) |
| インターフェース | RS-232、RS-485(1 ポートあたり最大 26 台、ユニット ID は A~Z)、USB(仮想 COM ポート)、シリアル・イーサネットブリッジ経由の Ethernet |
| プロトコル | Alicat ASCII シリアル(シリアル通信の概要、Rev. 2、2023 年 2 月;操作マニュアル DOC-MANUAL-MPL、Rev. 2、「デジタル制御」) |
| ステータス | 🧪 シミュレーション済み:ワイヤーレベルの Alicat シミュレーターでテスト済みですが、実機ではまだ検証されていません。実機テストを報告 |
実機なしで試す
uvx labmcp-alicat --simulate --check
シミュレーターは、ファームウェア 10v20 を搭載し、N2 を流す MC-500SCCM-D です。一次遅れの流量応答、小さなセンサーゼロオフセット(tare_flow で除去できます)、実際に即したデータフレームを備えています。
計測器を接続する
- 計測器のセットアップ:工場出荷時の設定は、ユニット ID A、19200 baud、データビット 8、パリティなし、ストップビット 1、フロー制御なしです(MENU → SETUP → RS-232 Serial/RS-485 Serial)。複数のデバイスを 1 つの RS-485 ポートに接続する場合は、それぞれに異なるユニット ID を設定してください。デバイスはポーリングモード(
@ストリーミングではなく、英字の ID)にしてください。 - **コントローラー:**MENU → CONTROL → Setpoint Setup → Setpoint Source を Serial/Front Panel に設定してください。アナログの設定値ソースを使用している場合、コントローラーはシリアルの設定値を無視します(
get_device_infoが警告します)。 - ポートを確認:
uvx labmcp ports - 接続をテスト:
デフォルト以外のボーレートは、アドレスに指定します:uvx labmcp-alicat --address /dev/ttyUSB0 --check # Linux uvx labmcp-alicat --address /dev/tty.usbserial-XXXX --check # macOS uvx labmcp-alicat --address COM4 --check # Windows uvx labmcp-alicat --address COM4 --option unit_id=B --check # device B on a shared bus uvx labmcp-alicat --address tcp://192.168.1.60:4001 --check # serial-to-Ethernet bridgeserial://COM4?baudrate=115200。
MCP クライアントに追加する
Claude Code
claude mcp add alicat -- uvx labmcp-alicat --address /dev/ttyUSB0
Claude Desktop/Cursor/Windsurf(claude_desktop_config.json、.cursor/mcp.json、…)
{
"mcpServers": {
"alicat": {
"command": "uvx",
"args": ["labmcp-alicat", "--address", "/dev/ttyUSB0", "--limit", "max_setpoint=200"]
}
}
}
--read-only を追加すると、流量の読み取りは許可しつつ、設定値の指定、ガスの変更、ゼロ調整、バルブの保持をブロックできます(close_valve は引き続き使用できます)。1 つのバス上で複数のデバイスを使用する場合は、ユニット ID ごとにサーバーエントリーを追加してください(--option unit_id=A、--option unit_id=B、…)。その他のクライアントでは、uvx labmcp config alicat --address /dev/ttyUSB0 --client vscode を使って設定スニペットを生成できます。
ツール
| ツール | 種類 | 説明 |
|---|---|---|
close_valve | 🛑 安全 | 流れを止めます:流量設定値を 0 に設定し、すべてのバルブを閉じた状態に保ちます(Alicat HC)。いつでも安全に呼び出せます。圧力コントローラーでは、圧力設定値は変更せず、バルブを閉じた状態に保って現在の圧力を閉じ込めます。 |
get_command_log | 👁 読み取り | 装置に送信された最新の生コマンドと、装置から受信した返信を返します(新しいものが最後)。デバッグや実行内容の記録に役立ちます。 |
get_connection_info | 👁 読み取り | 接続されている装置(識別情報、アドレス、シミュレーションか実機か)、サーバーが読み取り専用かどうか、有効な安全制限を報告します。最初に呼び出してください。 |
get_device_info | 👁 読み取り | モデル、シリアル番号、ファームウェア、校正日、装置がコントローラーかどうか、各データフレームフィールドの単位、設定値のフルスケールと設定値のソースを報告します。 |
hold_valve | 🎛 制御 | コントローラーのバルブを現在の位置で固定します(HLD):閉ループ制御が停止するため、上流圧力が変化すると流量が変動します。解除するには resume_control を使用し、完全に遮断するには close_valve を使用してください。 |
list_gases | 👁 読み取り | この質量流量装置に登録されているガス(番号と短縮名)を、set_gas での指定方法で一覧表示します。液体用および圧力専用の装置にはガス一覧がありません。 |
log_flow_series | 👁 読み取り | データフレームの時系列を記録します(例:流量の安定性、設定値変更後の整定、圧力ドリフトの確認)。すべてのデータポイントと、質量流量(または流量以外の装置での主な測定量)の平均、標準偏差、最小値、最大値を返します。 |
read_flow | 👁 読み取り | ライブデータフレームを読み取ります:質量流量、体積流量、圧力、温度、設定値(コントローラーの場合)、有効なガス、および各ステータスコードを、装置の工学単位で返します。 |
reconnect | 🛑 安全 | 装置との接続を閉じて再度開きます(電源を入れ直した後や、ケーブルを再接続した後など)。 |
resume_control | ⚠️ 危険 | バルブの固定を解除し、現在の設定値で閉ループ制御を再開します。設定値が 0 でない場合、流れは直ちに再開します(事前に read_flow で確認してください)。 |
set_flow_setpoint | ⚠️ 危険 | コントローラーの設定値を変更します:ガス流量の開始、変更、停止を行います(または圧力コントローラーで目標圧力を設定します)。0 にすると、流量コントローラーでは流れが止まり、バルブが閉じます。負の値は双方向コントローラーでのみ使用できます。メーターでの実行、max_setpoint の上限超過、装置のフルスケール超過の場合は拒否されます。 |
set_gas | 🎛 制御 | 質量流量装置が使用するガス校正を選択します(Gas Select)。流量の計算方法が変わるため、設定値を 0 にしてから実行してください。装置に登録されているガスのみ使用できます(list_gases を参照)。腐食性ガスには耐腐食仕様(Sシリーズ)のハードウェアが必要です。 |
tare_flow | 🎛 制御 | 流量の読み取り値を風袋引き(ゼロ調整)します。装置内に流れがない場合にのみ実行してください:上流を遮断するか、コントローラーの設定値を 0 にし、配管を通常の作動圧力に保ちます。設定値が 0 でない場合、または流量が有意に測定されている場合は拒否されます。 |
tare_pressure | 🎛 制御 | 圧力の読み取り値を風袋引きします。流れがなく、装置が大気に開放されている(ゲージ圧の場合)か、流れがなく、プロセス配管が加圧されていない(絶対圧、気圧計搭載装置のみ)必要があります。 |
get_connection_info、get_command_log、reconnect は、すべての LabMCP サーバーに組み込まれています。
安全制限
| 制限 | デフォルト | 意味 |
|---|---|---|
max_setpoint | 100(デバイス単位) | エージェントが送信できる最大設定値の大きさです。コントローラー本来の設定値単位(get_device_info に表示される SCCM、SLPM、PSIA など)で指定します。デバイスのフルスケールを超える設定値も拒否されます。 |
max_series_duration_s | 600 s | エージェントが開始できる最長の記録系列です(850 s を超えることはないため、系列は常に 1 回のツール呼び出しで完了します)。 |
起動時に上書きできます。例:--limit max_setpoint=500。デフォルトの 100 は意図的に保守的な値です。500 SCCM のコントローラーでは、値を引き上げるまでエージェントの上限は 100 SCCM になります。
プロンプトの例
- 「このコントローラーの種類、設定されているガス、その単位とフルスケールを教えてください。」
- 「N2 の流量を 50 SCCM に設定し、30 秒間、0.5 秒ごとに記録して、1% 以内に安定するまでにかかった時間を教えてください。」
- 「コントローラーを CO2 に切り替えてから、設定値を 0 → 20 → 40 → 60 SCCM と段階的に上げ、各ステップで 2 分間維持し、それぞれのステップにおける平均流量と圧力をまとめてください。」
- 「ガスを止めた状態で、流量が 0.8 SCCM を示しています。バルブを閉じてから、流量センサーをゼロ調整してください。」
- 「バイオリアクターのガス供給に問題があるため、今すぐ流量を止めてください。」
注意事項
- データフレームの解析。 接続時にサーバーはデバイスにデータフレーム定義(
??D*)を要求し、すべてのポーリング結果をその定義に照らして解析します。そのため、フィールド名、順序、工学単位はデバイス自体から取得されます(6v以降の列テーブルと、6vより前の旧テーブルの両方に対応しています)。デバイスが??D*に応答しない場合は、Serial Primer(p. 8)とマニュアルのデフォルトレイアウトを使って、位置に基づいてフレームを解析します。各読み取りのlayout_sourceには、使用された方式が記載されます。 - 設定値には、ファームウェア9v00以降では
LS、旧ファームウェアではSを使用します。変更後は毎回応答を確認します。コントローラーが異なる設定値を報告した場合(範囲外、一方向デバイスでの負の値、またはアナログ設定値ソースなど)、デバイスが現在使用している値とともにエラーを報告します。 - **
close_valve**は流量設定値を0に設定し(流量コントローラーではバルブが閉じます)、続いてHC(バルブを閉じた状態で保持、ファームウェア5v07以降)を送信し、応答内のHLDを確認します。圧力コントローラーでは、ゼロ圧力制御の設定によっては圧力設定値を0にするとバルブが開くことがあるため(Serial Primer p. 17)、HCのみを送信します。resume_control(C)は保持状態を解除します。設定値で流量が再開するため、危険を伴う操作としてマークされています。 - タレ調整は流量がない状態で行う必要があります。
tare_flowとtare_pressureは、流量コントローラーの設定値が0でない場合、またはデバイスの読み取り値がフルスケールの2%を超えている場合に処理を拒否します。安全でない状況をすべて検出できるわけではないため(実際の流量がわずかにあるメーターなど)、事前に必ずガスを止めてください。ゲージ圧のタレ調整ではポートを大気に開放する必要があります。絶対圧のタレ調整では気圧計オプションが必要で、配管が加圧されていない状態で行う必要があります。 - **
log_flow_seriesのsave_path**には、新しい.csvファイルを指定する必要があります。~は展開され、不足しているフォルダーは作成されます。既存のファイルが上書きされることはありません。パスはログ記録の開始前に確認されます。 - ガスの選択には
GS(10v05以降。save_as_power_upを指定しない限り、電源投入時のガスとして保存されません)または旧式のGを使用します。デバイスにインストールされているガスのみ選択できます。list_gasesで確認できます。 - **安全ガード:**ユニットIDの後に数字が続く形式(例:
A49408)は、Alicatの旧式の整数設定値コマンドです。ドライバーはこの形式のコマンドの送信を拒否します。 - メーターとゲージはコントローラーのコマンドを無視します。サーバーは、データフレームに設定値がないデバイスでのコントローラーツールの使用を拒否します。
- 非対応:GPファームウェアのデバイス(ユニットIDの後に
$$が必要)、ストリーミングモード(@)、Modbus/Profibus/EtherNet/IPの各バリアント、積算計、バッチ処理、PIDチューニング、COMPOSERの混合ガス作成。 - フレームレイアウトと応答形式は、オープンソースのalicatlibプロジェクトおよび numat/alicatドライバーで公開されている、実機の5v12から10v20までのデバイスから取得した応答と照合しました。
ハードウェア検証
| モデル | ファームウェア | インターフェース | 検証者 | 日付 |
|---|---|---|---|---|
| まだありません:最初の検証者になる |
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。