mcpField
T
Tecan Cavro Syringe Pump

Tecan Cavro Syringe Pump

ローカル
github.com科学・教育235 週間前に更新

Tecan Cavro Syringe Pump について

Cavro DTプロトコルでTecan Cavroシリンジポンプを制御する、ラボ自動化向けMCPサーバーです。マイクロリットル単位の送液や状態確認に対応し、ワイヤーレベルのシミュレーターでテスト済みですが、実機では未検証です。

主な機能

  1. 01指定量の吸引と吐出
  2. 02流量設定とバルブ切り替え
  3. 03ポンプ状態とコマンドログの確認
  4. 04初期化、停止、再接続
  5. 05シミュレーションと読み取り専用モード

活用シーン

  1. 01指定流量での微量送液
  2. 02サンプル移送時のバルブ切り替え
  3. 03プランジャー位置とエラーの確認
  4. 04実機なしでの手順テスト

MCP 対応

MCPサーバーとして、クライアントにシリンジポンプの制御ツールと状態読み取りツールを提供します。読み取り専用モードと、1回あたりの体積・流量上限を設定できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"k-dense-ai-labmcp-cavro": {
"command": "uvx",
"args": [
"labmcp-cavro"
],
"env": {
"LABMCP_ADDRESS": "<LABMCP_ADDRESS>",
"LABMCP_SIMULATE": "<LABMCP_SIMULATE>",
"LABMCP_READ_ONLY": "<LABMCP_READ_ONLY>",
"LABMCP_LIMITS": "<LABMCP_LIMITS>"
}
}
}
}
起動コマンドuvx labmcp-cavro
設定が必要な環境変数
LABMCP_ADDRESSInstrument address, e.g. serial:///dev/ttyUSB0 or tcp://192.168.1.50:5025
LABMCP_SIMULATESet to 1 to use the built-in simulator (no hardware)
LABMCP_READ_ONLYSet to 1 to disable all state-changing tools
LABMCP_LIMITSSafety limit overrides, e.g. max_temperature_c=80

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypilabmcp-cavro0.1.3

ツール

9

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

Tecan Cavro シリンジポンプ — MCP サーバー

AI エージェントが、文書化された Cavro Data Terminal(DT)プロトコルを通じて、Tecan Cavro OEM シリンジポンプを初期化し、設定した流量でマイクロリットル単位の液量を吸引・吐出し、バルブポートを切り替え、停止できるようにします。

パッケージlabmcp-cavro
機器Cavro XLP 6000、Cavro XMP 6000、Cavro XCalibur(3ポート、4ポート、分配バルブ、またはバルブなし)
インターフェースRS-232、RS-485(RS-485 アダプター使用)、シリアル-イーサネットアダプター
プロトコルCavro DT プロトコル(XLP 6000 Operating Manual, 734237-C, chapter 3 and appendix G);ステップ分解能は Tecan XCalibur/XMP 6000 の仕様に準拠
ステータス🧪 シミュレーション済み:ワイヤーレベルシミュレーターでテスト済みですが、実機ではまだ検証されていません。実機テストを報告

ハードウェアなしで試す

uvx labmcp-cavro --simulate --check

シミュレーターは、1 mL シリンジと3ポートバルブを搭載した XLP 6000 です。動作には実時間がかかります。--option sim_speed=10 を追加すると高速化できます。

ポンプを接続する

  1. ポンプの設定: アドレススイッチを設定します(スイッチ 0 は DT アドレス 1、スイッチ 1 は 2、…スイッチ 8 は 9、スイッチ 9~E は : ; < = > ?)。ポンプは電源投入後の最初のメッセージから、DT プロトコルと OEM プロトコルを判別します。デフォルトは 9600 baud、8N1 です。38400 baud は設定コマンド U47 で選択します。
  2. 搭載されている機器をサーバーに伝えます。 ポンプはシリンジの情報を報告できないため、実機では次のオプションが必須です。
    • --option syringe_ul=1000:シリンジ容量(µL)。
    • --option model=xlp6000(または xmp6000、ストロークあたり6000インクリメント;xcalibur、3000)。別の DT 互換ポンプの場合は、代わりに --option steps_per_stroke=<increments per full stroke in standard mode> を指定します。
    • 任意:--option resolution=fine(N1、容量ステップが8倍細かくなります。initialize によって適用されます)、および --option pump_address=2。
  3. ポートを確認します: uvx labmcp ports
  4. 接続をテストします:
    uvx labmcp-cavro --address /dev/ttyUSB0 --option syringe_ul=1000 --option model=xcalibur --check
    uvx labmcp-cavro --address COM3 --option syringe_ul=500 --option model=xlp6000 --check
    
    デフォルト以外のボーレートは、アドレスに指定します:serial://COM3?baudrate=38400。

MCP クライアントに追加する

Claude Code

claude mcp add cavro -- uvx labmcp-cavro --address /dev/ttyUSB0 --option syringe_ul=1000 --option model=xcalibur

Claude Desktop/Cursor/Windsurf(claude_desktop_config.json、.cursor/mcp.json、…)

{
  "mcpServers": {
    "cavro": {
      "command": "uvx",
      "args": ["labmcp-cavro", "--address", "/dev/ttyUSB0",
               "--option", "syringe_ul=1000", "--option", "model=xcalibur"]
    }
  }
}

ステータスの読み取りは許可し、すべての動作をブロックするには、--read-only を追加します。

ツール

ツール種類説明
aspirate_ul⚠️ hazard現在の(または指定された)バルブポートを通じて、flow_ul_s でシリンジに volume_ul を吸引し、動作が完了するまで待機します。ポンプが初期化済みで、指定した容量を収容できる必要があります。
dispense_ul⚠️ hazard現在の(または指定された)バルブポートを通じて、flow_ul_s でシリンジから volume_ul を押し出し、動作が完了するまで待機します。シリンジには、少なくともその容量が入っている必要があります。
get_command_log👁 read装置に送信した最新の生コマンドと、装置から受信した応答を返します(新しいものが最後に表示されます)。デバッグや実行内容の記録に役立ちます。
get_connection_info👁 read接続されている装置(識別情報、アドレス、シミュレーションか実機か)、サーバーが読み取り専用かどうか、有効な安全制限を報告します。最初に呼び出してください。
get_status👁 readポンプの準備ができているか、動作中か、エラー(デコード済み)の有無、シリンジ内の容量として示されるプランジャーの位置、バルブ位置、分解能モード、現在の最高速度を報告します。
initialize⚠️ hazardポンプを初期化します。プランジャーをシリンジの最上部まで動かし(内容物はバルブを通じて排出されます)、その位置を 0 として設定し、バルブをホーム位置に戻します。電源投入後、プランジャーの過負荷後、または terminate の実行後に必要です。まずバルブの出力を廃液側に切り替えてください。数秒かかります。
reconnect🛑 safety装置との接続を閉じて再度開きます(電源を入れ直した後やケーブルを再接続した後など)。
set_valve⚠️ hazardバルブを名前付きの位置(3/4 ポートバルブ)または番号付きのポート(分配バルブ)に切り替えます。バイパス位置ではプランジャーを動かせません。新しいステータスを返します。
terminate🛑 safetyプランジャーの動作、ループ、または遅延を直ちに停止します(DT コマンド T)。進行中のバルブ動作は完了します。その後、再初期化してください。プランジャーのステップが失われている可能性があります。

安全制限

制限デフォルト意味
max_volume_ul5000 µL1 回の aspirate_ul/dispense_ul で移動できる最大容量
max_flow_ul_s500 µL/sエージェントが使用できるプランジャーの最大流量

起動時に上書きできます:--limit max_flow_ul_s=50。制限にかかわらず、サーバーはシリンジからあふれる、またはシリンジを空にしすぎる動作や、取り付けられたシリンジではポンプが実現できない流量を拒否します(最高速度は 5~6000 パルス/秒)。

プロンプトの例

  • 「ポンプを初期化してから、プライミングしてください。入力ポートから 1 mL を吸引し、出力ポートに吐出する操作を 3 回行ってください。」
  • 「ポート 3 からサンプルを 150 µL、ゆっくり(20 µL/s)吸引し、ポート 5 に 50 µL を吐出してください。」
  • 「現在、シリンジにはどれくらいの液体が入っていますか。また、バルブはどのポートに接続されていますか?」
  • 「ポンプでプランジャーの過負荷が報告されました。これはどういう意味で、何を確認すればよいですか?」
  • 「今すぐポンプを停止してください。」

注意事項

  • 換算。 ステップ数 = 液量 × ストロークあたりのステップ数 ÷ シリンジ容量です。標準モードでのストロークあたりのステップ数は 6000(XLP/XMP)または 3000(XCalibur)、微調整モードではその 8 倍です(N1)。移動のたびに、ポンプからモード(?28)を読み取ります。最高速度 V = 流量 × 6000 ÷ シリンジ容量です。3 モデルすべてで、N0/N1 における全ストロークは 6000 個の速度パルスに相当します。XCalibur の値は、取扱説明書ではなく、Tecan が公開しているストロークあたり 1.2 秒~20 分という値から算出しています。実機で確認してください。
  • ビジー/準備完了状態は、マニュアルの要件に従い、Q のみから読み取ります。無効なコマンドは直ちに報告されます。無効なオペランド(例:シリンジの終端を越える移動)は次の Q で報告され、サーバーはどちらも明確なエラーに変換します。
  • 初期化時の力は、指定がない場合、シリンジのサイズに応じて選択されます(1 mL 以上は最大、250/500 µL は半分、50/100 µL は 3 分の 1。マニュアルの表 3-6)。
  • terminate は R を付けずに T を送信します。DT コマンドセットでは、R は終了した文字列を再開します。T は進行中のバルブ移動を停止しません。終了後は再初期化してください。移動または初期化が予想所要時間(1.5 倍 + 10 秒)を大幅に超えてもビジー状態のままの場合、または待機中に接続が切れた場合、サーバーはプランジャーが動き続けないよう、自ら T を送信します。
  • サーバーはマイクロステップモード(N2)、OEM プロトコル(チェックサム、シーケンス番号)、CAN を使用しません。
  • Cavro Centris は解像度(ストロークあたり 181,490 増分)が異なり、液量ベースのファームウェアコマンドを検証できなかったため、サポートされていません。XE 1000 および旧型の XL/XP 3000 ポンプは、--option steps_per_stroke=… を指定すれば動作する可能性がありますが、テストされていません。

ハードウェアでの検証

モデルファームウェアインターフェース検証者日付
まだありません:最初の検証者になる

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。