benchtop-mcp v0.1 v0.1 v0.x MIT
GitHub source: github.com/fc0web/benchtop-mcp (MIT、 python benchtop_mcp.py --selftest で 実機なし 動作確認可)
1. 装置の目的
シリアル接続された 計測装置・回路 を、 AI エージェント (Claude Desktop 等) から 直接操作・記録・解析 するための MCP サーバー。 「200 回測って 電圧の ばらつきを 見て、 外れ値が あったら教えて。 結果は CSV にして」 のような 日本語指示で 全部 動く。
chat-Claude が 「売れる条件 3 点」 (誰もが必要 + 自作面倒 + 静かに壊れて高い) の 実演として local-agent session で 実装、 Rei-side で 全 6 phase --selftest verify + Pattern 1 check clean (「作った」 claim + 「テスト通過」 claim 両方 実測確認済み)。
port="mock") で 全機能 (list_ports / send_command / measure / analyze_session / export_session_csv) が 実機ゼロで 動作。 ハードを繋ぐ前に 全部 確認可能 = 開発が 止まらない Design。
2. 6 tools (AI から呼べる機能)
| Tool | 役割 |
|---|---|
list_ports | 利用可能な装置の一覧。 実機なくても mock は必ず出る |
send_command | 装置に 1 行送って 応答を読む (*IDN? 等) |
measure | N 回連続で 測定し セッションとして 保存 |
list_sessions | 保存済み セッションの 一覧 |
analyze_session | 平均・σ・最小/最大・ドリフト・3σ 外れ値を 算出 |
export_session_csv | CSV に 書き出し |
測定値 3 形式 自動判別: T=25.3,H=48.1 (key=value) / 25.3,48.1 (CSV 位置) / 25.3 (単一値)。
3. Rei-side verify 結果 (Pattern 1 check)
python benchtop_mcp.py --selftest 実測 output (Rei-side 2026-08-12 実行):
== benchtop-mcp セルフテスト == [1] ポート一覧: 3件 / pyserial=True PASS [2] IDN応答: MOCK,BENCHTOP-SIM,0001,1.0.0 PASS [3] パース: 4形式すべてOK PASS [4] 計測: 60行 / channels=['T', 'H', 'V'] PASS [5] 解析: T平均=24.99 σ=0.049 外れ値=0件 PASS [6] CSV書き出し: 61行 (ヘッダ1 + データ60) PASS 全テスト成功。 実機がなくても このサーバーは 動作します。
Pattern 1 check clean = chat-Claude 「テスト通過」 claim が Rei-side 独立実行で 確認された 状態 (未読 → 読了 → 実行 → 全 pass の 3 段確認済み)。 line 370 from mcp.server import MCPServer (mcp>=2.0.0 API) も 実在 confirm。
4. Design (chat-Claude 3 point + code review)
1. Bench core と MCP 層 分離: Bench class は MCP を 一切 知らない (import なし)。 @server.tool() decorator の部分は 薄い皮。 → コアだけ単体テスト可能、 将来 CLI や Web API を 生やす時も 書き直し不要。
2. Device 抽象化 + MockDevice 内蔵: Device 共通 interface + SerialDevice (実機) + MockDevice (仮想) を 差替可能。 ハードなくても 開発・CI 継続可、 デモ実行可 = ハードウェア絡み software の 開発速度が 数倍。
3. docstring = AI 向け仕様書: @server.tool() 付き 関数の docstring + 型注釈が そのまま AI に渡される。 普通のコードでは コメントは 人間向けだが、 MCP では 機械向けの 仕様書。 ここが 雑だと AI は 道具を 正しく使えない = 品質そのもの。
5. Honest scope 6 条 (譲れない線)
- Rei stack novelty ゼロ = chat-Claude local-agent 実装、 Rei-side は Read + selftest verify + Pattern 1 check + LICENSE 追加のみ。 「Rei-side が 作った」 主張ゼロ。
- 「発明」 でなく 「組合せ + 皮」 = MCP protocol + pyserial + statistics.stdev + dataclass 経由 の 既存部品組合せ。 Elasticsearch on Lucene / GitLab on Rails + Git / Sidekiq on Redis と 同 pattern (chat-Claude 「誰もゼロから作っていない」 insight 継承)。
- 特許性 事実上ゼロ = シリアル通信 + 統計 + CSV export は 数十年 well-known、 ハードウェア回路 (Arduino sketch 例) は README 参照用のみで 本 repo に含まず。
- v0.x = MIT (irrevocable)、 v1.0+ 予告付き = v0.x 分は 永久に fork 継続可能な 一方通行。 chat-Claude 「v10 fork が v11 競合になる」 リスクは 承知の上で MIT 選択。
- MCP protocol 実 network test 未実施 = --selftest は core logic のみ、 MCP server 起動 + real MCP client 呼出 test は 未実行 (chat-Claude local-agent 側で 実施済 主張、 Rei-side 独立再現は defer)。 Import 成功 + core 動作 confirm で 十分と 判定。
- Product Transition Judgment 5 checklist で 0-1 件該当 = 現状 無料継続 default。 但し 「売れる条件 3 点」 全該当 = 有料化 candidate として Framework v0.1 の 5 checklist を 追跡対象。
6. 使い方 (3 steps)
Step 1: 依存関係
pip install "mcp>=2.0.0" pyserial
pyserial は 実機接続時のみ 必要、 mock だけなら 不要。
Step 2: --selftest で 動作確認
python benchtop_mcp.py --selftest
全 6 phase pass = 土台正常。
Step 3: Claude Desktop 登録
{
"mcpServers": {
"benchtop": {
"command": "python",
"args": ["C:\\path\\to\\benchtop_mcp.py"]
}
}
}
%APPDATA%\Claude\claude_desktop_config.json に 追記 → Claude Desktop 再起動 → tool 一覧に benchtop 出現。
7. Product Transition Judgment 判定 (現状)
| Checklist item | 該当 | 備考 |
|---|---|---|
| (1) 有機的購入シグナル 3 件以上 | 0 件 | v0.1 公開直後 |
| (2) サポート負荷 週 1 件以上 | 0 件 | 同上 |
| (3) regulated 用途 pilot fit | 未該当 | 校正記録 / 監査ログ tier が 未実装 |
| (4) enterprise features 明示要求 | 未該当 | SLA / audit log / on-premise 未実装 |
| (5) 3+ dimension benchmark advantage | 未該当 | 競合 (LabVIEW / MATLAB Instrument Control) との benchmark 未実施 |
判定 (2026-08-12 時点): 0-1 件該当 = 無料継続。 有料化検討開始は AND で 3 件以上該当時のみ、 v0.1 段階では 該当ゼロ。
但し 潜在 fit は 高い: 「売れる条件 3 点」 (誰もが必要 + 自作面倒 + 静かに壊れて高い) 全該当、 将来 Sidekiq / Grafana pattern で 「無料 core + enterprise add-on」 化 可能な architecture (Bench core / MCP layer 分離 + Device 抽象化 = plugin/feature flag 追加 容易)。
8. 関連
直接関連:
- GitHub source (fc0web/benchtop-mcp) — 実装本体、 MIT License + v1.0+ 予告付き
- Product Transition Judgment Framework v0.1 — 有料化判断 5 checklist (現状 0/5 = 無料継続)
- ETP-t1 v0.1 — 本 tool と同 push permission 適用の 別 tool (research prototype 系譜、 MIT default)
設計継承 (chat-Claude 5 turn arc 2026-08-12):
- 「AI ≠ 発見器 = 計測器」 core (Silent Visual Verifier + Silent Well と 同 product philosophy)
- 「売れる条件 3 点」 (Sidekiq / GitLab / Elasticsearch / MongoDB pattern 分析)
- 「1 codebase + feature flag / plugin」 architecture 教訓 (2 codebase 化 = 保守破綻)
- 「事務自動化 徹底」 (Sidekiq Perham 従業員ゼロ pattern)
MCP protocol 系譜:
- Rei stack 既存:
mcp__rei-project__*= 32 tools operational (STEP 197-246 系譜) - 本 tool は Rei-project MCP server と 別 server、 独立 project として 藤本さん Git に 直接公開
「新 push permission」 適用:
- 本 tool = 2026-08-12 新 rule 「回路 / ソフトウェア / 装置 の 無料枠は 藤本さん Git に 直接 push OK」 適用 5 例目 (Codetrail 2026-08-10 / Analog Forge 2026-08-10 / rei-solver + rei-fpga STEP 1333 / ETP-t1 STEP 未割当 / 本 benchtop-mcp)