mcpField
L
Lake Shore Temperature Controller

Lake Shore Temperature Controller

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

Lake Shore Temperature Controller について

Lake Shore Cryotronics 335、336、350 温度コントローラーを使う研究室向けの MCP サーバーです。複数の接続方式でセンサー値やヒーターを操作し、加熱と設定値に安全上限を設けます。ハードウェアでの検証はまだありません。

主な機能

  1. 01センサー温度とヒーター状態の読み取り
  2. 02温度、ランプ、ヒーターレンジ、PID の設定
  3. 03温度安定条件の待機
  4. 04全ヒーター停止とコマンドログの確認
  5. 05USB、イーサネット、GPIB 接続

活用シーン

  1. 01クライオスタットのセンサー値の確認
  2. 02温度をランプ制御して安定を待つ
  3. 03PID 設定の確認と調整
  4. 04異常時の全ヒーター停止

MCP 対応

MCP サーバーとして、温度読み取り、ヒーター状態確認、設定値や制御パラメーターの変更、安定待機、安全停止のツールを MCP クライアントに公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"k-dense-ai-labmcp-lakeshore": {
"command": "uvx",
"args": [
"labmcp-lakeshore"
],
"env": {
"LABMCP_ADDRESS": "<LABMCP_ADDRESS>",
"LABMCP_SIMULATE": "<LABMCP_SIMULATE>",
"LABMCP_READ_ONLY": "<LABMCP_READ_ONLY>",
"LABMCP_LIMITS": "<LABMCP_LIMITS>"
}
}
}
}
起動コマンドuvx labmcp-lakeshore
設定が必要な環境変数
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-lakeshore0.1.3

ツール

11

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

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

詳細

Lake Shore 温度コントローラー — MCP サーバー

AI エージェントがクライオスタットのすべてのセンサーを読み取り、ヒーターの状態を確認し、設定値、ランプ、ヒーターレンジ、PID 値を設定し、温度が安定するまで待機し、Lake Shore Cryotronics Model 335、336、350 温度コントローラーのすべてのヒーターをオフにできます。

パッケージlabmcp-lakeshore
計測器Model 335(入力 2 系統、出力 2 系統)、Model 336(入力 4 系統、出力 4 系統)、Model 350(入力 4 系統、出力 4 系統)
インターフェースUSB(仮想 COM ポート)、Ethernet(336 および 350、TCP ポート 7777)、IEEE-488(VISA 経由の GPIB)
プロトコルLake Shore ASCII コマンド。Model 336(改訂 2.3)、Model 335(改訂 1.6)、Model 350(改訂 1.7)のユーザーマニュアル第 6 章
ステータス🧪 シミュレーション済み:熱モデルを備えたワイヤーレベルシミュレーターでテスト済みですが、実機での検証はまだ行われていません。実機テストを報告

ハードウェアなしで試す

uvx labmcp-lakeshore --simulate --check
uvx labmcp-lakeshore --simulate --option sim_model=350 --option sim_speed=20 --check

シミュレーターは 4.2 K の小型クライオスタットをモデル化します。ステージ(入力 A のダイオードセンサーと入力 C の Cernox 類似センサー、出力 1 で加熱)とサンプル(入力 B の Pt-100、出力 2 で加熱)を備え、Lake Shore の PID 制御則と設定値ランピングを再現します。sim_speed を使うと、シミュレーション時間を実時間より速く進められます。

コントローラーを接続する

モデルは *IDN? から検出されます。その他の Lake Shore モデル(325、331、340、372 など)は拒否されます。

  1. インターフェースを選択します。コントローラーの Interface メニューで選択してください(リモートインターフェースは一度に 1 つだけ有効にできます)。
  2. USB: Lake Shore USB ドライバーをインストールします(Windows Update、または lakeshore.com)。ポートは 57600 baud、7 データビット、奇数パリティ、1 ストップビットに固定されています。サーバーがこれらを自動設定します。
  3. Ethernet(336、350): フロントパネルで IP アドレスを設定します。コマンドポートは TCP 7777 です(同時接続は最大 2 つ)。
  4. 接続をテスト:
    uvx labmcp-lakeshore --address /dev/ttyACM0 --check          # Linux
    uvx labmcp-lakeshore --address /dev/tty.usbmodemXXXX --check # macOS
    uvx labmcp-lakeshore --address COM5 --check                  # Windows
    uvx labmcp-lakeshore --address tcp://192.168.1.40:7777 --check
    uvx labmcp-lakeshore --address GPIB0::12::INSTR --check
    

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

Claude Code

claude mcp add cryostat -- uvx labmcp-lakeshore --address tcp://192.168.1.40:7777

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

{
  "mcpServers": {
    "cryostat": {
      "command": "uvx",
      "args": ["labmcp-lakeshore", "--address", "tcp://192.168.1.40:7777"]
    }
  }
}

--read-only を追加すると、温度とヒーターの状態は読み取れますが、設定値、ランプ、レンジ、PID の変更はブロックされます(all_heaters_off は引き続き利用できます)。その他のクライアントでは、uvx labmcp config lakeshore --address tcp://192.168.1.40:7777 --client vscode を実行して設定スニペットを生成します(cursor、codex、claude-code も指定できます)。

ツール

ツール種類説明
all_heaters_off🛑 safetyフロントパネルの「All Off」キーと同様に、すべての出力をオフにし(出力 1~4 のヒーターレンジを 0 に設定)、実行中の待機処理を停止します。各出力の読み戻しレンジと all_off を報告します。
get_command_log👁 read装置に送信した最新の生コマンドと、装置から受信した応答を返します(新しいものが末尾)。デバッグや実施内容の記録に便利です。
get_connection_info👁 read接続中の装置(識別情報、アドレス、シミュレーションか実機か)、サーバーが読み取り専用かどうか、現在有効な安全制限を報告します。最初に呼び出してください。
get_heater_status👁 read各出力の制御モードと入力、ヒーターレンジ、出力率、設定値(ケルビン単位も含む)、ランプ状態、PID 値、ヒーターエラー(断線/短絡)を報告します。ヒーターエラーを読み取ると、コントローラー上でそのエラーがクリアされます。
read_temperatures👁 readすべてのセンサー入力、または選択したセンサー入力を読み取ります。ケルビン値、生のセンサー単位、センサータイプ、入力名、デコードされた読み取り状態(無効、レンジ未満/超過)が含まれます。無効になっている入力は、読み取り値が null の状態で一覧表示されます。
reconnect🛑 safety装置との接続を閉じて再度開きます(装置の電源を入れ直した場合や、ケーブルを抜き差しした後など)。
set_heater_range⚠️ hazard出力のヒーターレンジを設定します(1 段階上がるごとに出力は約 10 倍になります)。0 より大きい値を設定すると、出力が発熱します。閉ループでは PID の要求に応じて、開ループではフロントパネルの手動出力で発熱します。max_heater_range を超える値、または閉ループ、ゾーン、ウォームアップ出力に設定済みの設定値が max_setpoint_k を超えている場合は拒否されます。設定値に到達できる最も低いレンジから始めてください。
set_pid🎛 control出力の制御ループの P、I、D 値を設定します(Lake Shore の規約に準拠)。
set_ramp🎛 control出力の制御ループの設定値ランプをオンまたはオフにし、レートを設定します。ランプをオンにすると、次に設定値を変更した際、設定値が徐々に変化するため、サンプルや配線への負担を軽減できます。
set_setpoint⚠️ hazard出力の制御ループの設定値をケルビン単位で設定します。設定値ランプがオンの場合、設定値はランプレートで新しい値に向かって変化します。出力が閉ループモードで、ヒーターレンジがオフでない場合にのみ加熱します。max_setpoint_k を超える値は拒否されます。
wait_for_stable_temperature👁 readoutput の制御入力が、stable_for_s の間、設定値から tolerance_k 以内に収まり(設定値のランプも終了している状態)、または timeout_s に達するまで待機します。安定したかどうか、最終温度、ダウンサンプリングしたトレースを返します。何も変更しません。

get_connection_info、get_command_log、reconnect は、すべての LabMCP サーバーに組み込まれています。

安全制限

制限デフォルト意味
max_setpoint_k325 Kset_setpoint が受け付ける最高設定値(室温にマージンを加えた値)です。set_heater_range は加熱を許可する前に、閉ループ、ゾーン、ウォームアップ出力の設定値も読み戻すため、フロントパネルでより高い設定値を入力していた場合も拒否されます(センサー単位の設定値も確認できないため拒否されます)。ステージ、配線、センサーの定格がより高い場合にのみ、この値を引き上げてください。
max_heater_range3ヒーターレンジの最大インデックスです。335/336 では 3 が High(最大出力)です。350 ではレンジが 1~5 の 10 倍刻みで、3 は最大出力の 1/100 です。
max_wait_s3600 swait_for_stable_temperature の最大待機時間です。

起動時に上書きします:--limit max_setpoint_k=420 --limit max_heater_range=2。

プロンプトの例

  • 「すべての温度を読み取り、エラーのあるセンサーがあれば教えてください。」
  • 「出力 1 を中レンジで 2 K/min のランプレートで 77 K まで上げ、その後、入力 A が 50 mK 以内に 5 分間収まるまで待ってください。」
  • 「サンプルを 10 K から 300 K まで 10 K 刻みで変化させ、各段階が安定したら教えてください。」(max_setpoint_k が十分に高い場合)
  • 「ループ 1 の PID 設定を教えてください。P を 30 に下げ、I と D はそのままにしてください。」
  • 「問題が起きました。すべてのヒーターをオフにしてください。」

注意事項

  • 設定値を設定しても、加熱は開始されません。ヒーター範囲を設定すると加熱が始まります。 範囲を 0 より大きくすると、出力は PID ループの要求に応じて(閉ループ)、または手動出力の設定に応じて(開ループ)加熱します。出力モードと制御入力はフロントパネルで設定します。誤ったセンサーにループを割り当てると熱暴走を起こすおそれがあるため、サーバーではこれらを変更しません。
  • 設定値は常にケルビン単位で指定します。SETP はループの制御入力で優先されている単位を使用します。サーバーは摂氏の場合は単位を変換し、入力がセンサー単位に設定されている場合は要求を拒否します。
  • 各コマンドの後に *ESR? を実行します。コマンドエラー(CME)と実行エラー(EXE)は無視せず報告します。マニュアルの要件に従い、メッセージ間には少なくとも 50 ms の間隔を設けます(--option min_interval_s=)。
  • get_heater_status は HTRST? を読み取ります。このコマンドはコントローラーにラッチされたヒーターの断線/短絡エラーをクリアします。
  • wait_for_stable_temperature を使用するには、温度が許容範囲内にあることに加えて、設定値のランプ動作が停止している必要があります(RAMPST?)。実行中の待機は all_heaters_off で停止できます。
  • all_heaters_off は、フロントパネルの All Off キーと同様に、すべての出力に RANGE n,0 を送信し、値を読み戻します。いずれかの出力で失敗しても、ほかの出力はすべて試行されます。すべての出力がオフと読み戻された場合にのみ、all_off は true になります。設定値や出力モードは変更しません。最後の安全策として、ハードウェアの温度制限(フロントパネルの TLIMIT)も設定することを検討してください。
  • 3062 スキャナーオプション(入力 D1-D5)、ゾーンテーブル、自動調整、カーブ、アラーム、リレーには対応していません。Model 372 AC 抵抗ブリッジは検証されていないため、接続時に拒否されます。

ハードウェアの検証

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

コメント

MCP は初めてですか?

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

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