bosch-flow-mcp
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
MCP server for Bosch eBike Flow (Smart System / BES3). Tracks battery health, charge cycles,
component versions, service history, live state-of-charge, and per-ride activity data
(distance, elevation, power, assist-mode, CO2).
Disclaimer
This is an **unofficial**, community-built project. It is **not affiliated with, authorised
by, or endorsed by Robert Bosch GmbH, Bosch eBike Systems, or SingleKey ID**. "Bosch",
"eBike Flow", and related marks belong to their owners and are used here only to describe
interoperability.
- It signs in with **your own Bosch eBike Flow account** (via the standard SingleKey ID
login) and reads **only your own data**. It is **read-only** - it never modifies your
bike, battery, or account.
- It uses the same **public** OAuth client (one-bike-app, PKCE) that the official Bosch
eBike Flow app uses. **No credentials, secrets, or protection measures are extracted,
bypassed, or circumvented** - every identifier here is already publicly documented.
- When you supply your own EU Data Act API credentials, the official Data Act API is used.
Otherwise the same app API your phone already uses is queried with your own login.
- This is an **undocumented, unofficial** interface that **may change or stop working at any
time** if Bosch alters their systems.
- **You are responsible** for ensuring your use complies with Bosch's and SingleKey ID's
terms of service in your jurisdiction.
- Provided **with no warranty** under GPLv3+ (see LICENSE). Use at your own risk.
Features
- Battery state snapshots over time (charge cycles, energy delivered, degradation trends)
- Components and firmware versions (drive unit, battery, ConnectModule, head unit, remote, ABS)
- Service book history and software update log (EU Data Act client only)
- Live state-of-charge from ConnectModule via mobile API
- Battery capacity tester results (EU Data Act client only)
- Per-ride activities: distance, elevation, speed, cadence, measured rider power, calories,
rider-vs-motor energy share, assist-mode split, CO2, ABS events, plus a per-point
GPS/speed/elevation/power track
- Auto-sync on demand - tools fetch fresh data without a cron job
Requirements
- Python 3.13+ (tested on 3.13 and 3.14, on Linux, macOS and Windows, in CI)
- uv (recommended) or pip
- A Bosch eBike Flow account (free, register at the Bosch eBike Flow app)
- A BES3 Smart System eBike registered in the app
Install
Or run it without installing with uvx bosch-flow-mcp. For development from a clone:
Auth
Opens your browser to Bosch login. The auth flow uses the one-bike-app public client
with PKCE - no API keys or registration needed. Just your Bosch Flow account.
**Important:** Open browser DevTools (F12) and switch to the Network tab **before** logging in.
After login, the browser redirects to an iOS URI (onebikeapp-ios://) that desktop browsers
can't open. Copy the full redirect URL from DevTools (right-click > Copy URL on the
oauth2redirect entry) and paste it at the prompt.
Tokens are saved to config/bosch_tokens.json and auto-refresh via offline_access.
**EU Data Act users:** if you have registered your own euda client and placed its ID in
config/bosch_config.json, auth uses that instead - it opens the browser and completes
automatically through a local http://localhost:4200 callback, with no DevTools step.
Sync
Data types: bikes, batteries, components, service, software_updates, capacity.