mcpField
B
bosch-flow-mcp

bosch-flow-mcp

本地服务
github.com/partymola地图与出行03 天前更新

关于 bosch-flow-mcp

面向 BES3 Smart System 电助力自行车的非官方只读 MCP 服务,可读取 Bosch eBike Flow 数据。适合查看电池、组件、维修和骑行信息的车主;部分记录需要 EU Data Act 凭据。

主要功能

  1. 01追踪电池电量与健康趋势
  2. 02查看组件和固件详情
  3. 03读取实时电量状态
  4. 04获取维修和更新历史
  5. 05查看骑行摘要与逐点轨迹
  6. 06按需同步数据

适用场景

  1. 01回顾电池随时间的衰减
  2. 02检查自行车组件固件
  3. 03按次查看距离、海拔和功率
  4. 04检查单次骑行的 GPS 与传感器轨迹

MCP 相关

提供同步和读取 Bosch eBike Flow 自行车、电池、组件及活动数据的工具。维修历史、软件更新和容量测试结果仅可通过已注册客户端使用 EU Data Act API 获取。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"partymola-bosch-flow": {
"command": "uvx",
"args": [
"bosch-flow-mcp"
]
}
}
}
启动命令uvx bosch-flow-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypibosch-flow-mcp0.7.0

工具

12

收录的工具列表 · 更新于 2 周前

参数类型必填说明
limitany否
bike_idany否
end_dateany否
start_dateany否

详细介绍

bosch-flow-mcp

CI License: GPL v3 Python 3.13+ PyPI Glama MCP Server

适用于 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 Data Act API 凭据,则会使用官方 Data Act API。否则,会使用你手机上已有应用所用的同一 API,通过你的登录信息进行查询。
  • 这是一个未公开文档的非官方接口。如果 Bosch 更改其系统,接口可能随时变更或停止工作。
  • 你有责任确保自己的使用方式符合所在司法管辖区内 Bosch 和 SingleKey ID 的服务条款。
  • 根据 GPLv3+ 按“原样”提供,不附带任何保证(参见 LICENSE)。使用风险由你自行承担。

功能

  • 随时间记录电池状态快照(充电周期、输送能量、退化趋势)
  • 组件和固件版本(驱动单元、电池、ConnectModule、车载主机、遥控器、ABS)
  • 维修记录历史和软件更新日志(仅限 EU Data Act 客户端)
  • 通过移动 API 获取 ConnectModule 的实时电量
  • 电池容量测试结果(仅限 EU Data Act 客户端)
  • 每次骑行的活动数据:距离、海拔、速度、踏频、测得的骑行者功率、卡路里、骑行者与电机的能量占比、助力模式分布、CO2、ABS 事件,以及逐点记录的 GPS/速度/海拔/功率轨迹
  • 按需自动同步——工具无需 cron 任务即可获取最新数据

要求

  • Python 3.13+(已在 Linux、macOS 和 Windows 上使用 3.13 和 3.14 进行测试,并通过 CI 验证)
  • uv(推荐)或 pip
  • Bosch eBike Flow 账户(免费,可在 Bosch eBike Flow 应用中注册)
  • 已在应用中注册的 BES3 Smart System 电动自行车

安装

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://),桌面浏览器无法打开该 URI。从开发者工具中复制完整的重定向 URL(在 oauth2redirect 条目上右键 > Copy 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 账户。
  • 保养手册历史记录、软件更新历史记录和容量测试仪结果仅来自 EU Data Act API, 这需要你在 Bosch Data Act portal 注册自己的 euda 客户端。使用标准登录时,这些类型会显示 unavailable(并附带说明),而非 静默返回空结果;对于在 EU 以外注册的账户,Data Act API 不会返回任何数据。

你也可以使用 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同步一种或多种数据类型(默认:全部)
bosch_get_bikes列出已注册的自行车
bosch_get_bike获取单辆自行车的完整详情
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单次骑行的逐点轨迹(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)以访问其他端点。

认证使用 one-bike-app 公共客户端(与 Bosch eBike Flow 移动应用使用的 OAuth 客户端相同)。认证方案参考了 marq24/ha-bosch-ebike-flow Home Assistant 集成和 open-ebike/open-ebike-backend 项目的文档。

配置

变量默认值描述
BOSCH_FLOW_MCP_DB_PATH软件包根目录中的 bosch_flow.dbSQLite 数据库路径
BOSCH_FLOW_MCP_CONFIG_DIR软件包根目录中的 config/存储令牌和客户端配置的目录

数据安全

  • OAuth 令牌在 POSIX 系统上以 0600 权限创建;Windows 会忽略此权限,并通过继承的 ACL 控制访问;令牌文件和 bosch_flow.db 均已加入 git 忽略列表。

  • 预提交钩子(scripts/check-no-data.sh)会阻止提交数据库文件、config/ 下的文件以及大文件。它不会读取文件内容。克隆后请安装:

    ln -sf ../../scripts/check-no-data.sh .git/hooks/pre-commit
    
  • 测试使用临时 SQLite 数据库和虚构标识符,仓库中不会出现真实的自行车或账户数据。

贡献

开发环境设置、测试工作流和预提交钩子请参阅 CONTRIBUTING.md。变更记录见 CHANGELOG.md。

许可证

GPLv3+。请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。