Senseca PRO thermometer について
Senseca PRO 111およびPRO 115のPt100温度計から、USB経由で測定値を読み取る非公式のMCPサーバーです。温度、抵抗、機器情報、サンプリング統計を取得でき、設定により時計と場所ラベルも変更できます。
主な機能
- 01単位と時刻付きの温度取得
- 02Pt100抵抗値の取得
- 03サンプリングと統計値の算出
- 04型番、ファームウェア、電池情報の取得
- 05時計と場所ラベルの任意設定
活用シーン
- 01接続した温度計の現在温度の確認
- 02一定時間にわたる測定値の収集
- 03機器と電池の情報確認
- 04機器の時計や場所ラベルの設定
MCP 対応
温度計の測定値と機器情報をMCPクライアント向けのツールとして公開します。書き込みを有効にすると、時計と場所ラベルのツールも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx mcp-server-senseca-proSENSECA_PORTSerial port of the instrument, e.g. /dev/ttyACM0 or COM3. Auto-detected if not set.SENSECA_PINシークレットInstrument PIN, only needed if its protected mode is enabledSENSECA_ALLOW_WRITESet to 1 to enable tools that change instrument settings (clock, location labels)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-server-senseca-pro
USB 経由で接続された Senseca PRO 111 / PRO 115 ハンディ Pt100 温度計から、AI アシスタントがリアルタイムの測定値を読み取れるようにする MCP サーバーです。
非公式プロジェクトであり、Senseca との提携や同社の承認を受けていません。 PRO 111、ファームウェア V1.4.3.0、インターフェースプロトコル V1.0.0.1 でテスト済みです。
ツール
| ツール | 説明 |
|---|---|
read_temperature | 現在の温度と単位(温度計の設定に応じて °C/°F/K)、および UTC タイムスタンプ |
read_resistance | 現在の Pt100 抵抗値(オーム) |
sample_temperature | 一定期間の測定値(最大 600 s、間隔 ≥ 0.5 s)と最小値/最大値/平均値/標準偏差 |
get_device_info | モデル、シリアル番号、ファームウェア、温度計の時計、バッテリー残量 |
--allow-write を指定すると、さらに 2 つのツールが利用できます。
| ツール | 説明 |
|---|---|
set_device_clock | 温度計の時計を設定します(デフォルト:このコンピューターの時刻) |
set_location_name | 20 個あるロケーションラベルのいずれかの名前を変更します |
サーバーから校正データや調整データを変更することはできません。温度計のシリアルインターフェースでは変更できないためです。
必要条件
- Python ≥ 3.10 および uv
- 温度計の電源が入っており、USB-C で接続されていること。PRO 115 では、Settings → USB mode を COM interface に設定してください。
- Linux: ユーザーが
dialoutグループに所属している必要があります(sudo usermod -aG dialout $USERを実行してから、再度ログインしてください)。 - Windows / macOS: 追加の設定は不要です。ポートは
COMxまたは/dev/cu.usbmodem…として表示されます。
設定
Claude Code
claude mcp add senseca-pro -- uvx mcp-server-senseca-pro
Claude Desktop およびその他のクライアント
{
"mcpServers": {
"senseca-pro": {
"command": "uvx",
"args": ["mcp-server-senseca-pro"]
}
}
}
オプション
| オプション | 環境変数 | デフォルト |
|---|---|---|
--port PORT | SENSECA_PORT | 自動検出 |
--allow-write | SENSECA_ALLOW_WRITE=1 | オフ |
--log-level LEVEL | SENSECA_LOG_LEVEL | WARNING |
| — | SENSECA_PIN | なし。温度計の保護モードがオンの場合のみ必要 |
自動検出では USB ID 0483:5740 を検索し、デバイスの製造元が senseca と報告されるポートのみを受け付けます。温度計が複数台接続されている場合は、ポートを明示的に指定してください。Linux では、安定した /dev/serial/by-id/… パスを使用してください。
シリアルポートを同時に使用できるプログラムは 1 つだけです。サーバーの実行中は、ProXware やターミナルプログラムを終了してください。
測定に関する注意事項
- 温度計の精度:±0.05 °C または測定値の ±0.06 %(いずれか大きい方)±1 桁。プローブは含みません。
- USB ポートはガルバニック絶縁されていません。プローブが接地された媒体に触れている場合、USB 接続によって測定値が変化することがあります。USB 接続の有無による測定値を比較し、差がある場合は USB アイソレーターを使用してください(温度計のマニュアル、セクション 7.2 を参照)。
開発
uv sync
uv run pytest # tests use a simulated instrument
npx @modelcontextprotocol/inspector uv run mcp-server-senseca-pro # try the tools interactively
実機で確認するには、接続して次を実行してください。
uv run python scripts/hardware_test.py # read-only checks, no interaction
uv run python scripts/hardware_test.py --reconnect # also unplug/replug USB when asked
このスクリプトは読み取りコマンドのみを送信します。PIN のテストについては --help を参照してください。
シリアルプロトコルについては、docs/protocol.md に記載されています。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。