bosch-flow-mcp について
BES3 Smart System 搭載 eBike の Bosch eBike Flow データを取得する、非公式の読み取り専用 MCP サーバーです。バッテリー、コンポーネント、整備、走行情報を確認したいライダー向けで、一部データには EU Data Act の認証情報が必要です。
主な機能
- 01バッテリー充電・劣化傾向の追跡
- 02コンポーネントとファームウェアの確認
- 03リアルタイムの充電状態取得
- 04整備・更新履歴の取得
- 05走行概要と地点別トラックの確認
- 06必要に応じたデータ同期
活用シーン
- 01バッテリー劣化の経時確認
- 02自転車コンポーネントのファームウェア確認
- 03走行ごとの距離・標高・パワーの確認
- 04走行の GPS・センサートラックの確認
MCP 対応
Bosch eBike Flow の自転車、バッテリー、コンポーネント、走行データを同期・取得するツールを提供します。整備履歴、ソフトウェア更新、容量テスト結果は、登録済みクライアントによる EU Data Act API の利用時のみ取得できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
12掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | any | いいえ | |
| bike_id | any | いいえ | |
| end_date | any | いいえ | |
| start_date | any | いいえ |
詳細
bosch-flow-mcp
Bosch eBike Flow(Smart System/BES3)用の MCP サーバーです。バッテリーの状態、充電サイクル、 コンポーネントのバージョン、サービス履歴、リアルタイムの充電残量、ライドごとのアクティビティデータ (距離、標高、出力、アシストモード、CO2)を追跡します。
免責事項
これは非公式のコミュニティ開発プロジェクトです。Robert Bosch GmbH、Bosch eBike Systems、SingleKey IDとは提携、承認、後援のいずれも受けていません。「Bosch」、 「eBike Flow」および関連する商標はそれぞれの所有者に帰属し、ここでは相互運用性の説明にのみ使用しています。
- ご自身のBosch eBike Flowアカウント(標準のSingleKey IDログインを使用)でサインインし、ご自身のデータのみを読み取ります。読み取り専用で、バイク、バッテリー、アカウントを変更することはありません。
- 公式のBosch eBike Flowアプリと同じ公開OAuthクライアント(
one-bike-app、PKCE)を使用します。認証情報、シークレット、保護措置を抽出、回避、迂回することはありません。ここで使われる識別子はすべて、すでに公開されています。 - ご自身のEUデータ法API認証情報を提供した場合は、公式データ法APIを使用します。提供しない場合は、スマートフォンがすでに使用しているものと同じアプリAPIに、ご自身のログイン情報で問い合わせます。
- これは文書化されていない非公式のインターフェースであり、Boschがシステムを変更した場合、予告なく変更されたり、動作しなくなったりする可能性があります。
- お住まいの地域において、BoschおよびSingleKey IDの利用規約を遵守して使用する責任は、ご自身にあります。
- GPLv3+に基づき、保証なしで提供されます(LICENSEを参照)。自己責任でご使用ください。
機能
- バッテリー状態の経時スナップショット(充電サイクル、供給エネルギー、劣化傾向)
- コンポーネントとファームウェアのバージョン(ドライブユニット、バッテリー、ConnectModule、ヘッドユニット、リモート、ABS)
- サービスブックの履歴とソフトウェア更新ログ(EUデータ法クライアントのみ)
- モバイルAPI経由でConnectModuleから取得するリアルタイムの充電残量
- バッテリー容量テスターの結果(EUデータ法クライアントのみ)
- ライドごとのアクティビティ:距離、標高、速度、ケイデンス、計測されたライダー出力、カロリー、 ライダーとモーターのエネルギー比率、アシストモードの内訳、CO2、ABSイベント、およびポイントごとの GPS/速度/標高/出力トラック
- オンデマンドの自動同期:ツールがcronジョブなしで最新データを取得します
要件
- Python 3.13+(CIでLinux、macOS、Windows上の3.13および3.14をテスト済み)
- uv(推奨)またはpip
- Bosch eBike Flowアカウント(無料。Bosch eBike Flowアプリで登録)
- アプリに登録済みのBES3 Smart System eBike
インストール
pip install bosch-flow-mcp
インストールせずにuvx bosch-flow-mcpで実行することもできます。クローンから開発する場合:
git clone https://github.com/partymola/bosch-flow-mcp
cd bosch-flow-mcp
uv venv --python 3.13 .venv
uv pip install -e .
認証
.venv/bin/bosch-flow-mcp auth
Bosch のログイン画面をブラウザーで開きます。認証フローでは PKCE を使用する one-bike-app パブリッククライアントを使います。API キーや登録は不要で、Bosch Flow アカウントがあれば利用できます。
重要: ログインする前に、ブラウザーの開発者ツール(F12)を開き、Network タブに切り替えてください。
ログイン後、ブラウザーは iOS URI(onebikeapp-ios://)にリダイレクトしますが、デスクトップブラウザーでは開けません。開発者ツールで oauth2redirect の項目を右クリックして「URL をコピー」を選択し、リダイレクト URL 全体をコピーしてプロンプトに貼り付けてください。
トークンは config/bosch_tokens.json に保存され、offline_access によって自動更新されます。
EU Data Act の利用者: 独自の euda クライアントを登録し、その ID を config/bosch_config.json に設定している場合、auth はそのクライアントを使用します。ブラウザーを開き、ローカルの http://localhost:4200 コールバックを通じて自動的に認証が完了するため、開発者ツールでの操作は不要です。
同期
.venv/bin/bosch-flow-mcp sync # all data types
.venv/bin/bosch-flow-mcp sync --types bikes,batteries
データの種類:bikes、batteries、components、service、software_updates、capacity。
データを取得し、ローカルに保存します。データソースはサインイン方法によって異なります。
- 標準の Bosch eBike Flow アカウント(デフォルト)では、モバイルアプリ API から自転車、バッテリー、コンポーネント、現在のファームウェア、リアルタイムの充電状態を取得します。EU 圏外を含む、すべてのアカウントで利用できます。
- サービスブックの履歴、ソフトウェア更新履歴、容量テスターの結果は、Bosch Data Act ポータルで独自の
eudaクライアントを登録する必要があるEU Data Act API からのみ取得できます。標準のサインインでは、これらのデータの種類は何も表示されないのではなく、注記付きでunavailableと報告されます。また、Data Act API は EU 圏外で登録されたアカウントにはデータを返しません。
bosch_sync MCP ツールを使うこともできます。または自動同期を利用できます(データが古い場合、各 get_* ツールが同期を実行します)。
bosch-flow-mcp --version を実行すると、インストール済みパッケージのバージョンが表示されます。
Claude Code に登録する
claude mcp add -s user bosch-flow -- /full/path/to/bosch-flow-mcp/.venv/bin/bosch-flow-mcp
その後、Claude に次のような質問をしてみてください。
- 「今年の自転車のバッテリーの状態はどうですか?」
- 「月ごとの充電サイクルの傾向を表示して」
- 「ドライブユニットのファームウェアのバージョンは?」
- 「自転車のサービス記録はありますか?」
- 「今週はどれくらいの距離を、どのくらいの強度で走りましたか?」
利用可能なツール
| ツール | 説明 |
|---|---|
bosch_sync | 1 つ以上のデータの種類を同期します(デフォルト:すべて) |
bosch_get_bikes | 登録済みの自転車を一覧表示します |
bosch_get_bike | 1 台の自転車の詳細をすべて表示します |
bosch_get_batteries | バッテリーのスナップショットを表示します(最新または過去の期間) |
bosch_get_soc | ConnectModule からリアルタイムの充電状態を取得します |
bosch_get_capacity | バッテリー容量テスターの結果を取得します(EU Data Act クライアントのみ) |
bosch_get_components | 部品番号とファームウェアバージョンを含むコンポーネントを表示します |
bosch_get_service_records | サービスブックの記録を表示します(EU Data Act クライアントのみ) |
bosch_get_software_updates | ソフトウェア更新履歴を表示します(EU Data Act クライアントのみ) |
bosch_battery_trends | 期間ごとの充電サイクルとエネルギーの傾向を表示します |
bosch_get_activities | 指定期間のライドごとの概要(距離、高度、パワー、モード、CO2)を表示します |
bosch_get_activity_detail | 1 回のライドについて、各ポイントの走行記録(GPS/速度/高度/ケイデンス/パワー)を表示します |
API クレジット
このサーバーは、主なデータソースとしてBosch Mobile API(obc-rider-profile.prod.connected-biking.cloud)を、ライドごとのデータにはrider-activity API(obc-rider-activity.prod.connected-biking.cloud)を使用し、追加のエンドポイントにはオプションでData Act API(api.bosch-ebike.com)を利用できます。
認証には、Bosch eBike Flow モバイルアプリと同じ OAuth クライアントである one-bike-app パブリッククライアントを使用します。認証方法は、Home Assistant 統合の marq24/ha-bosch-ebike-flow と open-ebike/open-ebike-backend プロジェクトで文書化されています。
設定
| 変数 | デフォルト | 説明 |
|---|---|---|
BOSCH_FLOW_MCP_DB_PATH | パッケージルートの bosch_flow.db | SQLite データベースのパス |
BOSCH_FLOW_MCP_CONFIG_DIR | パッケージルートの config/ | トークンとクライアント設定用のディレクトリ |
データの安全性
-
OAuth トークンは POSIX では
0600で作成されます。Windows ではモードが無視され、継承された ACL によってアクセスが管理されます。トークンファイルとbosch_flow.dbは gitignore の対象です。 -
pre-commit フック(
scripts/check-no-data.sh)は、データベースファイル、config/内のファイル、大きなファイルのコミットをブロックします。ファイルの内容は読み取りません。クローン後にインストールしてください。ln -sf ../../scripts/check-no-data.sh .git/hooks/pre-commit -
テストでは一時的な SQLite データベースと架空の識別子を使用するため、実際の自転車やアカウントのデータがリポジトリに入ることはありません。
コントリビューション
開発環境のセットアップ、テストのワークフロー、pre-commit フックについては、CONTRIBUTING.md を参照してください。変更内容は CHANGELOG.md で追跡されています。
ライセンス
GPLv3+。詳細は LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。