Skip to main content
Glama

bosch_sync

Sync Bosch eBike data into a local SQLite cache to populate or refresh bike, battery, component, service, and software-update records for other query tools.

Instructions

Sync Bosch eBike data to the local cache.

Fetches data from Bosch and stores it in SQLite. The source depends on your sign-in: a standard Bosch eBike Flow account uses the mobile app API; an EU Data Act (euda) client uses the Data Act API. Run this to populate the cache before using other bosch_get_* tools, or to refresh after a ride or charge cycle.

Bikes are identified automatically from your Bosch Flow account. Battery snapshots build a time series for health trend analysis.

Service records, software-update history and capacity-tester data are only available with a euda (EU Data Act) client; with a standard sign-in they report status "unavailable" rather than an empty result.

Args: data_types: What to sync. Options: "all", "bikes", "batteries", "components", "service", "software_updates", "capacity". Comma-separated for multiple, e.g. "bikes,batteries". Default: "all".

Returns a per-type summary: status (ok/empty/unavailable/error/auth_error/ rate_limited), record count, and a message explaining any non-ok result.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "bosch_sync"
  }
}

Input Schema

NameRequiredDescriptionDefault
data_typesNoall

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.10.0
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "title": "Result",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "title": "bosch_syncOutput",
      -  "type": "object"
      -}New value: +null
  2. Addedv0.2.3
  3. Removedv0.2.2
  4. First observedv0.1.0

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses the auth-dependent data source, that writes land in SQLite, the exact status vocabulary including auth_error and rate_limited, and the important distinction that unavailable is not the same as empty. It does not say whether a re-sync overwrites or merges existing cached rows, which matters for a write-to-cache tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then structured prose and an Args block, which reads cleanly. A couple of sentences (the battery time-series aside) are explanatory color rather than actionable, but nothing is harmful or badly out of order.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter sync tool with no annotations and no output schema, the description supplies the auth model, the partial-availability caveat, and the return shape (per-type status, count, message) — the agent needs nothing else to call it or interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it fully does: it enumerates every accepted value, shows the comma-separated multi-value syntax with an example, and restates the default. An agent can construct the argument from the description alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (sync) and resource (Bosch eBike data) plus the destination (local cache/SQLite), which immediately distinguishes it from the read-only bosch_get_* siblings. The follow-up sentence explicitly positions it as a prerequisite to those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use guidance: run before using other bosch_get_* tools, or after a ride/charge cycle to refresh. It also names the prerequisite condition (sign-in type) that determines which upstream API is used and which data categories exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.