mcpField
P
PalmSens Potentiostat

PalmSens Potentiostat

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

PalmSens Potentiostat について

MethodSCRIPT 対応 PalmSens ポテンショスタットで電気化学測定を行う MCP サーバーです。測定データとピーク概要を返し、全解像度の CSV 出力にも対応します。

主な機能

  1. 01サイクリックおよびリニアスイープボルタンメトリー
  2. 02微分パルスボルタンメトリー
  3. 03クロノアンペロメトリー
  4. 04データとピーク概要の返却
  5. 05全解像度データの CSV 保存
  6. 06測定の安全制限

活用シーン

  1. 01サイクリックボルタンメトリーによる酸化還元ピーク測定
  2. 02スキャン速度ごとのピーク電流比較
  3. 03設定電位での経時電流測定
  4. 04パラメーター選択前の装置機能確認

MCP 対応

組み込み測定法と生の MethodSCRIPT 実行を含む電気化学測定ツールを MCP クライアントに公開します。対応するポテンショスタットに USB シリアルまたは UART で接続します。

設定

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

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

ツール

10

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

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

詳細

PalmSens ポテンショスタット — MCP サーバー

AI エージェントが、MethodSCRIPT に対応した PalmSens ポテンショスタットでサイクリックボルタンメトリー、リニアスイープボルタンメトリー、微分パルスボルタンメトリー、クロノアンペロメトリーを実行し、ダウンサンプリングしたデータ、ピークの概要、オプションでフル解像度の CSV ファイルを取得できます。

パッケージlabmcp-palmsens
機器EmStat Pico(モジュールおよび開発ボード)、EmStat4 LR/HR(EmStat4S、EmStat4M、EmStat4X)、Sensit Wearable / Sensit BT、Nexus
インターフェースUSB(仮想 COM ポート)、UART
プロトコルPalmSens オンライン通信プロトコル(EmStat Pico v1.6、EmStat4 v1.3)上の MethodSCRIPT v1.x(MethodSCRIPT マニュアル v1.8)。PalmSens/MethodSCRIPT_Examplesと照合済みです
ステータス🧪 シミュレーション済み:ワイヤーレベルのシミュレーターでテスト済みですが、ハードウェアでは未検証です。ハードウェアでのテストを報告

ハードウェアなしで試す

uvx labmcp-palmsens --simulate --check

シミュレーターは、1 mM の可逆な一電子酸化還元対(E° = +0.20 V、Ag/AgCl 基準のフェロシアン化物/フェリシアン化物のようなもの)に浸した、直径 3 mm のディスク電極を備えた EmStat Pico です。サーバーが送信するスクリプトを解釈し、正しくエンコードされたデータパッケージをストリーミングするため、CV の典型的な「アヒル型」波形、DPV のピーク、コットレル減衰が得られます。シミュレーション時間は実時間の 10 倍速です。--option sim_speed=1(実時間)または =100 で変更できます。

機器を接続する

  1. PSTrace / MultiTrace を終了します。 シリアルポートを使用できるプログラムは 1 つだけです。
  2. ポートを確認します: uvx labmcp ports。EmStat Pico 開発ボードまたは Sensit は、USB シリアルポート(FTDI)として表示されます。EmStat4 または Nexus は、機器名の仮想 COM ポートとして表示されます。
  3. 接続をテストします:
    uvx labmcp-palmsens --address /dev/ttyUSB0 --check            # EmStat Pico / Sensit (Linux)
    uvx labmcp-palmsens --address /dev/tty.usbmodemXXXX --check   # EmStat4 (macOS)
    uvx labmcp-palmsens --address COM7 --check                    # Windows
    
    デフォルトは EmStat Pico の設定で、230400 baud、8N1、XON/XOFF、行末は LF です。USB 接続の場合、EmStat4 と Nexus はボーレートを無視します。EmStat4 の UART 接続では、serial://COM7?baudrate=921600&rtscts=true&xonxoff=false を使用してください。
  4. --check はファームウェアバージョンコマンド(t)とシリアル番号コマンド(i)を送信し、モデル、ファームウェア、シリアル番号を表示します。

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

Claude Code

claude mcp add potentiostat -- uvx labmcp-palmsens --address /dev/ttyUSB0

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

{
  "mcpServers": {
    "potentiostat": {
      "command": "uvx",
      "args": ["labmcp-palmsens", "--address", "/dev/ttyUSB0"]
    }
  }
}

--read-only を追加すると、機器情報のみを取得できます。すべての測定ツールは電位を印加するため、非表示になります。

ツール

ツール種類説明
abort_measurement🛑 安全実行中の測定またはスクリプトを直ちに中止し(通信コマンド Z)、セルがオフになっていることを確認します。何も実行されていない場合でも安全に呼び出せます。
get_command_log👁 読み取り装置に送信された直近の生コマンドと、装置から受信した応答を返します(新しいものが末尾)。デバッグや実行内容の記録に役立ちます。
get_connection_info👁 読み取り接続されている装置(識別情報、アドレス、シミュレーションか実機か)、サーバーが読み取り専用かどうか、有効な安全制限を報告します。最初に呼び出してください。
get_device_info👁 読み取りポテンショスタットを識別し(モデル、ファームウェア、シリアル番号)、測定パラメーターを範囲内で選べるよう、電位窓、PGStat モード、電流レンジを一覧表示します。
reconnect🛑 安全装置への接続を閉じてから再度開きます(電源を入れ直した場合やケーブルを差し直した場合など)。
run_chronoamperometry⚠️ 危険セルを potential_v に run_time_s の間保持し、interval_s ごとに電流を記録します。データ(装置タイマーによる時間)と、電流の初回値、最終値、平均値および電荷量を返します。セルに電位を印加します。
run_cyclic_voltammetry⚠️ 危険サイクリックボルタモグラムを実行します。開始点 → 頂点 1 → 頂点 2 → 開始点の順に n_scans 回走査し、各走査の陽極ピークと陰極ピークを含む電位/電流/時間データを返します。走査全体を通じてセルに電位を印加し、終了時にセルをオフにします。
run_differential_pulse_voltammetry⚠️ 危険開始電位から終了電位まで微分パルスボルタンメトリーを実行し(電流 = 順方向 − 逆方向、各ステップ)、ピーク電流とピーク電位を含むデータを返します。走査速度は step / pulse_time / 2 未満でなければなりません。セルに電位を印加します。
run_linear_sweep_voltammetry⚠️ 危険begin_potential_v から end_potential_v までリニアスイープボルタモグラムを実行し、最大/最小電流とその発生位置を含むデータを返します。セルに電位を印加します。
run_methodscript⚠️ 危険上級者向け:生の MethodSCRIPT を実行し、生の出力とデコードされたデータパッケージを返します。set_e / set_range_minmax da のリテラル電位、および CV、LSV、DPV、SWV、NPV、ACV、CA、PAD、EIS、fast CV/CA の各測定手法のリテラル電位は max_potential_v に照らしてチェックされます。また、set_range ba / set_autoranging ba のリテラル電流は max_current_range_a に照らしてチェックされます。実行時に計算される値は対象外です。timeout_s 経過後に中止されます。中止後にセルがオフになるよう、スクリプトに on_finished: + cell_off を追加してください。実行時エラー、タイムアウト、または abort_measurement の後は、サーバー自身がセルをオフにします。

安全制限

制限デフォルト意味
max_potential_v2.0 VDPV パルスを含め、いずれの測定手法(または生スクリプト内のリテラル)でも印加できる RE 基準の絶対電位の最大値
max_current_range_a0.01 Aエージェントが選択できる最大電流レンジ(オートレンジを使用する場合、装置が current_range_a を超えることはありません)。生スクリプトでは、set_range ba / set_autoranging ba のリテラル値が対象です
max_duration_s600 s平衡化または生スクリプトのタイムアウトを含む、測定の最長時間

起動時に上書きできます。例:--limit max_potential_v=1.0 --limit max_duration_s=1800。制限値にかかわらず、1 回のツール呼び出しの上限は 1 時間です。

プロンプトの例

  • 「フェロシアン化物試料を −0.2 V から +0.6 V まで 50 mV/s で 3 サイクル CV 測定し、E½ とピーク間隔を教えてください。」
  • 「走査速度依存性を調べてください。−0.1 V から 0.5 V の範囲で 25、50、100、200 mV/s の CV を測定し、それぞれ CSV として保存して、ピーク電流が √v に比例するか確認してください。」
  • 「0 V から 0.6 V まで、50 mV パルスで DPV を実行し、ピーク電位とピーク高さを報告してください。」
  • 「0.5 V で 60 秒間保持し、0.2 秒ごとに電流を記録して、通過した総電荷量を教えてください。」
  • 「このポテンショスタットが対応する電位窓と電流レンジを教えてください。」
  • 「測定を中止してください。」

注意事項

  • サーバーが送信する内容。 各手法は、PalmSens の測定ループの例をもとにした 1 つの MethodSCRIPT です。set_pgstat_chan 0、set_pgstat_mode、set_max_bandwidth、set_range_minmax da、set_range ba、set_autoranging ba、set_e、cell_on、任意の wait、続いて設定電位と電流の pck_add を含む meas_loop_cv / lsv / dpv / ca、そして on_finished: cell_off を実行します。これにより、完了後と中断後にセルがオフになります。実行時エラーが発生すると on_finished: は実行されないため(MethodSCRIPT マニュアル §10.1)、その場合、サーバーは別の cell_off スクリプトを送信します。正確なスクリプトは get_command_log に記録されます。
  • PGStat モードと帯域幅。 最大帯域幅はデータレートの 6 倍です(PalmSens の例で使用されている比率)。EmStat Pico と Sensit では、指定された電位に合うように、サーバーは低速(−1.25~2.0 V、ウィンドウ幅 2.2 V、100 Hz 以下)、次に最大レンジ(−1.7~2.0 V、ウィンドウ幅 2.6 V)、最後に高速(ウィンドウ幅 1.214 V)を選択します。どれも適合しない場合は、何も送信する前に理由を通知します。EmStat4 と Nexus では低速モードを使用します。マニュアルによると、これらの機器ではモード間に違いはありません。
  • 電流の符号と単位。 アノード(酸化)電流は正です。電位は RE 基準の 設定 電位です。time_s は、クロノアンペロメトリーでは機器のタイマーから、掃引ではステップレート/スキャンレートから取得されます。
  • 要約。 CV のピークは、各スキャンの生データにおける電流の最大値と最小値です(ベースライン補正なし)。ΔEp と中点は推定値です。階段状のサンプリングにより、ステップ幅が大きい場合、ΔEp は理想値の 59 mV よりやや大きくなります。
  • 生スクリプト。 run_methodscript は、set_e、set_range_minmax da、CV/LSV/DPV/SWV/NPV/ACV/CA/PAD/EIS のループおよび meas_fast_cv/meas_fast_ca に含まれるリテラルの電位(および store_var のリテラル)を max_potential_v と照合します(DPV のパルス振幅と SWV の 2 倍の振幅も含みます)。set_range ba / set_autoranging ba のリテラルの電流レンジは max_current_range_a と照合されます。スクリプト内で計算される値はチェックされません。スクリプトは timeout_s で中断され、cell_off スクリプトが実行されます。
  • 中断。 abort_measurement は通信プロトコルの Z コマンドを送信します。実行中の手法は、それまでに測定したデータを aborted: true とともに返します。その後(および何も実行されていない場合)、サーバーは 1 行の cell_off スクリプトを実行するため、on_finished: を含まない生スクリプトの実行後もセルはオフになります。実行中のスクリプトの出力を読み取れない場合(例:USB の一時的な不具合)、サーバーはエラーを報告する前にスクリプトを中断してセルをオフにします。データ行が 1 行だけ破損した場合は、代わりに警告を出してその行をスキップします。
  • データの保存。 save_path は .csv で終わる必要があります。不足しているフォルダーは作成され、既存ファイルが上書きされることはありません(新しい名前を選択してください)。パスは測定開始前にチェックされます。値が nan のポイントは除外されます(警告あり)。
  • 対象外: ガルバノスタット法、EIS、SWV/NPV/PAD、マルチプレクサー、バイポテンショスタットモード、マルチチャンネル MultiEmStat4 システム、および CRC16 プロトコル拡張。組み込みの手法以外のシングルチャンネルスクリプトには run_methodscript を使用してください。

ハードウェア検証

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

コメント

MCP は初めてですか?

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

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